[PATCH v2 08/12] sched/wait: Drop WQ_FLAG_EXCLUSIVE from add_wait_queue_priority()

Michael Kelley mhklinux at outlook.com
Wed May 21 07:44:04 PDT 2025


From: Peter Zijlstra <peterz at infradead.org> Sent: Wednesday, May 21, 2025 4:43 AM
> 
> On Tue, May 20, 2025 at 03:20:00PM -0700, Sean Christopherson wrote:
> > On Tue, May 20, 2025, Peter Zijlstra wrote:
> > > On Mon, May 19, 2025 at 11:55:10AM -0700, Sean Christopherson wrote:
> > > > Drop the setting of WQ_FLAG_EXCLUSIVE from add_wait_queue_priority() to
> > > > differentiate it from add_wait_queue_priority_exclusive().  The one and
> > > > only user add_wait_queue_priority(), Xen privcmd's irqfd_wakeup(),
> > > > unconditionally returns '0', i.e. doesn't actually operate in exclusive
> > > > mode.
> > >
> > > I find:
> > >
> > > drivers/hv/mshv_eventfd.c:      add_wait_queue_priority(wqh, &irqfd->irqfd_wait);
> > > drivers/xen/privcmd.c:  add_wait_queue_priority(wqh, &kirqfd->wait);
> > >
> > > I mean, it might still be true and all, but hyperv seems to also use
> > > this now.
> >
> > Oh FFS, another "heavily inspired by KVM".  I should have bribed someone to take
> > this series when I had the chance.  *sigh*
> >
> > Unfortunately, the Hyper-V code does actually operate in exclusive mode.  Unless
> > you have a better idea, I'll tweak the series to:
> >
> >   1. Drop WQ_FLAG_EXCLUSIVE from add_wait_queue_priority() and have the callers
> >      explicitly set the flag,
> >   2. Add a patch to drop WQ_FLAG_EXCLUSIVE from Xen privcmd entirely.
> >   3. Introduce add_wait_queue_priority_exclusive() and switch KVM to use it.
> >
> > That has an added bonus of introducing the Xen change in a dedicated patch, i.e.
> > is probably a sequence anyways.
> >
> > Alternatively, I could rewrite the Hyper-V code a la the KVM changes, but I'm not
> > feeling very charitable at the moment (the complete lack of documentation for
> > their ioctl doesn't help).
> 
> Works for me. Michael is typically very responsive wrt hyperv (but you
> probably know this).

I can't be much help on this issue. This Hyper-V code is for Linux running in
the root partition (i.e., "dom0") and I don't have a setup where I can run and
test that configuration.

Adding Nuno Das Neves from Microsoft for his thoughts.

Michael



More information about the linux-arm-kernel mailing list