On Fri, Aug 02, 2024, David Woodhouse wrote: > On Fri, 2024-08-02 at 07:55 -0700, Sean Christopherson wrote: > > On Fri, Aug 02, 2024, David Woodhouse wrote: > > > On Thu, 2024-08-01 at 20:54 +0200, Thomas Gleixner wrote: > > > > On Thu, Aug 01 2024 at 16:14, Michael Kelley wrote: > > > > > I don't have a convenient way to test my sequence on KVM. > > > > > > > > But still fails in KVM > > > > > > By KVM you mean the in-kernel one that we want to kill because everyone > > > should be using userspace IRQ chips these days? > > > > What exactly do you want to kill? In-kernel local APIC obviously needs to stay > > for APICv/AVIC. > > The legacy PIT, PIC and I/O APIC. > > > And IMO, encouraging userspace I/O APIC emulation is a net negative for KVM and > > the community as a whole, as the number of VMMs in use these days results in a > > decent amount of duplicated work in userspace VMMs, especially when accounting > > for hardware and software quirks. > > I don't particularly care, but I thought the general trend was towards > split irqchip mode, with the local APIC in-kernel but i8259 PIC and I/O > APIC (and the i8254 PIT, which was the topic of this discussion) being > done in userspace. Yeah, that's where most everyone is headed, if not already there. Letting the I/O APIC live in userspace is probably the right direction long term, I just don't love that every VMM seems to have it's own slightly different version. But I think the answer to that is to build a library for (legacy?) device emulation so that VMMs can link to an implementation instead of copy+pasting from somwhere else and inevitably ending up with code that's frozen in time.