2002-02-01 03:36:51

by Dragan Stancevic

[permalink] [raw]
Subject: tasklet broken? Quick question

Hi,

I am seeing a strange behavior when using tasklets so I was wondering if
this is a bug or a feature and if anyone else has experienced the same
behavior.

I am using 2.4.9 and I checked the ChangeLog and there was a fix from Andrea
in 2.4.8 with relation to tasklets but nothing after that.

I schedule a tasklet from a network driver interrupt and what I am seeing is
that in some cases the tasklet runs twice when I am expecting it to run once.

Here is pseudo code how it looks like:

network_interrupt(){
tasklet_schedule()
}

tasklet_code(){
do_stuff()
}

and here is what happens:

I get an interrupt which calls tasklet_schedule, the tasklet starts executing
and has not exited yet and I get another interrupt that calls
tasklet_schedule, now the tasklet code exits but in some cases it executes
again without ever tasklet_schedule being called again, I checked this is
done on the same cpu as the interrupt was called so thats ok. I am just not
sure if I should be expecting that "extra" execution, I thought I shouldn't.


PS: Please Cc me on reply as I am not currently on lkml. Thanks.


--
Peace can only come as a natural consequence
of universal enlightenment. -Dr. Nikola Tesla