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] Make host.sched_policy read-only. Added d

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Make host.sched_policy read-only. Added docs, bindings, and a test for
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 10 Apr 2007 14:00:44 -0700
Delivery-date: Tue, 10 Apr 2007 14:00:31 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/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 Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1176117635 -3600
# Node ID 3565e4883548fcb448c8c9489b83ee80035d27f7
# Parent  51678fab4b0fb73faa141fef19dbe69207961573
Make host.sched_policy read-only.  Added docs, bindings, and a test for
host.cpu_configuration and host.sched_policy.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
 docs/xen-api/xenapi-datamodel.tex |   66 ++++++++++++++++++++++++++++++++++++++
 tools/libxen/include/xen_host.h   |   16 +++++++++
 tools/libxen/src/xen_host.c       |   42 ++++++++++++++++++++++++
 tools/libxen/test/test_bindings.c |   45 +++++++++++++++++++++++++
 tools/python/xen/xend/XendAPI.py  |    2 -
 5 files changed, 170 insertions(+), 1 deletion(-)

diff -r 51678fab4b0f -r 3565e4883548 docs/xen-api/xenapi-datamodel.tex
--- a/docs/xen-api/xenapi-datamodel.tex Mon Apr 09 11:39:27 2007 +0100
+++ b/docs/xen-api/xenapi-datamodel.tex Mon Apr 09 12:20:35 2007 +0100
@@ -4744,6 +4744,8 @@ Quals & Field & Type & Description \\
 $\mathit{RO}_\mathit{run}$ &  {\tt software\_version} & (string $\rightarrow$ 
string) Map & version strings \\
 $\mathit{RW}$ &  {\tt other\_config} & (string $\rightarrow$ string) Map & 
additional configuration \\
 $\mathit{RO}_\mathit{run}$ &  {\tt capabilities} & string Set & Xen 
capabilities \\
+$\mathit{RO}_\mathit{run}$ &  {\tt cpu\_configuration} & (string $\rightarrow$ 
string) Map & The CPU configuration on this host.  May contain keys such as 
``nr\_nodes'', ``sockets\_per\_node'', ``cores\_per\_socket'', or 
``threads\_per\_core'' \\
+$\mathit{RO}_\mathit{run}$ &  {\tt sched\_policy} & string & Scheduler policy 
currently in force on this host \\
 $\mathit{RO}_\mathit{run}$ &  {\tt supported\_bootloaders} & string Set & a 
list of the bootloaders installed on the machine \\
 $\mathit{RO}_\mathit{run}$ &  {\tt resident\_VMs} & (VM ref) Set & list of VMs 
currently resident on host \\
 $\mathit{RW}$ &  {\tt logging} & (string $\rightarrow$ string) Map & logging 
configuration \\
@@ -5545,6 +5547,70 @@ Get the capabilities field of the given 
  \noindent {\bf Return Type:} 
 {\tt 
 string Set
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_cpu\_configuration}
+
+{\bf Overview:} 
+Get the cpu\_configuration field of the given host.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, 
host ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+ 
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt host ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+(string $\rightarrow$ string) Map
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_sched\_policy}
+
+{\bf Overview:} 
+Get the sched\_policy field of the given host.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_sched_policy (session_id s, host ref 
self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+ 
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt host ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
 }
 
 
diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/include/xen_host.h
--- a/tools/libxen/include/xen_host.h   Mon Apr 09 11:39:27 2007 +0100
+++ b/tools/libxen/include/xen_host.h   Mon Apr 09 12:20:35 2007 +0100
@@ -79,6 +79,8 @@ typedef struct xen_host_record
     xen_string_string_map *software_version;
     xen_string_string_map *other_config;
     struct xen_string_set *capabilities;
+    xen_string_string_map *cpu_configuration;
+    char *sched_policy;
     struct xen_string_set *supported_bootloaders;
     struct xen_vm_record_opt_set *resident_vms;
     xen_string_string_map *logging;
