|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH][5/5] x86-64-irq-cpustat.patch
Use fixed size data types in irq_cpustat and check it properly for
softirqs before vmresume.
Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx>
diff -Nru a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S 2005-04-18 16:49:38 -07:00
+++ b/xen/arch/x86/x86_64/entry.S 2005-04-18 16:49:38 -07:00
@@ -242,10 +242,10 @@
cli # tests must not race interrupts
/*test_softirqs:*/
movq EDOMAIN_processor(%rbx),%rax
-#if 0
shl $6,%rax # sizeof(irq_cpustat) == 64
- test %rcx,SYMBOL_NAME(irq_stat)(%rax,1)
-#endif
+ leaq SYMBOL_NAME(irq_stat)(%rip), %rdx
+ addq %rdx,%rax
+ testl %ecx,(%rax)
jnz vmx_process_softirqs
vmx_restore_all_guest:
diff -Nru a/xen/include/asm-x86/hardirq.h b/xen/include/asm-x86/hardirq.h
--- a/xen/include/asm-x86/hardirq.h 2005-04-18 16:49:38 -07:00
+++ b/xen/include/asm-x86/hardirq.h 2005-04-18 16:49:38 -07:00
@@ -5,10 +5,10 @@
#include <xen/cache.h>
typedef struct {
- unsigned int __softirq_pending;
- unsigned int __local_irq_count;
- unsigned int __nmi_count;
- unsigned long idle_timestamp;
+ u32 __softirq_pending;
+ u32 __local_irq_count;
+ u32 __nmi_count;
+ u64 idle_timestamp;
} __cacheline_aligned irq_cpustat_t;
#include <xen/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH][5/5] x86-64-irq-cpustat.patch,
Arun Sharma <=
|
|
|
|
|