Hi, Chris
Please write summaries of each patches.
And can you wirte usage of domgrps/schedgrps?
My comments are below.
+long do_domgrpctl(XEN_GUEST_HANDLE(xen_domgrpctl_t) u_domgrpctl)
+{
+ long ret = 0;
+ struct xen_domgrpctl curop, *op = &curop;
+ static DEFINE_SPINLOCK(domgrpctl_lock);
+ struct domain_group *grp;
+ dgid_t dgid;
+
+ if (!IS_PRIV(current->domain)) {
+ ret = -EPERM;
+ goto out;
+ }
+
+ if (copy_from_guest(op, u_domgrpctl, 1)) {
+ ret = -EFAULT;
+ goto out;
+ }
+
+ if (op->interface_version != XEN_DOMGRPCTL_INTERFACE_VERSION) {
+ ret = -EINVAL;
I think "ret = -EACESS" is right.
diff -urN xen-unstable/xen/arch/x86/setup.c
xen-unstable-domgrps/xen/arch/x86/setup.c
--- xen-unstable/xen/arch/x86/setup.c 2008-01-29 12:44:24.000000000 -0500
+++ xen-unstable-domgrps/xen/arch/x86/setup.c 2008-01-29 12:53:23.000000000
-0500
@@ -3,6 +3,7 @@
#include <xen/lib.h>
#include <xen/sched.h>
#include <xen/domain.h>
+#include <xen/domgrp.h>
#include <xen/serial.h>
#include <xen/softirq.h>
#include <xen/acpi.h>
@@ -969,6 +970,10 @@
if ( opt_watchdog )
watchdog_enable();
+ /* initialize domain groups */
+ if (init_domain_groups())
+ panic("Error creating default groups\n");
+
/* Create initial domain 0. */
dom0 = domain_create(0, 0, DOM0_SSIDREF);
if ( (dom0 == NULL) || (alloc_vcpu(dom0, 0, 0) == NULL) )
@@ -977,6 +982,9 @@
dom0->is_privileged = 1;
dom0->target = NULL;
+ if (add_dom_to_grp(dom0, 0))
+ panic("Error adding dom0 to grp0\n");
+
/* Grab the DOM0 command line. */
cmdline = (char *)(mod[0].string ? __va(mod[0].string) : NULL);
if ( (cmdline != NULL) || (kextra != NULL) )
You change this part in the second patch.
diff -urN xen-unstable/xen/arch/x86/x86_64/entry.S
xen-unstable-domgrps/xen/arch/x86/x86_64/entry.S
--- xen-unstable/xen/arch/x86/x86_64/entry.S 2007-11-19 10:38:08.000000000
-0500
+++ xen-unstable-domgrps/xen/arch/x86/x86_64/entry.S 2007-11-19
18:43:06.000000000 -0500
@@ -672,6 +672,7 @@
.quad do_sysctl /* 35 */
.quad do_domctl
.quad do_kexec_op
+ .quad do_domgrpctl
.rept NR_hypercalls-((.-hypercall_table)/8)
.quad do_ni_hypercall
.endr
@@ -715,7 +716,7 @@
.byte 1 /* do_sysctl */ /* 35 */
.byte 1 /* do_domctl */
.byte 2 /* do_kexec */
- .byte 1 /* do_xsm_op */
+ .byte 1 /* do_domgrpctl */
.rept NR_hypercalls-(.-hypercall_args_table)
.byte 0 /* do_ni_hypercall */
.endr
Why do you remove do_xsm_op?
diff -urN xen-unstable/xen/include/xen/compile.h
xen-unstable-domgrps/xen/include/xen/compile.h
--- xen-unstable/xen/include/xen/compile.h 1969-12-31 19:00:00.000000000
-0500
+++ xen-unstable-domgrps/xen/include/xen/compile.h 2008-01-23
14:58:34.000000000 -0500
Please don't inlcude this file.
Best Regards,
Akio Takebe
>diffstat domgrps-vmm.patch
> arch/ia64/xen/xensetup.c | 7
> arch/powerpc/powerpc64/hypercall_table.S | 1
> arch/powerpc/setup.c | 7
> arch/x86/setup.c | 8
> arch/x86/x86_32/entry.S | 2
> arch/x86/x86_64/entry.S | 3
> common/Makefile | 2
> common/domain.c | 8
> common/domctl.c | 13 +
> common/domgrp.c | 320 ++++++++++++++++++++++++++
>+++++
> common/domgrpctl.c | 134 ++++++++++++
> common/sysctl.c | 1
> include/public/domctl.h | 2
> include/public/domgrpctl.h | 86 ++++++++
> include/public/xen.h | 5
> include/xen/compile.h | 39 +++
> include/xen/domgrp.h | 36 +++
> include/xen/hypercall.h | 5
> include/xen/sched.h | 21 ++
> 19 files changed, 697 insertions(+), 3 deletions(-)
>
>
>-------------------------------text/plain-------------------------------
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|