diff options
| author | John Levon <john.levon@sun.com> | 2008-09-09 06:00:28 -0700 |
|---|---|---|
| committer | John Levon <john.levon@sun.com> | 2008-09-09 06:00:28 -0700 |
| commit | 391647d5ee9b25dc5307abb55f583388e08b2dd7 (patch) | |
| tree | f61cd017c094950b6e73afb1c3f84c831658098b /usr/src/uts/i86pc/i86hvm | |
| parent | c2e312289d4832c879e67a27c7af9dfc9873979e (diff) | |
| download | illumos-joyent-391647d5ee9b25dc5307abb55f583388e08b2dd7.tar.gz | |
6717224 HVM domUs stop doing IO, peg CPU
Diffstat (limited to 'usr/src/uts/i86pc/i86hvm')
| -rw-r--r-- | usr/src/uts/i86pc/i86hvm/io/xpv/evtchn.c | 11 | ||||
| -rw-r--r-- | usr/src/uts/i86pc/i86hvm/io/xpv/xpv.conf | 11 |
2 files changed, 16 insertions, 6 deletions
diff --git a/usr/src/uts/i86pc/i86hvm/io/xpv/evtchn.c b/usr/src/uts/i86pc/i86hvm/io/xpv/evtchn.c index 14d5bcc4b9..6fbaa568cd 100644 --- a/usr/src/uts/i86pc/i86hvm/io/xpv/evtchn.c +++ b/usr/src/uts/i86pc/i86hvm/io/xpv/evtchn.c @@ -24,8 +24,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/xpv_support.h> #include <sys/hypervisor.h> @@ -230,7 +228,14 @@ evtchn_callback_fcn(caddr_t arg0, caddr_t arg1) int low, high; ulong_t sels; - vci = &HYPERVISOR_shared_info->vcpu_info[CPU->cpu_id]; + /* + * Xen hard-codes all notifications to VCPU0, so we bind + * ourselves via xpv.conf. Note that this also assumes that all + * evtchns are bound to VCPU0, which is true by default. + */ + ASSERT(CPU->cpu_id == 0); + + vci = &HYPERVISOR_shared_info->vcpu_info[0]; again: DTRACE_PROBE2(evtchn__scan__start, int, vci->evtchn_upcall_pending, diff --git a/usr/src/uts/i86pc/i86hvm/io/xpv/xpv.conf b/usr/src/uts/i86pc/i86hvm/io/xpv/xpv.conf index d599f6f3ff..aa8b997152 100644 --- a/usr/src/uts/i86pc/i86hvm/io/xpv/xpv.conf +++ b/usr/src/uts/i86pc/i86hvm/io/xpv/xpv.conf @@ -19,10 +19,15 @@ # CDDL HEADER END # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" - interrupt-priorities=9; +# +# Xen requires us to run this ISR on VCPU0, since that's where all HVM +# event channels are bound to, and only the vcpu_info for VCPU0 gets +# updated. This will bind us to VCPU0, as well as preventing any +# attempt to offline the CPU. +# +xpv_intpt_bind_cpus=0; |
