Date: Mon, 15 Jan 2001 11:14:39 -0800 From: Alfred Perlstein <bright@wintelcom.net> To: Hajimu UMEMOTO <ume@FreeBSD.org> Cc: arch@FreeBSD.org Subject: Re: dynamic vs static sysctls? Message-ID: <20010115111439.C7240@fw.wintelcom.net> In-Reply-To: <20010116.035009.71081161.ume@FreeBSD.org>; from ume@FreeBSD.org on Tue, Jan 16, 2001 at 03:50:09AM %2B0900 References: <20010115100618.Y7240@fw.wintelcom.net> <20010116.033215.41625863.ume@FreeBSD.org> <20010115103757.B7240@fw.wintelcom.net> <20010116.035009.71081161.ume@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Hajimu UMEMOTO <ume@FreeBSD.org> [010115 10:51] wrote: > >>>>> On Mon, 15 Jan 2001 10:37:57 -0800 > >>>>> Alfred Perlstein <bright@wintelcom.net> said: > > bright> Well all the sysctl's I've added have been dynamic, I think the > bright> only reason for the 'static' sysctls is to give sysctl() a > bright> numeric way to get at the sysctls, which isn't very useful > bright> when we have getsysctlbyname(). > > You mean dynamic sysctl is just use of OID_AUTO, right? I thought > SYSCTL_ADD_INT(). > > bright> Using a dynamic sysctl It would reduce the delta by quite a bit. > > Indeed. > > bright> The stuff your patch does seems to allow programs to use the old > bright> (IMHO) depricated sysctl() versus getsysctlbyname() function. > > bright> No one I know wants to use sysctl instead of getsysctlbyname afaik, > bright> however, I would like to know if my opinions are the what we're > bright> aiming for. > > Okey, I'll change to use OID_AUTO. Just do this: static unsigned int nforks = 0; SYSCTL_UINT(_kern, OID_AUTO, nforks, CTLFLAG_RD, &nforks, 0, "number of fork()s since boot"); document the sysctl. :) > > bright> Any other comments? > > One question. How can I detect newly added sysctl? In static, I can > just do by #ifdef OID. Oh, you mean in a kernel module? I think you need to use kernel_sysctl() (from kern/kern_sysctl.c), I'm not sure if it's documented anywhere, if not it'd be nice to have a sysctl(9) manpage. :) > bright> Besideds the way the sysctl is done, the change is pretty nice > bright> to see, but will need mplocking later. > > Do you mean ALLPROC_LOCK(AP_EXCLUSIVE) / ALLPROC_LOCK(AP_RELEASE) ? > If so, I'll move nforks++ between them. No, don't do that, we'll figure out how to lock it later, you may want to use the mp_fixme (mpfixme?) macro near the sysctl variable though. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010115111439.C7240>