|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 1/25] DOMCTL: Introduce new DOMCTL commands for vIOMMU support
On Thu, Aug 24, 2017 at 03:03:49PM +0100, Julien Grall wrote:
> Hi,
>
> On 23/08/17 15:05, Roger Pau Monné wrote:
> > On Wed, Aug 23, 2017 at 11:19:01AM +0100, Julien Grall wrote:
> > > Hi Roger,
> > >
> > > On 23/08/17 08:22, Roger Pau Monné wrote:
> > > > On Wed, Aug 23, 2017 at 02:06:17PM +0800, Lan Tianyu wrote:
> > > > > Hi Roger:
> > > > > Thanks for your review.
> > > > >
> > > > > On 2017年08月22日 22:32, Roger Pau Monné wrote:
> > > > > > On Wed, Aug 09, 2017 at 04:34:02PM -0400, Lan Tianyu wrote:
> > > > > > > +
> > > > > > > +/* vIOMMU capabilities */
> > > > > > > +#define VIOMMU_CAP_IRQ_REMAPPING (1u << 0)
> > > > > > > +
> > > > > > > +struct xen_domctl_viommu_op {
> > > > > > > + uint32_t cmd;
> > > > > > > +#define XEN_DOMCTL_create_viommu 0
> > > > > > > +#define XEN_DOMCTL_destroy_viommu 1
> > > > > > > +#define XEN_DOMCTL_query_viommu_caps 2
> > > > > > > + union {
> > > > > > > + struct {
> > > > > > > + /* IN - vIOMMU type */
> > > > > > > + uint64_t viommu_type;
> > > > > > > + /*
> > > > > > > + * IN - MMIO base address of vIOMMU. vIOMMU device
> > > > > > > models
> > > > > > > + * are in charge of to check base_address and length.
> > > > > > > + */
> > > > > > > + uint64_t base_address;
> > > > > > > + /* IN - Length of MMIO region */
> > > > > > > + uint64_t length;
> > > > > >
> > > > > > It seems weird that you can specify the length, is that something
> > > > > > that a user would like to set? Isn't the length of the IOMMU MMIO
> > > > > > region fixed by the hardware spec?
> > > > >
> > > > > Different vendor may have different IOMMU register region sizes. (e.g,
> > > > > VTD has one page size for register region). The length field is to
> > > > > make
> > > > > vIOMMU device model not to abuse address space. Some registers'
> > > > > offsets
> > > > > are reported by other register and these offsets are emulated by
> > > > > vIOMMU
> > > > > device model. If it's not necessary, we can remove it and add it when
> > > > > there is real such requirement.
> > > >
> > > > So from my understanding the size of the IOMMU MMIO region is implicit
> > > > in the IOMMU type that the user chooses. I don't think this field is
> > > > needed.
> > >
> > > To me, it makes more sense to care both the base and the size rather than
> > > only the former.
> > >
> > > The toolstack is in charge of the address space and should be aware of the
> > > size of everything. This address space may not be static and it makes
> > > sense
> > > to give this information to Xen and verify we had the same assumption.
> >
> > Does this imply that we will have variable size vIOMMU MMIO regions?
>
> There are existing IOMMU with multiple MMIO regions. This is the case of the
> Nvidia SMMU. Whether we will emulate then is another question. But for
> completeness, I would use address/size.
The proposed implementation does not support multiple MMIO regions
anyway. I'm not going to oppose to this anymore, but I don't see much
value on implementing things just for completeness without having a
real use case, specially when this is a domctl interface that is not
stable, ie: we can always modify it later on without any issues.
Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |