WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-4.0-testing] relax vCPU pinned checks

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-4.0-testing] relax vCPU pinned checks
From: "Xen patchbot-4.0-testing" <patchbot-4.0-testing@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 05 Jan 2011 09:20:13 -0800
Delivery-date: Wed, 05 Jan 2011 09:20:20 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1294221671 0
# Node ID 7f91f7c9d13d22d188252bb0cd124c6a5fc00944
# Parent  714d808e57bb8111dffe0352b629662bd6b32c13
relax vCPU pinned checks

Both writing of certain MSRs and VCPUOP_get_physid make sense also for
dynamically (perhaps temporarily) pinned vcpus.

Likely a couple of other MSR writes (MSR_K8_HWCR, MSR_AMD64_NB_CFG,
MSR_FAM10H_MMIO_CONF_BASE) would make sense to be restricted by an
is_pinned() check too, possibly also some MSR reads.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
xen-unstable changeset:   22649:39194f457534
xen-unstable date:        Wed Jan 05 09:57:15 2011 +0000
---
 xen/arch/x86/domain.c   |    2 +-
 xen/arch/x86/traps.c    |    2 +-
 xen/include/xen/sched.h |    2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff -r 714d808e57bb -r 7f91f7c9d13d xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     Fri Dec 24 10:29:50 2010 +0000
+++ b/xen/arch/x86/domain.c     Wed Jan 05 10:01:11 2011 +0000
@@ -1005,7 +1005,7 @@ arch_do_vcpu_op(
         struct vcpu_get_physid cpu_id;
 
         rc = -EINVAL;
-        if ( !v->domain->is_pinned )
+        if ( !is_pinned_vcpu(v) )
             break;
 
         cpu_id.phys_id =
diff -r 714d808e57bb -r 7f91f7c9d13d xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Fri Dec 24 10:29:50 2010 +0000
+++ b/xen/arch/x86/traps.c      Wed Jan 05 10:01:11 2011 +0000
@@ -2292,7 +2292,7 @@ static int emulate_privileged_op(struct 
         case MSR_IA32_THERM_CONTROL:
             if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL )
                 goto fail;
-            if ( (v->domain->domain_id != 0) || !v->domain->is_pinned )
+            if ( (v->domain->domain_id != 0) || !is_pinned_vcpu(v) )
                 break;
             if ( wrmsr_safe(regs->ecx, eax, edx) != 0 )
                 goto fail;
diff -r 714d808e57bb -r 7f91f7c9d13d xen/include/xen/sched.h
--- a/xen/include/xen/sched.h   Fri Dec 24 10:29:50 2010 +0000
+++ b/xen/include/xen/sched.h   Wed Jan 05 10:01:11 2011 +0000
@@ -586,6 +586,8 @@ uint64_t get_cpu_idle_time(unsigned int 
 
 #define is_hvm_domain(d) ((d)->is_hvm)
 #define is_hvm_vcpu(v)   (is_hvm_domain(v->domain))
+#define is_pinned_vcpu(v) ((v)->domain->is_pinned || \
+                           cpus_weight((v)->cpu_affinity) == 1)
 #define need_iommu(d)    ((d)->need_iommu)
 
 void set_vcpu_migration_delay(unsigned int delay);

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-4.0-testing] relax vCPU pinned checks, Xen patchbot-4.0-testing <=