tasklets: new tasklet scheduling function
authorVegard Nossum <vegard.nossum@gmail.com>
Wed, 21 May 2008 20:53:13 +0000 (22:53 +0200)
committerVegard Nossum <vegard.nossum@gmail.com>
Sat, 13 Jun 2009 08:02:24 +0000 (10:02 +0200)
commit7c692cbade8b8884f1c20500393bcc7cd6d24ef8
tree2cf4353c684304dfdefb89e0a70bfbd7eeadf85b
parent8eae985f08138758e06503588f5f1196269bc415
tasklets: new tasklet scheduling function

Rationale: kmemcheck needs to be able to schedule a tasklet without
touching any dynamically allocated memory _at_ _all_ (since that would
lead to a recursive page fault). This tasklet is used for writing the
error reports to the kernel log.

The new scheduling function avoids touching any other tasklets by
inserting the new tasklist as the head of the "tasklet_hi" list instead
of on the tail.

Also don't wake up the softirq thread lest the scheduler access some
tracked memory and we go down with a recursive page fault.

In this case, we'd better just wait for the maximum time of 1/HZ for the
message to appear.

Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>
include/linux/interrupt.h
kernel/softirq.c