[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 2/7] xen/events: don't allow binding a global virq from any domain
On 07.01.2025 17:07, Jürgen Groß wrote: > On 07.01.25 16:34, Jan Beulich wrote: >> On 07.01.2025 11:17, Juergen Gross wrote: >>> @@ -479,8 +486,13 @@ int evtchn_bind_virq(evtchn_bind_virq_t *bind, >>> evtchn_port_t port) >>> */ >>> virq = array_index_nospec(virq, ARRAY_SIZE(v->virq_to_evtchn)); >>> >>> - if ( virq_is_global(virq) && (vcpu != 0) ) >>> - return -EINVAL; >>> + if ( virq_is_global(virq) ) >>> + { >>> + if ( get_global_virq_handler(virq) != d ) >>> + return -EBUSY; >> >> Hmm. While this eliminates the problem for the common, race free case, >> the handler changing right after the check would still mean the bind >> would succeed. > > Are you fine with me adding a paragraph to the commit message saying > that a future patch will handle this case? > > This future patch is patch 4 of the series, which will need to be > modified to check the handling domain inside the event_lock. I think this would be okay, so long as patches 2...4 are then also all committed together. >> Plus this way you're breaking a case that afaict has been working so >> far: The bind happening before the setting of the handler. With a lot >> of unrelated if-s and when-s this could e.g. be of interest when >> considering a re-startable Xenstore domain. The one to take over could >> start first, obtain state from the original one while that's still >> active, and be nominated the handler of the global vIRQ only in the >> last moment. > > This is a racy situation, too. If the old domain receives the virq after > sending the state, this would need to be handled by transferring the virq > information to the new domain, which can result in a never ending story. > > This is the reason why the domain state bitmap is reset to contain all > existing domains to be flagged as "changed", as otherwise a change might > get lost. > > I'd rather be able to handle today's use cases in a sane way than to try > handling any weird future use cases which we don't know yet. > > I think today's behavior is more or less insane and the new behavior is > much easier to understand and more intuitive. Hmm, I'd like to leave this then for input by other maintainers. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |