On Mon, Jan 25, 2010 at 12:54:45PM -0800, Paul Goyette wrote: > This routine is really targetted specifically for use by the > sysmon_envsys(8) facility. This man page seems to imply that it's > available for general-purpose use.
Well, the sysmon-part is in the name so... :) While it is targeted for sysmon_envsys(8), the most important task for it on x86 is to schedule all ACPI notifys, including interrupts, via the AcpiOsExecute (see sys/dev/acpi/acpica/OsdSchedule.c). I would presume that this was also the reason why it was originally written. The other places where it is currently used: * sys/arch/arm/xscale/becc_button.c * sys/arch/evbarm/hdl_g/btn_obio.c * sys/arch/evbarm/nslu2/nslu2_buttons.c * sys/arch/hp700/dev/power.c * sys/arch/landisk/dev/btn_obio.c * sys/arch/landisk/dev/pwrsw_obio.c * sys/arch/mips/atheros/dev/argpio.c * sys/arch/sgimips/hpc/panel.c * sys/arch/sparc/dev/tctrl.c * sys/arch/sparc64/dev/psycho.c * sys/arch/x68k/dev/pow.c * sys/dev/adb/adb_kbd.c * sys/arch/arm/xscale/becc_button.c ... and probably others. This makes it pretty "general" to me. > If we're going to treat it as a general-purpose routine, we should rename > and move the files (kern/kern_taskq.[ch] maybe?). Otherwise, I'd prefer to > make this man page more specific to sysmon, and perhaps > add an example of where it is currently used. Due to the wide usage listed above, I don't think renaming is worth the cause. A word or two about the context (sysmon, power, something) wouldn't do harm though. > Also, there is some semantics in the current implementation where all the > tasks in the queue are run before checking the condvar; this might not > necessarily be appropriate for a general-purpose taskq. > > /* > * Run through all the tasks before we check for the exit > * condition; it's probably more important to actually run > * all the tasks before we exit. > */ This could be mentioned sure. - Jukka.