On 11/11/2023 10:55 am, David Woodhouse wrote: > On Fri, 2023-11-10 at 20:42 +0000, Volodymyr Babchuk wrote: >> From: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> >> >> The PV backend running in other than Dom0 domain (non toolstack domain) >> is not allowed to write frontend nodes. The more, the backend does not >> need to do that at all, this is purely toolstack/xl devd business. >> >> I do not know for what reason the backend does that here, this is not really >> needed, probably it is just a leftover and all xen_device_frontend_printf() >> instances should go away completely. > No, this is what allows qemu to create PV devices, as opposed to just > handle the ones which are created for it by the toolstack. > > Perhaps we should only create the frontend nodes (and likewise, only > destroy those and the backend nodes on destruction) in the case where > the device was instantiated directly by the QEMU command line, and > refrain from doing so for the devices which were created by the > toolstack and merely 'discovered' by xen_block_device_create()? > > (Note that we need to look at net and console devices too, now they've > finally been converted to the 'new' XenBus framework in QEMU 8.2.) > >
Furthermore, the control domain doesn't always have the domid of 0. If qemu wants/needs to make changes like this, the control domain has to arrange for qemu's domain to have appropriate permissions on the nodes. ~Andrew