On Mon, 17 Dec 2007 00:40:33 -0500, Berlin Brown wrote > I am looking at a lot of different versions of the kernel source (1.x, > 2.2, and 2.4) as I am trying to understand the kernel as a whole. > In the early versions of the kernel (1.x) > > In the scheduler init; the bottom half timer routine is defined > > bh_base[TIMER_BH].routine = timer_bh; > bh_base[TQUEUE_BH].routine = tqueue_bh; > > In the system_call function, this bottom_half routine is defined: > > handle_bottom_half: > call _do_bottom_half > > And then in irq, bottom half is defined. > > asmlinkage void do_bottom_half(void) {} > > And then, I may use the bottom half routine with a block device > driver like the floppy driver to turn off the motor. > > My question; why would the bottom half routines like the timer bottom > half get associated with a system call? E.g. if I call sys_fork, > "fork"? which will in turn call the system_call; bottom half will get > called and then call the timing routines. It seems like the timing > routines should get invoked by the timing interrupt? > > How do the bottom half routines work, especially as it relates to > timing routines. > > -- > Berlin Brown > http://botspiritcompany.com/botlist/spring/help/about.html My fault, I was looking at the sys_call.S code and it looks like some assembly magic. The bottom half routines are called per interrupt and per system call. But it looked like it was part of the same routine. -- Berlin Brown [berlin dot brown at gmail dot com] http://botspiritcompany.com/botlist/? -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