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

Re: [Xen-devel] [PATCH (V9) 2/2] xen: Add V4V implementation



On Tue, May 28, 2013 at 03:43:31PM -0400, Ross Philipson wrote:
> Setup of v4v domains a domain gets created and cleanup
> when a domain die. Wire up the v4v hypercall.
> 
> Include v4v internal and public headers.
> 
> Signed-off-by: Ross Philipson <ross.philipson@xxxxxxxxxx>

Would you consider making a boot-time option to disable v4v entirely?

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -199,7 +199,8 @@ struct domain *domain_create(
>  {
>      struct domain *d, **pd;
>      enum { INIT_xsm = 1u<<0, INIT_watchdog = 1u<<1, INIT_rangeset = 1u<<2,
> -           INIT_evtchn = 1u<<3, INIT_gnttab = 1u<<4, INIT_arch = 1u<<5 };
> +           INIT_evtchn = 1u<<3, INIT_gnttab = 1u<<4, INIT_arch = 1u<<5,
> +           INIT_v4v = 1u<<6 };
>      int err, init_status = 0;
>      int poolid = CPUPOOLID_NONE;
>  
> @@ -312,6 +313,13 @@ struct domain *domain_create(
>          spin_unlock(&domlist_update_lock);
>      }

Perhaps an opt_v4v check here?
  
> +    if ( !is_idle_domain(d) )
> +    {
> +        if ( (err = v4v_init(d)) != 0 )
> +            goto fail;
> +        init_status |= INIT_v4v;
> +    }
> +
>      return d;
>  
>   fail:

[...]

> new file mode 100644
> index 0000000..701877d
> --- /dev/null
> +++ b/xen/common/v4v.c

[...]

> +/*
> + * hypercall glue
> + */
> +long
> +do_v4v_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
> +          XEN_GUEST_HANDLE_PARAM(void) arg2,
> +          uint32_t arg3, uint32_t arg4)
> +{
> +    struct domain *d = current->domain;
> +    long rc = -EFAULT;
> +
> +    v4v_dprintk("->do_v4v_op(%d,%p,%p,%d,%d)\n", cmd,
> +                (void *)arg1.p, (void *)arg2.p, (int) arg3, (int) arg4);
> +

and check for d->v4v != NULL here, bailing with -ENOSYS?

> +    domain_lock(d);
> +    switch (cmd)
> +    {
> +    case V4VOP_register_ring:

[...]

--msw

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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