Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Aug 2015 08:38:18 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Garrett Cooper <yaneurabeya@gmail.com>,  freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: When and when not to use CTLFLAG_MPSAFE with the SYSCTL macros..?
Message-ID:  <55C1AF5A.1080601@selasky.org>
In-Reply-To: <F4A56F9C-058B-4D91-B75D-92DEC16E8B2E@gmail.com>
References:  <F4A56F9C-058B-4D91-B75D-92DEC16E8B2E@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 08/05/15 00:47, Garrett Cooper wrote:
> Hi,
> 	I’ve been trying to figure out (because sysctl(9) is lacking) when to use CTLFLAG_MPSAFE. Is it strictly when dealing with SYSCTL_PROC handlers that do proper locking of shared resources, or are there other nuances that need to be handled?
> 	I’m also asking because SYSCTL_UQUAD, for instance, explicitly uses CTLFLAG_MPSAFE in the handler, which is a bit confusing.
> Thanks!
> -NGie

Hi,

This flag decides if you have Giant automatically locked or not around 
the sysctl proc. Your functions should have their own locks basically. I 
believe it is a leftover from many years ago, when the FreeBSD kernel 
was going multi threaded.

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55C1AF5A.1080601>