[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: PATCH (and RFC): new dom0 hypercall: DOM0_DOMAIN_SETUP



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 <tristan.gingold@xxxxxxxx>
> 
> 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.


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.