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-unstable] x86: Add sysctl for cpu online/offline

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Add sysctl for cpu online/offline
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Sep 2008 13:10:10 -0700
Delivery-date: Tue, 23 Sep 2008 13:10:04 -0700
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.fraser@xxxxxxxxxx>
# Date 1222096024 -3600
# Node ID 0c8d2e44126d2562dbc71732889051076728034b
# Parent  415c3da25b26296335a3c6cf0511957f48dfd601
x86: Add sysctl for cpu online/offline

Signed-off-by:  Shan Haitao <haitao.shan@xxxxxxxxx>
---
 xen/arch/x86/sysctl.c       |   25 +++++++++++++++++++++++++
 xen/include/public/sysctl.h |   13 +++++++++++++
 2 files changed, 38 insertions(+)

diff -r 415c3da25b26 -r 0c8d2e44126d xen/arch/x86/sysctl.c
--- a/xen/arch/x86/sysctl.c     Mon Sep 22 15:56:12 2008 +0100
+++ b/xen/arch/x86/sysctl.c     Mon Sep 22 16:07:04 2008 +0100
@@ -28,6 +28,12 @@
 #include <xsm/xsm.h>
 
 #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+
+static long cpu_down_helper(void *data)
+{
+    int cpu = (unsigned long)data;
+    return cpu_down(cpu);
+}
 
 long arch_do_sysctl(
     struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
@@ -92,6 +98,25 @@ long arch_do_sysctl(
     }
     break;
     
+    case XEN_SYSCTL_cpu_hotplug:
+    {
+        unsigned int cpu = sysctl->u.cpu_hotplug.cpu;
+
+        switch ( sysctl->u.cpu_hotplug.op )
+        {
+        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
+            ret = cpu_up(cpu);
+            break;
+        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
+            ret = continue_hypercall_on_cpu(
+                0, cpu_down_helper, (void *)(unsigned long)cpu);
+            break;
+        default:
+            ret = -EINVAL;
+            break;
+        }
+    }
+    break;
 
     default:
         ret = -ENOSYS;
diff -r 415c3da25b26 -r 0c8d2e44126d xen/include/public/sysctl.h
--- a/xen/include/public/sysctl.h       Mon Sep 22 15:56:12 2008 +0100
+++ b/xen/include/public/sysctl.h       Mon Sep 22 16:07:04 2008 +0100
@@ -262,6 +262,18 @@ typedef struct xen_sysctl_get_pmstat xen
 typedef struct xen_sysctl_get_pmstat xen_sysctl_get_pmstat_t;
 DEFINE_XEN_GUEST_HANDLE(xen_sysctl_get_pmstat_t);
 
+#define XEN_SYSCTL_cpu_hotplug       11
+struct xen_sysctl_cpu_hotplug {
+    /* IN variables */
+    uint32_t cpu;   /* Physical cpu. */
+#define XEN_SYSCTL_CPU_HOTPLUG_ONLINE  0
+#define XEN_SYSCTL_CPU_HOTPLUG_OFFLINE 1
+    uint32_t op;    /* hotplug opcode */
+};
+typedef struct xen_sysctl_cpu_hotplug xen_sysctl_cpu_hotplug_t;
+DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpu_hotplug_t);
+
+
 struct xen_sysctl {
     uint32_t cmd;
     uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
@@ -276,6 +288,7 @@ struct xen_sysctl {
         struct xen_sysctl_getcpuinfo        getcpuinfo;
         struct xen_sysctl_availheap         availheap;
         struct xen_sysctl_get_pmstat        get_pmstat;
+        struct xen_sysctl_cpu_hotplug       cpu_hotplug;
         uint8_t                             pad[128];
     } u;
 };

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: Add sysctl for cpu online/offline, Xen patchbot-unstable <=