[Click] NotifierQueue on multi-threaded Click problem.

Eddie Kohler kohler at cs.ucla.edu
Tue Sep 4 17:20:33 EDT 2007


ToDevice::run_task() is not run in softirq context, it is called from Click's 
kernel thread like every other task.  ToDevice DOES call spin_trylock_bh 
itself, however.

Eddie


Joonwoo Park wrote:
> In addition about softirq.
> 
>>> - "The spinlock_bh needed because of push and pull can be called
>>> concurrently from softirq." : What do you mean?  I may be being stupid,
>>> but I don't think ANY pushes and pulls should be called from softirq
>>> context.  What softirq context are you thinking of?  Click runs almost
>>> entirely in user context (i.e. the kernel threads), or at least it should.
> 
> The ToDevice::run_task() is runs in sofrtirq context and it pulls packet.
> You may get warning WARN_ON(in_softirq()) at that function.
> Isn't it OK?
> 
> Jason Park (Joonwoo Park)


More information about the click mailing list