diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-04-19 10:12:41 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-04-19 10:12:41 +0100 |
commit | 10d7e8ed969aeb190b3e651282e3ee12f5560820 (patch) | |
tree | 73dc2c8900bdfc3121f2d0948dd4c764584067f8 /xen/include/xen/tasklet.h | |
parent | 197965150c69bde1d38ead5e8c7eb7bfa211d498 (diff) | |
download | xen-10d7e8ed969aeb190b3e651282e3ee12f5560820.tar.gz xen-10d7e8ed969aeb190b3e651282e3ee12f5560820.tar.bz2 xen-10d7e8ed969aeb190b3e651282e3ee12f5560820.zip |
Implement tasklets as running in VCPU context (sepcifically, idle-VCPU context)
...rather than in softirq context. This is expected to avoid a lot of
subtle deadlocks relating to the fact that softirqs can interrupt a
scheduled vcpu.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/xen/tasklet.h')
-rw-r--r-- | xen/include/xen/tasklet.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xen/include/xen/tasklet.h b/xen/include/xen/tasklet.h index 9187462a09..5eb8f8979b 100644 --- a/xen/include/xen/tasklet.h +++ b/xen/include/xen/tasklet.h @@ -1,8 +1,8 @@ /****************************************************************************** * tasklet.h * - * Dynamically-allocatable tasks run in softirq context on at most one CPU at - * a time. + * Tasklets are dynamically-allocatable tasks run in VCPU context + * (specifically, the idle VCPU's context) on at most one CPU at a time. */ #ifndef __XEN_TASKLET_H__ @@ -26,6 +26,8 @@ struct tasklet void tasklet_schedule_on_cpu(struct tasklet *t, unsigned int cpu); void tasklet_schedule(struct tasklet *t); +void do_tasklet(void); +bool_t tasklet_queue_empty(unsigned int cpu); void tasklet_kill(struct tasklet *t); void migrate_tasklets_from_cpu(unsigned int cpu); void tasklet_init( |