RE: [PATCH v9 2/2] kvm: x86: hyperv: guest->host event signaling via eventfd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----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.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux