[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 5/7] xen/arm: Add XEN_DOMCTL_dt_overlay and device attachment to domains
On Fri, 24 May 2024, Julien Grall wrote: > Hi Stefano, > > On 24/05/2024 03:18, Stefano Stabellini wrote: > > From: Henry Wang <xin.wang2@xxxxxxx> > > > > In order to support the dynamic dtbo device assignment to a running > > VM, the add/remove of the DT overlay and the attach/detach of the > > device from the DT overlay should happen separately. Therefore, > > repurpose the existing XEN_SYSCTL_dt_overlay to only add the DT > > overlay to Xen device tree, instead of assigning the device to the > > hardware domain at the same time. It is OK to change the sysctl behavior > > as this feature is experimental so changing sysctl behavior and breaking > > compatibility is OK. > > > > Add the XEN_DOMCTL_dt_overlay with operations > > XEN_DOMCTL_DT_OVERLAY_ATTACH to do the device assignment to the domain. > > > > The hypervisor firstly checks the DT overlay passed from the toolstack > > is valid. Then the device nodes are retrieved from the overlay tracker > > based on the DT overlay. The attach of the device is implemented by > > mapping the IRQ and IOMMU resources. All devices in the overlay are > > assigned to a single domain. > > > > Also take the opportunity to make one coding style fix in sysctl.h. > > > > xen,reg is to be used to handle non-1:1 mappings but it is currently > > unsupported. > > This means that we would still try to use 1:1 mappings for non-directmap > domain. Given that the overlay is a blob, I am a bit concerned that the user > may not notice any clash and it would be difficult to debug. > > Therefore, I would like xen,reg to be mandatory when using non directmapped > domain. For now, the best approach would be to prevent device assignment if > !is_domain_direct_mapped(). That's fine, I'll make the change > > +long dt_overlay_domctl(struct domain *d, struct xen_domctl_dt_overlay *op) > > +{ > > + long ret; > > + void *overlay_fdt; > > + > > + if ( op->overlay_op != XEN_DOMCTL_DT_OVERLAY_ATTACH ) > > + return -EOPNOTSUPP; > > + > > + if ( op->overlay_fdt_size == 0 || op->overlay_fdt_size > KB(500) ) > > Please add #define DT_OVERLAY_MAX_SIZE KB(500) and use it here and the other > place. OK
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |