Date: Thu, 3 Jun 2004 01:14:02 +0200 From: Maxime Henrion <mux@freebsd.org> To: Scott Long <scottl@freebsd.org> Cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h Message-ID: <20040602231402.GI9228@elvis.mu.org> In-Reply-To: <40BE5CE4.60304@freebsd.org> References: <200406022252.i52MqJFp094240@repoman.freebsd.org> <40BE5CE4.60304@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Scott Long wrote: > Maxime Henrion wrote: > >mux 2004/06/02 15:52:18 PDT > > > > FreeBSD src repository > > > > Modified files: > > sys/dev/fxp if_fxp.c if_fxpvar.h > > Log: > > Use the device sysctl tree instead of rolling our own. Some of the > > sysctls were global (hw.fxp_rnr and hw.fxp_noflow), all of them are > > now per-device. Sample output of "sysctl dev.fxp0" with this patch, > > with the standard %foo nodes removed : > > > > dev.fxp0.int_delay: 1000 > > dev.fxp0.bundle_max: 6 > > dev.fxp0.rnr: 0 > > dev.fxp0.noflow: 0 > > > > Revision Changes Path > > 1.213 +18 -24 src/sys/dev/fxp/if_fxp.c > > 1.31 +2 -2 src/sys/dev/fxp/if_fxpvar.h > > Not having the ability to deal with global settings is a bit > of a pain. I had envisioned that something like this would > be: > > dev.fxp.N.instance_variable > > dev.fxp.global_variable It doesn't matter for the rnr sysctl, which is just a counter of RNR events. It used to be read/write though, but that was bogus because it's never read in the code, and only incremented, so I changed it to be read-only. The noflow sysctl is actually a tunable so most of the time people using it are already forced to use it per-device since AFAIK, tunables are only per-devices. It's however a read/write sysctl because since it's read in fxp_init(), it could be useful to set it to 1 and just run "ifconfig fxp0 down; ifconfig fxp0 up" so that it's used. But once you know you need this, you'll want to set it as a tunable anyway. Now I think you're raising a problem that we're likely to have in a near future when more drivers are converted to use the device sysctl tree, and when those drivers have settings that are likely to be useful globally. I already pondered having devinfo(8) renamed to devctl(8) and handle settings we want to do on devices via the sysctl device tree. Taking the detour through a userland program would allow us to have more elaborated features, like setting something on all devices at once. Anyways, I didn't think about this long enough to be really sure it's a good idea, and I don't have the time to handle such a task right now. I thought that could be of some interest to others. :-) > Anyways, this work still looks very nice =-) Thanks :-) Maxime
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040602231402.GI9228>