http://osdir.com/ml/kernel.kernelnewbies/2003-01/msg00062.html
| Subject: |
Re: Advantage of Tasklet as the bottom half of interrupt handler. |
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.
|