cvs commit: src/sys/pci if_ste.c

M. Warner Losh imp at bsdimp.com
Sun Apr 4 18:12:52 PDT 2004


In message: <20040404134458.C2452 at gamplex.bde.org>
            Bruce Evans <bde at 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


More information about the cvs-src mailing list