Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2001 11:45:07 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        smp@FreeBSD.org
Subject:   RE: sysctl's and mutexes
Message-ID:  <XFMail.010424114507.jhb@FreeBSD.org>
In-Reply-To: <Pine.NEB.3.96L.1010424131753.9817D-100000@fledge.watson.org>

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

On 24-Apr-01 Robert Watson wrote:
> On Tue, 24 Apr 2001, John Baldwin wrote:
> 
>> > int     jail_set_hostname_allowed = 1;
>> > SYSCTL_INT(_jail, OID_AUTO, set_hostname_allowed, CTLFLAG_RW|CTLFLAG_MTX,
>> >     &jail_set_hostname_allowed, &jail_set_hostname_allowed_mtx, 0,
>> >     "Processes in jail can set their hostnames");
>> 
>> It might very well be desirable to add a new parameter for each sysctl
>> that is a pointer to a mutex.  However, an appropriate SYSINIT() or some
>> such during startup needs to initialize that mutex before that sysctl is
>> used.  If need be, we can also add a flag to determine if the sysctl
>> should initialize the mutex itself or not.  Ideally then, we would
>> create a new SYSINIT on the fly to initialize the mutex in question.  I
>> think though, that requiring explicit initialization of each mutex
>> shouldn't be too hard.
> 
> I don't have strong feelings on the exact nature of how mutices are bound
> to sysctl's, as long as it's possible to do the following: 
> 
> 1) It should be possible to use an existing initialized mutex, especially
>    with regards to dynamically allocated sysctl's. 
> 
> 2) It should be possible for several sysctl's to share the same mutex. 

Exactly.

> Presumably if the SYSCTL code is initializing the mutex, there are
> questions about the relative orderings of initialization of the mutex and
> first use of the protected variable in kernel: the code in question needs
> to know if SYSCTL stuff runs first so it can determine if the mutex should
> be used to protect access to the variable or not...  (and all the other
> general boot-time ordering issues).

Right, which is why I think requriring explicit initialization will probably
prove to be saner in the long run for most sysctl's.

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010424114507.jhb>