On Thu, Jul 18, 2024, Ilias Stamatis wrote: > The current MMIO coalescing design has a few drawbacks which limit its > usefulness. Currently all coalesced MMIO zones use the same ring buffer. > That means that upon a userspace exit we have to handle potentially > unrelated MMIO writes synchronously. And a VM-wide lock needs to be > taken in the kernel when an MMIO exit occurs. > > Additionally, there is no direct way for userspace to be notified about > coalesced MMIO writes. If the next MMIO exit to userspace is when the > ring buffer has filled then a substantial (and unbounded) amount of time > may have passed since the first coalesced MMIO. > > This series adds new ioctls to KVM that allow for greater control by > making it possible to associate different MMIO zones with different ring > buffers. It also allows userspace to use poll() to check for coalesced > writes in order to avoid userspace exits in vCPU threads (see patch 3 > for why this can be useful). > > The idea of improving the API in this way originally came from Paul > Durrant (pdurrant@xxxxxxxxxxxx) but the implementation is mine. > > The first patch in the series is a bug in the existing code that I > discovered while writing a selftest and can be merged independently. Ya, I'll grab it, maybe for 6.11? Doesn't seem urgent though. Anyways, I gave this a *very* cursory review. I'd go ahead and send v3 though, you're going to need Paolo's eyeballs on this, and he's offline until September.