From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: PATCH (and RFC): new dom0 hypercall: DOM0_DOMAIN_SETUP Date: Mon, 19 Jun 2006 08:22:36 -0600 Message-ID: <1150726956.5331.3.camel@lappy> References: <200606151019.24560.Tristan.Gingold@bull.net> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200606151019.24560.Tristan.Gingold@bull.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Tristan Gingold , Keir Fraser Cc: xen-devel@lists.xensource.com, xen-ia64-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Hi Keir, Do you have an comments on this new hypercall Tristan is proposing? We have a patch pending in xen/ia64 that makes use of this new hypercall as a first step towards domain save/restore. Thanks, Alex On Thu, 2006-06-15 at 10:19 +0200, Tristan Gingold wrote: > Hi, > > for IA64, I'd like to create a new dom0 hypercall: DOM0_DOMAIN_SETUP. > > The purpose of this hypercall is to do some setup in a new domain: it builds > the firmware (~ BIOS), and creates the mm structures. > > This can't be done a domain creation because memory (and max_mem) is required. > This can't be completly done in user space and since the code has to be executed > for dom0 it is already present in the hypervisor. > > Previously this was done during vcpusetcontext. But this was almost a kuldge > and became difficult to manage when I worked on save & restore feature. > > I don't know wether or not other architectures might be interested in this hypercall. > In the later case, we may define an arch-dependant content. > > Tristan. > > > # HG changeset patch > # User gingold@virtu10 > # Node ID 6838c14692df784c96f8fc28416e1c33b0dca74a > # Parent 67b9f433900069efbbc9b198158ef0639b41e4b6 > Add DOM0_DOMAIN_SETUP hypercall. > > Signed-off-by: Tristan Gingold > > diff -r 67b9f4339000 -r 6838c14692df xen/include/public/dom0_ops.h > --- a/xen/include/public/dom0_ops.h Thu Jun 15 08:47:00 2006 +0200 > +++ b/xen/include/public/dom0_ops.h Thu Jun 15 08:54:15 2006 +0200 > @@ -513,6 +513,16 @@ struct dom0_hypercall_init { > }; > typedef struct dom0_hypercall_init dom0_hypercall_init_t; > DEFINE_XEN_GUEST_HANDLE(dom0_hypercall_init_t); > + > +#define DOM0_DOMAIN_SETUP 49 > +#define DOM0_DOMAIN_SETUP_VMX (1 << 0) > +typedef struct dom0_domain_setup { > + domid_t domain; /* domain to be affected */ > + unsigned long flags; > + unsigned long bp; /* mpaddr of boot param area */ > + unsigned long maxmem; /* Highest memory address for MDT. */ > +} dom0_domain_setup_t; > +DEFINE_XEN_GUEST_HANDLE(dom0_domain_setup_t); > > struct dom0_op { > uint32_t cmd; > @@ -555,6 +565,7 @@ struct dom0_op { > struct dom0_irq_permission irq_permission; > struct dom0_iomem_permission iomem_permission; > struct dom0_hypercall_init hypercall_init; > + struct dom0_domain_setup domain_setup; > uint8_t pad[128]; > } u; > }; -- Alex Williamson HP Open Source & Linux Org.