From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen, Tiejun" Subject: Re: [RFC][v2][PATCH 07/14] xen/passthrough: extend hypercall to support rdm reservation policy Date: Tue, 26 May 2015 08:42:07 +0800 Message-ID: <5563C15F.4030505@intel.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> <55630AA8.8070905@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <55630AA8.8070905@citrix.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: 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 On 2015/5/25 19:42, Julien Grall wrote: > 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. Sorry for this typo, s/.dev/.flag. Thanks Tiejun > >> + { >> + 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, >