On Sun, 2023-05-14 at 00:23 -0700, Kuppuswamy Sathyanarayanan wrote: > Host-guest event notification via configured interrupt vector is useful > in cases where a guest makes an asynchronous request and needs a > callback from the host to indicate the completion or to let the host > notify the guest about events like device removal. One usage example is, > callback requirement of GetQuote asynchronous hypercall. > > In TDX guest, SetupEventNotifyInterrupt hypercall can be used by the > guest to specify which interrupt vector to use as an event-notify > vector from the VMM. Details about the SetupEventNotifyInterrupt > hypercall can be found in TDX Guest-Host Communication Interface > (GHCI) Specification, section "VP.VMCALL<SetupEventNotifyInterrupt>". > > As per design, VMM will post the event completion IRQ using the same > CPU on which SetupEventNotifyInterrupt hypercall request is received. > So allocate an IRQ vector from "x86_vector_domain", and set the CPU > affinity of the IRQ vector to the CPU on which > SetupEventNotifyInterrupt hypercall is made. > > Add tdx_register_event_irq_cb()/tdx_unregister_event_irq_cb() > interfaces to allow drivers to register/unregister event notification > handlers. > > Reviewed-by: Tony Luck <tony.luck@xxxxxxxxx> > Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx> > Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Reviewed-by: Erdem Aktas <erdemaktas@xxxxxxxxxx> > Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > Acked-by: Wander Lairson Costa <wander@xxxxxxxxxx> > Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > Acked-by: Kai Huang <kai.huang@xxxxxxxxx>