From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC][v2][PATCH 07/14] xen/passthrough: extend hypercall to support rdm reservation policy Date: Mon, 25 May 2015 13:42:32 +0200 Message-ID: <55630AA8.8070905@citrix.com> References: <1432287314-4388-1-git-send-email-tiejun.chen@intel.com> <1432287314-4388-8-git-send-email-tiejun.chen@intel.com> <555F0615.8030809@citrix.com> <5562846D.1060604@intel.com> <5562F337.7070709@citrix.com> <5562FE88.9050107@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5562FE88.9050107@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Chen, Tiejun" , Julien Grall , JBeulich@suse.com, tim@xen.org, konrad.wilk@oracle.com, andrew.cooper3@citrix.com, kevin.tian@intel.com, yang.z.zhang@intel.com, ian.campbell@citrix.com, wei.liu2@citrix.com, Ian.Jackson@eu.citrix.com, stefano.stabellini@citrix.com Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Hi, On 25/05/2015 12:50, Chen, Tiejun wrote: > > On 2015/5/25 18:02, Julien Grall wrote: >> >> >> On 25/05/2015 04:09, Chen, Tiejun wrote: >>> On 2015/5/22 18:33, Julien Grall wrote: >>>> Hi, >>>> >>>> On 22/05/2015 10:35, Tiejun Chen wrote: >>>>> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h >>>>> index 0c0ea4a..203c80e 100644 >>>>> --- a/xen/include/public/domctl.h >>>>> +++ b/xen/include/public/domctl.h >>>>> @@ -499,6 +499,11 @@ struct xen_domctl_assign_device { >>>>> XEN_GUEST_HANDLE_64(char) path; /* path to the device >>>>> tree node */ >>>>> } dt; >>>>> } u; >>>>> + /* IN */ >>>>> +#define XEN_DOMCTL_DEV_NO_RDM 0 >>>>> +#define XEN_DOMCTL_DEV_RDM_RELAXED 1 >>>>> +#define XEN_DOMCTL_DEV_RDM_STRICT 2 >>>>> + uint32_t flag; /* flag of assigned device */ >>>> >>>> You don't plumb this value for DT neither in the toolstack (see >>>> xc_assign_dt_device) and Xen. Please add a comment saying it's only >>>> used >>> >>> I think we should do this, >>> >>> @@ -1801,6 +1801,8 @@ int xc_assign_dt_device( >>> >>> domctl.u.assign_device.dev = XEN_DOMCTL_DEV_DT; >>> domctl.u.assign_device.u.dt.size = size; >>> + /* DT doesn't own any RDM. */ >>> + domctl.u.assign_device.flag = XEN_DOMCTL_DEV_NO_RDM; >>> set_xen_guest_handle(domctl.u.assign_device.u.dt.path, path); >>> >>> rc = do_domctl(xch, &domctl); >> >> I would be fine with plumbing in drivers/passthrough/device_tree.c and a >> check that the value is not different. >> > > Are you saying something like this? > > @@ -149,6 +149,14 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, > struct domain *d, > if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_DT ) > break; > > + if ( domctl->u.assign_device.dev == XEN_DOMCTL_DEV_NO_RDM ) wrong field here. Other than that it looks good to me. > + { > + printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: assign \"%s\"" > + " to dom%u failed (%d) since we don't support RDM.\n", > + dt_node_full_name(dev), d->domain_id, ret); > + break; > + } > + > if ( unlikely(d->is_dying) ) > { > ret = -EINVAL; Regards, -- Julien Grall