@@ -261,6 +263,20 @@ xen_host_get_capabilities(xen_session *s
 
 
 /**
+ * Get the cpu_configuration field of the given host.
+ */
+extern bool
+xen_host_get_cpu_configuration(xen_session *session, xen_string_string_map 
**result, xen_host host);
+
+
+/**
+ * Get the sched_policy field of the given host.
+ */
+extern bool
+xen_host_get_sched_policy(xen_session *session, char **result, xen_host host);
+
+
+/**
  * Get the supported_bootloaders field of the given host.
  */
 extern bool
diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/src/xen_host.c
--- a/tools/libxen/src/xen_host.c       Mon Apr 09 11:39:27 2007 +0100
+++ b/tools/libxen/src/xen_host.c       Mon Apr 09 12:20:35 2007 +0100
@@ -73,6 +73,12 @@ static const struct_member xen_host_reco
         { .key = "capabilities",
           .type = &abstract_type_string_set,
           .offset = offsetof(xen_host_record, capabilities) },
+        { .key = "cpu_configuration",
+          .type = &abstract_type_string_string_map,
+          .offset = offsetof(xen_host_record, cpu_configuration) },
+        { .key = "sched_policy",
+          .type = &abstract_type_string,
+          .offset = offsetof(xen_host_record, sched_policy) },
         { .key = "supported_bootloaders",
           .type = &abstract_type_string_set,
           .offset = offsetof(xen_host_record, supported_bootloaders) },
@@ -128,6 +134,8 @@ xen_host_record_free(xen_host_record *re
     xen_string_string_map_free(record->software_version);
     xen_string_string_map_free(record->other_config);
     xen_string_set_free(record->capabilities);
+    xen_string_string_map_free(record->cpu_configuration);
+    free(record->sched_policy);
     xen_string_set_free(record->supported_bootloaders);
     xen_vm_record_opt_set_free(record->resident_vms);
     xen_string_string_map_free(record->logging);
@@ -350,6 +358,40 @@ xen_host_get_capabilities(xen_session *s
 
 
 bool
+xen_host_get_cpu_configuration(xen_session *session, xen_string_string_map 
**result, xen_host host)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host }
+        };
+
+    abstract_type result_type = abstract_type_string_string_map;
+
+    *result = NULL;
+    XEN_CALL_("host.get_cpu_configuration");
+    return session->ok;
+}
+
+
+bool
+xen_host_get_sched_policy(xen_session *session, char **result, xen_host host)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host }
+        };
+
+    abstract_type result_type = abstract_type_string;
+
+    *result = NULL;
+    XEN_CALL_("host.get_sched_policy");
+    return session->ok;
+}
+
+
+bool
 xen_host_get_supported_bootloaders(xen_session *session, struct xen_string_set 
**result, xen_host host)
 {
     abstract_value param_values[] =
diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/test/test_bindings.c
--- a/tools/libxen/test/test_bindings.c Mon Apr 09 11:39:27 2007 +0100
+++ b/tools/libxen/test/test_bindings.c Mon Apr 09 12:20:35 2007 +0100
@@ -285,6 +285,40 @@ int main(int argc, char **argv)
         return 1;
     }
 
+    xen_string_string_map *cpu_configuration;
+    if (!xen_host_get_cpu_configuration(session, &cpu_configuration, host))
+    {
+        print_error(session);
+        free(dmesg);
+        xen_string_set_free(capabilities);
+        xen_string_set_free(supported_bootloaders);
+        xen_string_string_map_free(versions);
+        xen_host_free(host);
+        xen_vm_record_free(vm_record);
+        xen_uuid_bytes_free(vm_uuid_bytes);
+        xen_uuid_free(vm_uuid);
+        xen_vm_free(vm);
+        CLEANUP;
+        return 1;
+    }
+
+    char *sched_policy;
+    if (!xen_host_get_sched_policy(session, &sched_policy, host))
+    {
+        print_error(session);
+        xen_string_string_map_free(cpu_configuration);
+        xen_string_set_free(capabilities);
+        xen_string_set_free(supported_bootloaders);
+        xen_string_string_map_free(versions);
+        xen_host_free(host);
+        xen_vm_record_free(vm_record);
+        xen_uuid_bytes_free(vm_uuid_bytes);
+        xen_uuid_free(vm_uuid);
+        xen_vm_free(vm);
+        CLEANUP;
+        return 1;
+    }
+
     printf("%s.\n", vm_uuid);
 
     printf("In bytes, the VM UUID is ");
@@ -317,6 +351,15 @@ int main(int argc, char **argv)
         printf(" %s", capabilities->contents[i]);
     }
     printf("\n");
+
+    printf("Host has the following CPU configuration:\n");
+    for (size_t i = 0; i < cpu_configuration->size; i++)
+    {
+        printf("  %s -> %s.\n", cpu_configuration->contents[i].key,
+               cpu_configuration->contents[i].val);
+    }
+
+    printf("Current scheduler policy: %s.\n\n", sched_policy);
 
     printf("%s.\n", vm_record->uuid);
 
@@ -334,6 +377,8 @@ int main(int argc, char **argv)
     free(dmesg);
     xen_string_set_free(supported_bootloaders);
     xen_string_set_free(capabilities);
+    xen_string_string_map_free(cpu_configuration);
+    free(sched_policy);
 
     print_vm_metrics(session, vm);
     if (!session->ok)
diff -r 51678fab4b0f -r 3565e4883548 tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Mon Apr 09 11:39:27 2007 +0100
+++ b/tools/python/xen/xend/XendAPI.py  Mon Apr 09 12:20:35 2007 +0100
@@ -860,13 +860,13 @@ class XendAPI(object):
                     'metrics',
                     'capabilities',
                     'supported_bootloaders',
+                    'sched_policy',
                     'API_version_major',
                     'API_version_minor',
                     'API_version_vendor',
                     'API_version_vendor_implementation']
     
     host_attr_rw = ['name_label',
-                    'sched_policy',
                     'name_description',
                     'other_config']
 

_______________________________________________
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] Make host.sched_policy read-only. Added docs, bindings, and a test for, Xen patchbot-unstable <=