[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [patch] make hypercall_preempt_check() a little more sensitive



On Fri, 2006-03-31 at 10:33 +0100, Keir Fraser wrote:
> On 30 Mar 2006, at 18:17, Hollis Blanchard wrote:
> 
> I'd rather move event_pending() into asm/event.h and then you can 
> monkey with it as you like. That'll also catch other uses of 
> event_pending() where you probably also want the same extra check. I 
> don't really want a proliferation of extra little functions called 
> arch_xxx.

OK. Compile-tested on x86.

-- 
Hollis Blanchard
IBM Linux Technology Center

Make event_pending() architecture-specific.
PowerPC needs this because the domain can directly modify the hardware's
"interrupts enabled" bit, and we don't want to patch Linux to replace
all those accesses to use evtchn_upcall_mask instead.

Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>

diff -r 4ed269ac7d84 xen/include/asm-ia64/event.h
--- a/xen/include/asm-ia64/event.h      Mon Apr 10 13:24:58 2006 +0100
+++ b/xen/include/asm-ia64/event.h      Mon Apr 10 14:09:16 2006 -0500
@@ -32,4 +32,9 @@ static inline void evtchn_notify(struct 
        vcpu_pend_interrupt(v, v->vcpu_info->arch.evtchn_vector);
 }
 
+/* Note: Bitwise operations result in fast code with no branches. */
+#define event_pending(v)                        \
+    (!!(v)->vcpu_info->evtchn_upcall_pending &  \
+      !(v)->vcpu_info->evtchn_upcall_mask)
+
 #endif
diff -r 4ed269ac7d84 xen/include/asm-x86/event.h
--- a/xen/include/asm-x86/event.h       Mon Apr 10 13:24:58 2006 +0100
+++ b/xen/include/asm-x86/event.h       Mon Apr 10 14:09:16 2006 -0500
@@ -26,4 +26,9 @@ static inline void evtchn_notify(struct 
         smp_send_event_check_cpu(v->processor);
 }
 
+/* Note: Bitwise operations result in fast code with no branches. */
+#define event_pending(v)                        \
+    (!!(v)->vcpu_info->evtchn_upcall_pending &  \
+      !(v)->vcpu_info->evtchn_upcall_mask)
+
 #endif
diff -r 4ed269ac7d84 xen/include/xen/event.h
--- a/xen/include/xen/event.h   Mon Apr 10 13:24:58 2006 +0100
+++ b/xen/include/xen/event.h   Mon Apr 10 14:09:16 2006 -0500
@@ -38,11 +38,6 @@ extern void send_guest_global_virq(struc
  */
 extern void send_guest_pirq(struct domain *d, int pirq);
 
-/* Note: Bitwise operations result in fast code with no branches. */
-#define event_pending(v)                        \
-    (!!(v)->vcpu_info->evtchn_upcall_pending &  \
-      !(v)->vcpu_info->evtchn_upcall_mask)
-
 #define evtchn_pending(d, p)                    \
     (test_bit((p), &(d)->shared_info->evtchn_pending[0]))
 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.