From: 'Roman Kagan' <rkagan@virtuozzo.com> To: Paolo Bonzini <pbonzini@redhat.com> Cc: Pavel Fedin <p.fedin@samsung.com>, 'Andrey Smetanin' <asmetanin@virtuozzo.com>, <kvm@vger.kernel.org>, 'Gleb Natapov' <gleb@kernel.org>, 'Joerg Roedel' <joro@8bytes.org>, "'K. Y. Srinivasan'" <kys@microsoft.com>, 'Haiyang Zhang' <haiyangz@microsoft.com>, "'Denis V. Lunev'" <den@openvz.org>, <qemu-devel@nongnu.org> Subject: Re: [PATCH v1 4/5] kvm/x86: Hyper-V VMBus hypercall userspace exit Date: Wed, 20 Jan 2016 18:20:35 +0300 [thread overview] Message-ID: <20160120152034.GA3947@rkaganb.sw.ru> (raw) In-Reply-To: <569F92AC.4030506@redhat.com> On Wed, Jan 20, 2016 at 02:59:08PM +0100, Paolo Bonzini wrote: > >> --- a/Documentation/virtual/kvm/api.txt > >> +++ b/Documentation/virtual/kvm/api.txt > >> @@ -3359,6 +3359,14 @@ Hyper-V SynIC state change. Notification is used to remap SynIC > >> event/message pages and to enable/disable SynIC messages/events processing > >> in userspace. > >> > >> + /* KVM_EXIT_HYPERV_HCALL */ > >> + struct { > >> + __u64 input; > >> + __u64 params[2]; > >> + __u64 result; > >> + } hv_hcall; > >> +Indicates that the VCPU exits into userspace to process some guest > >> +Hyper-V hypercalls. > > > > Why introducing this? We already have KVM_EXIT_HYPERCALL, which is > > exactly the same. AFAIK it's not used at the moment. > > Additionally, in theory we could have hypercalls handled in > > userspace for something else except HyperV. And not only for x86. > > Because, as the docs say, we don't want to do that. We want to use > KVM_EXIT_IO or KVM_EXIT_MMIO, with two exceptions: s390 and wherever we > can't do that for compatibility purposes. I must admit I saw this part in the docs but failed to understand it. Is it supposed to mean that we want to avoid using hypercalls as a means of guest communications with the host userspace in general, and use PIO or MMIO instead, unless hypercalls are mandated by a guest implemenation we can't affect (as is the case for Hyper-V)? Because *implementing* Hyper-V hypercalls in terms of KVM_EXIT_IO or KVM_EXIT_MMIO looked hard at best. > So we should not add a new exit Why? VCPU exit codes are not a scarse resource. > (I suggested elsewhere the existing hyper-v exit) So far we've envisaged two reasons for VCPU exit related to hyper-v: one for hyper-v MSRs and the other for hypercalls. Since there was a discussion on implementing generic MSR access by Peter we thought it wiser to introduce a new VCPU exit for hyper-v hypercalls to avoid interfering with the MSR implementation. Thanks, Roman.
WARNING: multiple messages have this Message-ID (diff)
From: 'Roman Kagan' <rkagan@virtuozzo.com> To: Paolo Bonzini <pbonzini@redhat.com> Cc: kvm@vger.kernel.org, 'Gleb Natapov' <gleb@kernel.org>, 'Joerg Roedel' <joro@8bytes.org>, Pavel Fedin <p.fedin@samsung.com>, qemu-devel@nongnu.org, 'Andrey Smetanin' <asmetanin@virtuozzo.com>, "'Denis V. Lunev'" <den@openvz.org>, "'K. Y. Srinivasan'" <kys@microsoft.com>, 'Haiyang Zhang' <haiyangz@microsoft.com> Subject: Re: [Qemu-devel] [PATCH v1 4/5] kvm/x86: Hyper-V VMBus hypercall userspace exit Date: Wed, 20 Jan 2016 18:20:35 +0300 [thread overview] Message-ID: <20160120152034.GA3947@rkaganb.sw.ru> (raw) In-Reply-To: <569F92AC.4030506@redhat.com> On Wed, Jan 20, 2016 at 02:59:08PM +0100, Paolo Bonzini wrote: > >> --- a/Documentation/virtual/kvm/api.txt > >> +++ b/Documentation/virtual/kvm/api.txt > >> @@ -3359,6 +3359,14 @@ Hyper-V SynIC state change. Notification is used to remap SynIC > >> event/message pages and to enable/disable SynIC messages/events processing > >> in userspace. > >> > >> + /* KVM_EXIT_HYPERV_HCALL */ > >> + struct { > >> + __u64 input; > >> + __u64 params[2]; > >> + __u64 result; > >> + } hv_hcall; > >> +Indicates that the VCPU exits into userspace to process some guest > >> +Hyper-V hypercalls. > > > > Why introducing this? We already have KVM_EXIT_HYPERCALL, which is > > exactly the same. AFAIK it's not used at the moment. > > Additionally, in theory we could have hypercalls handled in > > userspace for something else except HyperV. And not only for x86. > > Because, as the docs say, we don't want to do that. We want to use > KVM_EXIT_IO or KVM_EXIT_MMIO, with two exceptions: s390 and wherever we > can't do that for compatibility purposes. I must admit I saw this part in the docs but failed to understand it. Is it supposed to mean that we want to avoid using hypercalls as a means of guest communications with the host userspace in general, and use PIO or MMIO instead, unless hypercalls are mandated by a guest implemenation we can't affect (as is the case for Hyper-V)? Because *implementing* Hyper-V hypercalls in terms of KVM_EXIT_IO or KVM_EXIT_MMIO looked hard at best. > So we should not add a new exit Why? VCPU exit codes are not a scarse resource. > (I suggested elsewhere the existing hyper-v exit) So far we've envisaged two reasons for VCPU exit related to hyper-v: one for hyper-v MSRs and the other for hypercalls. Since there was a discussion on implementing generic MSR access by Peter we thought it wiser to introduce a new VCPU exit for hyper-v hypercalls to avoid interfering with the MSR implementation. Thanks, Roman.
next prev parent reply other threads:[~2016-01-20 15:20 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-12 10:50 [PATCH v1 0/5] KVM: Hyper-V VMBus hypercalls Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-12 10:50 ` [PATCH v1 1/5] kvm/x86: Rename Hyper-V long spin wait hypercall Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-12 10:50 ` [PATCH v1 2/5] drivers/hv: Move VMBus hypercall codes into Hyper-V UAPI header Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-20 15:04 ` KY Srinivasan 2016-01-20 15:04 ` [Qemu-devel] " KY Srinivasan 2016-01-12 10:50 ` [PATCH v1 3/5] kvm/x86: Pass return code of kvm_emulate_hypercall Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-12 10:50 ` [PATCH v1 4/5] kvm/x86: Hyper-V VMBus hypercall userspace exit Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-14 8:30 ` Pavel Fedin 2016-01-14 8:30 ` [Qemu-devel] " Pavel Fedin 2016-01-14 10:20 ` 'Roman Kagan' 2016-01-14 10:20 ` [Qemu-devel] " 'Roman Kagan' 2016-01-14 10:50 ` Pavel Fedin 2016-01-14 10:50 ` [Qemu-devel] " Pavel Fedin 2016-01-14 11:52 ` 'Roman Kagan' 2016-01-14 11:52 ` [Qemu-devel] " 'Roman Kagan' 2016-01-20 13:59 ` Paolo Bonzini 2016-01-20 13:59 ` [Qemu-devel] " Paolo Bonzini 2016-01-20 14:41 ` Pavel Fedin 2016-01-20 14:41 ` [Qemu-devel] " Pavel Fedin 2016-01-20 15:20 ` 'Roman Kagan' [this message] 2016-01-20 15:20 ` 'Roman Kagan' 2016-01-20 17:02 ` Paolo Bonzini 2016-01-20 17:02 ` [Qemu-devel] " Paolo Bonzini 2016-01-20 17:31 ` 'Roman Kagan' 2016-01-20 17:31 ` [Qemu-devel] " 'Roman Kagan' 2016-01-20 21:05 ` Paolo Bonzini 2016-01-20 21:05 ` [Qemu-devel] " Paolo Bonzini 2016-01-20 13:43 ` Paolo Bonzini 2016-01-20 13:43 ` [Qemu-devel] " Paolo Bonzini 2016-01-20 16:51 ` Roman Kagan 2016-01-20 16:51 ` [Qemu-devel] " Roman Kagan 2016-01-12 10:50 ` [PATCH v1 5/5] kvm/x86: Reject Hyper-V hypercall continuation Andrey Smetanin 2016-01-12 10:50 ` [Qemu-devel] " Andrey Smetanin 2016-01-12 11:19 ` [PATCH v1 0/5] KVM: Hyper-V VMBus hypercalls Andrey Smetanin 2016-01-12 11:19 ` [Qemu-devel] " Andrey Smetanin 2016-01-19 7:49 ` Denis V. Lunev 2016-01-19 7:49 ` [Qemu-devel] " Denis V. Lunev 2016-01-19 16:47 ` Paolo Bonzini 2016-01-19 16:47 ` [Qemu-devel] " Paolo Bonzini 2016-01-20 14:08 ` Paolo Bonzini 2016-01-20 14:08 ` [Qemu-devel] " Paolo Bonzini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160120152034.GA3947@rkaganb.sw.ru \ --to=rkagan@virtuozzo.com \ --cc=asmetanin@virtuozzo.com \ --cc=den@openvz.org \ --cc=gleb@kernel.org \ --cc=haiyangz@microsoft.com \ --cc=joro@8bytes.org \ --cc=kvm@vger.kernel.org \ --cc=kys@microsoft.com \ --cc=p.fedin@samsung.com \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.