diff options
author | Keir Fraser <keir@xen.org> | 2010-10-20 17:26:51 +0100 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-10-20 17:26:51 +0100 |
commit | 0780df2a52fe136496ffc250e6dbca07b95b904c (patch) | |
tree | 0051a62155ad8fcc442b8b674bd9d440d775ee02 /xen/include/asm-x86/hvm/vlapic.h | |
parent | da7abb1417a92981a356abcb3a8fa85c97dfff31 (diff) | |
download | xen-0780df2a52fe136496ffc250e6dbca07b95b904c.tar.gz xen-0780df2a52fe136496ffc250e6dbca07b95b904c.tar.bz2 xen-0780df2a52fe136496ffc250e6dbca07b95b904c.zip |
x86 hvm: When sending INIT-SIPI IPIs, pause the sending vcpu until the
asynchronous tasklet completes its work.
This is a little bit cleaner than busy-spinning in a retry loop.
Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/include/asm-x86/hvm/vlapic.h')
-rw-r--r-- | xen/include/asm-x86/hvm/vlapic.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/xen/include/asm-x86/hvm/vlapic.h b/xen/include/asm-x86/hvm/vlapic.h index eda970f780..905fff8dae 100644 --- a/xen/include/asm-x86/hvm/vlapic.h +++ b/xen/include/asm-x86/hvm/vlapic.h @@ -59,8 +59,11 @@ struct vlapic { s_time_t timer_last_update; struct page_info *regs_page; /* INIT-SIPI-SIPI work gets deferred to a tasklet. */ - uint32_t init_sipi_tasklet_icr; - struct tasklet init_sipi_tasklet; + struct { + struct vcpu *target; + uint32_t icr; + struct tasklet tasklet; + } init_sipi; }; static inline uint32_t vlapic_get_reg(struct vlapic *vlapic, uint32_t reg) |