Date: Sun, 04 Apr 2004 15:27:59 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: bde@zeta.org.au Cc: nate@root.org Subject: Re: cvs commit: src/sys/pci if_ste.c Message-ID: <20040404.152759.13025361.imp@bsdimp.com> In-Reply-To: <20040404134458.C2452@gamplex.bde.org> References: <20040401135011.GB378@ip.net.ua> <20040403200844.GA18516@regency.nsu.ru> <20040404134458.C2452@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20040404134458.C2452@gamplex.bde.org> Bruce Evans <bde@zeta.org.au> writes: : Using sysctl in device drivers is bad practice, but fixing this is : nontrivial. I'm curious, what makes it bad practice? Is there a layering violation? Is there something else? I ask because I think that there's support for having both a hw.* heirarchy to control the global aspects of drivers (which is wide spread) and dev.* to reflect the dev tree to userland (DES' set of patches, or similar, have been warmly received on arch@), as well as provide per-interface tunables and statistics. : Bugs result from this bad practice even for the new sysctl in if_ste.c: : - the counter is global but the problem is per-interface. Sysctls : using globals are easy to hack up, but this don't work so well for : multiple interfaces. This is true. : - accesses to the global counter are not locked. SE_LOCK() is : per-interface. This is also true. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040404.152759.13025361.imp>