aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/tasklet.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-04-19 10:12:41 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-04-19 10:12:41 +0100
commit10d7e8ed969aeb190b3e651282e3ee12f5560820 (patch)
tree73dc2c8900bdfc3121f2d0948dd4c764584067f8 /xen/include/xen/tasklet.h
parent197965150c69bde1d38ead5e8c7eb7bfa211d498 (diff)
downloadxen-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.h6
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(