|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Introduction of stable interface between Xenstore and hypervisor
On 13.09.21 09:39, Jan Beulich wrote: On 10.09.2021 15:46, Juergen Gross wrote:On 10.09.21 15:22, Jan Beulich wrote:On 09.09.2021 08:27, Juergen Gross wrote: For this kind of interface to work with multiple consumers the state information of each domain would need to be contained in this memory area, so this would probably require at least one byte for each domain. Each consumer would need to keep a shadow copy of the last read information in order to be able to detect any state modifications. But this data would again introduce today's problem: a fast shutdown of a domain and creation of another domain with the same domid could get lost. So the memory area would even need to include the unique domain identifier, increasing the size of the data per domain to at least 8 bytes. Further, while - like you - I'd prefer to avoid sharing the bitmap, the question remains whether such further interested parties are conceivable. A good question. Today's design doesn't support multiple interested parties at the hypervisor interface level. There can only be one consumer of VIRQ_DOM_EXC. I understand the caller would iterate over this hypercall. Is there concern about this iteration never finishing, if e.g. a guest gets rebooted quickly enough?No. As a reboot will always include Xenstore activity, there is no chance for that to happen.Is this really the case? I thought that was an implementation aspect of the tool stack(s). Take an XTF test: For it to be run (no drivers, no qemu) is it really necessary to fiddle with Xenstore? If from an abstract pov it isn't, then the hypervisor should not become dependent upon such. IMO, that is. In case you want to run without Xenstore then don't start it. In case Xenstore is running it will receive the VIRQ_DOM_EXC events and it will react accordingly. The unbounded loop can happen only if you are running Xenstore, but you are creating new guests by not using the normal Xen tools (those will interact with Xenstore for all guests, even those without any external references). And even in this case all you would get is quite a busy Xenstore. Apart from this - how would Xenstore activity prevent this loop from becoming unbounded? Is this because you expect other operations to be serialized with running this loop? If so, how do you prevent starvation from this loop taking long? Xenstore is single threaded and it is processing any external events from a main loop. So either it is in this hypercall loop, or it is reacting to requests, e.g. from the tools needed for domain creation. The activity in this loop isn't very time consuming (with the new interface it is even much less time consuming than today), so the starvation case would more look like a hickup. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |