> -----Original Message----- > From: Radim Krčmář [mailto:rkrcmar@xxxxxxxxxx] > Sent: Thursday, February 1, 2018 6:57 AM > To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang > <haiyangz@xxxxxxxxxxxxx>; Stephen Hemminger > <sthemmin@xxxxxxxxxxxxx>; Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Ingo > Molnar <mingo@xxxxxxxxxx>; H. Peter Anvin <hpa@xxxxxxxxx> > Cc: Roman Kagan <rkagan@xxxxxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; Paolo > Bonzini <pbonzini@xxxxxxxxxx>; Denis V. Lunev <den@xxxxxxxxxx>; > Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>; Vitaly Kuznetsov > <vkuznets@xxxxxxxxxx>; David Hildenbrand <david@xxxxxxxxxx> > Subject: Re: [PATCH v9 2/2] kvm: x86: hyperv: guest->host event signaling via > eventfd > > 2018-02-01 16:48+0300, Roman Kagan: > > In Hyper-V, the fast guest->host notification mechanism is the > > SIGNAL_EVENT hypercall, with a single parameter of the connection ID to > > signal. > > > > Currently this hypercall incurs a user exit and requires the userspace > > to decode the parameters and trigger the notification of the potentially > > different I/O context. > > > > To avoid the costly user exit, process this hypercall and signal the > > corresponding eventfd in KVM, similar to ioeventfd. The association > > between the connection id and the eventfd is established via the newly > > introduced KVM_HYPERV_EVENTFD ioctl, and maintained in an > > (srcu-protected) IDR. > > > > Signed-off-by: Roman Kagan <rkagan@xxxxxxxxxxxxx> > > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> > > --- > > Documentation/virtual/kvm/api.txt | 31 +++++++++++ > > arch/x86/include/asm/kvm_host.h | 2 + > > arch/x86/include/uapi/asm/hyperv.h | 2 + > > arch/x86/kvm/hyperv.h | 1 + > > include/uapi/linux/kvm.h | 13 +++++ > > arch/x86/kvm/hyperv.c | 103 > ++++++++++++++++++++++++++++++++++++- > > arch/x86/kvm/x86.c | 10 ++++ > > 7 files changed, 161 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/include/uapi/asm/hyperv.h > b/arch/x86/include/uapi/asm/hyperv.h > > index 1a5bfead93b4..f9ed479d479c 100644 > > --- a/arch/x86/include/uapi/asm/hyperv.h > > +++ b/arch/x86/include/uapi/asm/hyperv.h > > @@ -276,7 +276,9 @@ enum HV_GENERIC_SET_FORMAT { > > #define HV_STATUS_INVALID_HYPERCALL_CODE 2 > > #define HV_STATUS_INVALID_HYPERCALL_INPUT 3 > > #define HV_STATUS_INVALID_ALIGNMENT 4 > > +#define HV_STATUS_INVALID_PARAMETER 5 > > #define HV_STATUS_INSUFFICIENT_MEMORY 11 > > +#define HV_STATUS_INVALID_PORT_ID 17 > > #define HV_STATUS_INVALID_CONNECTION_ID 18 > > #define HV_STATUS_INSUFFICIENT_BUFFERS 19 > > > > x86/hyperv maintainers, > > are you ok with this hunk going through the kvm tree? That should be fine. K. Y > > Thanks.