On Tue, Sep 28, 2021 at 09:31:34PM -0700, Andy Lutomirski wrote: > On Mon, Sep 13, 2021, at 1:01 PM, Sohil Mehta wrote: > > User Interrupts Introduction > > ============================ > > > > User Interrupts (Uintr) is a hardware technology that enables delivering > > interrupts directly to user space. > > > > Today, virtually all communication across privilege boundaries happens by going > > through the kernel. These include signals, pipes, remote procedure calls and > > hardware interrupt based notifications. User interrupts provide the foundation > > for more efficient (low latency and low CPU utilization) versions of these > > common operations by avoiding transitions through the kernel. > > > > ... > > I spent some time reviewing the docs (ISE) and contemplating how this all fits together, and I have a high level question: > > Can someone give an example of a realistic workload that would benefit from SENDUIPI and precisely how it would use SENDUIPI? Or an example of a realistic workload that would benefit from hypothetical device-initiated user interrupts and how it would use them? I'm having trouble imagining something that wouldn't work as well or better by simply polling, at least on DMA-coherent architectures like x86. I was wondering the same thing. One thing came to mind: An application that wants to be *interrupted* from what it's doing rather than waiting until the next polling point. For example, applications that are CPU-intensive and have green threads. I can't name a real application like this though :P. Stefan