[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |