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-devel

[Xen-devel] [PATCH] [IA64] support XEN_SYSCTL_numainfo

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] [IA64] support XEN_SYSCTL_numainfo
From: "KUWAMURA Shin'ya" <kuwa@xxxxxxxxxxxxxx>
Date: Fri, 04 Jun 2010 17:53:34 +0900 (JST)
Delivery-date: Fri, 04 Jun 2010 02:07:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

This patch enables ia64 to support XEN_SYSCTL_numainfo.

Signed-off-by: KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx>
-- 
  KUWAMURA Shin'ya
# HG changeset patch
# User KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx>
# Date 1275628873 -32400
# Node ID a43a84363bc3b6ef046aa61e3df4d9bb424d8109
# Parent  d2977fcbd7e87bbfb96a2d1f11e4db6789613dde
[IA64] support XEN_SYSCTL_numainfo

Signed-off-by: KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx>

diff -r d2977fcbd7e8 -r a43a84363bc3 xen/arch/ia64/xen/dom0_ops.c
--- a/xen/arch/ia64/xen/dom0_ops.c      Fri Jun 04 12:05:55 2010 +0900
+++ b/xen/arch/ia64/xen/dom0_ops.c      Fri Jun 04 14:21:13 2010 +0900
@@ -803,6 +803,50 @@ long arch_do_sysctl(xen_sysctl_t *op, XE
     }
     break;
 
+    case XEN_SYSCTL_numainfo:
+    {
+        uint32_t i, j, max_node_index, last_online_node;
+        xen_sysctl_numainfo_t *ni = &op->u.numainfo;
+
+        last_online_node = last_node(node_online_map);
+        max_node_index = min_t(uint32_t, ni->max_node_index, last_online_node);
+        ni->max_node_index = last_online_node;
+
+        for (i = 0; i <= max_node_index; i++) {
+            if (!guest_handle_is_null(ni->node_to_memsize)) {
+                uint64_t memsize = node_online(i) ? 
+                                   node_memblk[i].size << PAGE_SHIFT : 0ul;
+                if (copy_to_guest_offset(ni->node_to_memsize, i, &memsize, 1))
+                    break;
+            }
+            if (!guest_handle_is_null(ni->node_to_memfree)) {
+                uint64_t memfree = node_online(i) ? 
+                                   avail_node_heap_pages(i) << PAGE_SHIFT : 
0ul;
+                if (copy_to_guest_offset(ni->node_to_memfree, i, &memfree, 1))
+                    break;
+            }
+
+            if (!guest_handle_is_null(ni->node_to_node_distance)) {
+                for (j = 0; j <= max_node_index; j++) {
+                    uint32_t distance = ~0u;
+                    if (node_online(i) && node_online (j)) 
+                        distance = node_distance(i, j);
+                    
+                    if (copy_to_guest_offset(
+                        ni->node_to_node_distance, 
+                        i*(max_node_index+1) + j, &distance, 1))
+                        break;
+                }
+                if (j <= max_node_index)
+                    break;
+            }
+        }
+
+        ret = ((i <= max_node_index) || copy_to_guest(u_sysctl, op, 1))
+            ? -EFAULT : 0;
+    }
+    break;
+
     default:
         printk("arch_do_sysctl: unrecognized sysctl: %d!!!\n",op->cmd);
         ret = -ENOSYS;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>