Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Feb 2009 16:59:11 -0800
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        ia64@freebsd.org
Subject:   Re: Change ia64 mca sysctls to use standard dynamic sysctls
Message-ID:  <5396BD91-541F-4EDF-9034-106477C99B7F@mac.com>
In-Reply-To: <200902021344.19249.jhb@freebsd.org>
References:  <200902021344.19249.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Feb 2, 2009, at 10:44 AM, John Baldwin wrote:

> While working on the locking for the sysctl tree, I ran into the
> pseudo-dynamic machine check sysctls in ia64.  It is not really a  
> good idea
> to call sysctl_register_oid() with a spin lock held and once I add  
> locking to
> sysctl it becomes a bad LOR.  This changes the code to use the  
> public API for
> adding dynamic sysctls outside of the spin lock.  Please test this  
> as it is a
> prerequisite for finishing the locking of the sysctl tree.

This won't be a solution, because eventually this code gets called
for machine checks, which means that locks can be held (which is
then the least of our worries :-)

In any case: malloc(M_WAITOK) cannot be used. We should probably
delay updating the sysctl tree and do it in a more controlled
environment. If you can implement a simple linked list to store
the saved state and remove the call to SYSCTL_ADD_OID, then I'll
work on that part after you're done. Does that sound like a plan?

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5396BD91-541F-4EDF-9034-106477C99B7F>