On Thu, Jan 30, 2003 at 09:18:17AM +0100, Jan Hudec wrote: > On Wed, Jan 29, 2003 at 08:27:48PM -0800, Wayne Yen wrote: > > While the bottom half (implemented via tasklet) of an interrupt > > handler is executing, can another bottom half (similarly implemented > > via tasklet) of another interrupt handler starts execute. My > > assumption is no. The ultimate question, then, is that what is the > > advantage of implementing tasklet to handle the bottom half over the > > old bottom half implementation? > > IIRC botomhlaves are hardcoded and activated by seting bits in a 32-bit > bitfield. While tasklets are enabled by puting a pointer in a list and > thus their number is not limited. Seems I was wrong (I think I had outdated information). From the code it really looks like the bottomhalves are run by a tasklet on a separate queue (run first), with global lock (so tasklets can run on two CPUs parallel, but bottomhalves can't) and disabling. It looks (see the comment at kernel/softirq.c before global_bh_lock) like bottomhalves exist mostly for backward compatibility and tasklets should be used in new code. Network has it's own "softirq"s different from tasklets and bhs and I don't see the reason, so there might be additional quirks to it. ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb@ucw.cz> -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/