[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Hypercall preemption check also looks for pending event upcalls to
ChangeSet 1.1369, 2005/04/22 17:34:45+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx Hypercall preemption check also looks for pending event upcalls to guest kernel. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> sched.h | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff -Nru a/xen/include/xen/sched.h b/xen/include/xen/sched.h --- a/xen/include/xen/sched.h 2005-04-22 13:04:06 -04:00 +++ b/xen/include/xen/sched.h 2005-04-22 13:04:06 -04:00 @@ -301,8 +301,11 @@ (unsigned long)(_a1), (unsigned long)(_a2), (unsigned long)(_a3), \ (unsigned long)(_a4), (unsigned long)(_a5), (unsigned long)(_a6)) -#define hypercall_preempt_check() \ - (unlikely(softirq_pending(smp_processor_id()))) +#define hypercall_preempt_check() (unlikely( \ + softirq_pending(smp_processor_id()) | \ + (!!current->vcpu_info->evtchn_upcall_pending & \ + !current->vcpu_info->evtchn_upcall_mask) \ + )) /* This domain_hash and domain_list are protected by the domlist_lock. */ #define DOMAIN_HASH_SIZE 256 @@ -310,11 +313,13 @@ extern struct domain *domain_hash[DOMAIN_HASH_SIZE]; extern struct domain *domain_list; -#define for_each_domain(_p) \ - for ( (_p) = domain_list; (_p) != NULL; (_p) = (_p)->next_list ) +#define for_each_domain(_d) \ + for ( (_d) = domain_list; (_d) != NULL; (_d) = (_d)->next_list ) #define for_each_exec_domain(_d,_ed) \ - for ( (_ed) = _d->exec_domain[0]; (_ed) != NULL; (_ed) = (_ed)->ed_next_list ) + for ( (_ed) = (_d)->exec_domain[0]; \ + (_ed) != NULL; \ + (_ed) = (_ed)->ed_next_list ) #define EDF_DONEFPUINIT 0 /* Has the FPU been initialised for this task? */ #define EDF_USEDFPU 1 /* Has this task used the FPU since last save? */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |