From: chuckw@ieee.org
To: linux-kernel@vger.kernel.org
Subject: Re: Looking for comments on Bottom-Half/Tasklet/SoftIRQ
Date: Mon, 20 Aug 2001 08:39:41 -0400 [thread overview]
Message-ID: <20010820083941.A10188@ieee.org> (raw)
In-Reply-To: <20010818231704.A2388@ieee.org> <3B7FF06A.4090606@fugmann.dhs.org> <20010819013508.B2388@ieee.org> <3B81350C.E48FCF11@mvista.com>
In-Reply-To: <3B81350C.E48FCF11@mvista.com>; from george@mvista.com on Mon, Aug 20, 2001 at 09:04:28AM -0700
Thanks all for the info. You have been very helpful.
Many Thanks,
Chuck
On Mon, Aug 20, 2001 at 09:04:28AM -0700, george anzinger wrote:
> chuckw@ieee.org wrote:
> >
> > Thanks.
> >
> > So, Bottom halves don't need to be re-entrant as do tasklets. SoftIRQ's
> > need to be re-entrant. The advantage of tasklets is that each tasklet can
> > be farmed out to different CPU's AND they don't need to be re-entrant
> > because only one instance is allowed at a time. I think I got it.
> >
> > Could you direct me to some code in the kernel which uses tasklets
> > so I can see the inner workings?
> >
> > Thanks much,
> > Chuck
> >
> > On Sun, Aug 19, 2001 at 06:59:22PM +0200, Anders Peter Fugmann wrote:
> > >
> > > chuckw@ieee.org wrote:
> > > > Greetings,
> > > > I was reading the unreliable guide to kernel hacking and was looking for
> > > > a little clarification on something. 2 Bottom halves cannot run at the same
> > > > time, why?
> > >
> > > Per linux definition of bottom halves, there can only run one buttom
> > > half at one system wide. But dont use those - They are old and waists
> > > resources. Try tasklets instead. Multible tasklets can run in parrallel
> > > (but not the same tasklet)
> > >
> > > > Also, could someone give me an example of a service which is a bottom half/
> > > > tasklet/SoftIRQ?
> > > Simple.
> > >
> > > Imagine some hardware that generates interrupts.
> > > Now we want to write a driver that keeps the hardware busy, so we
> > > implement a top half handler (IRQ-handler), and let it retrieve som data
> > > from the hardware. Instead of processing it right away, we shedule a
> > > tasklet to do that job. This way we can handle more interrupts/sec from
> > > the card, and the hardware is kept busy.
> > >
> > >
> > > To summerize.
> > > Buttom halves are the strictest (only one at a time.)
> > > Takslets can run in parralel, but still no need to worry about reentrant
> > > code.
> > > SoftIrq give no guarrentee at all, and should be used with great care
> > > (code need to be reentrant).
> > >
> > > Also try to readLinux device drivers by A. Rubini:
> > > http://www.xml.com/ldd/chapter/book/index.html
> > >
> > > Hope it helps.
> > > Anders Fugmann
> > >
> > > >
>
> A simple example is the ../kernel/timer.c code. The "run_task_list()"
> function is called from a tasklet. "do_timer()" is called from
> interrupt and "mark_bh(TIMER_BH)" puts the tasklet in the queue.
> "timer_bh()" (old names die hard) is the tasklet.
>
> George
next prev parent reply other threads:[~2001-08-21 0:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-19 3:17 Looking for comments on Bottom-Half/Tasklet/SoftIRQ chuckw
2001-08-19 16:59 ` Anders Peter Fugmann
2001-08-19 5:35 ` chuckw
2001-08-19 19:01 ` Anders Peter Fugmann
2001-08-19 10:57 ` chuckw
2001-08-20 16:04 ` george anzinger
2001-08-20 12:39 ` chuckw [this message]
2001-08-20 21:05 ` Anders Peter Fugmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010820083941.A10188@ieee.org \
--to=chuckw@ieee.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.