From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v1 4/5] kvm/x86: Hyper-V VMBus hypercall userspace exit Date: Wed, 20 Jan 2016 18:02:25 +0100 Message-ID: <569FBDA1.7010704@redhat.com> References: <1452595842-20880-1-git-send-email-asmetanin@virtuozzo.com> <1452595842-20880-5-git-send-email-asmetanin@virtuozzo.com> <009401d14ea5$dc8cf250$95a6d6f0$@samsung.com> <569F92AC.4030506@redhat.com> <20160120152034.GA3947@rkaganb.sw.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit To: "'Roman Kagan'" , Pavel Fedin , "'Andrey Smetanin'" , kvm@vger.kernel.org, "'Gleb Natapov'" , "'Joerg Roedel'" , "'K. Y. Srinivasan'" , "'Haiyang Zhang'" , "'Denis V. Lunev'" , qemu-devel@nongnu.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:42034 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934015AbcATRCb (ORCPT ); Wed, 20 Jan 2016 12:02:31 -0500 In-Reply-To: <20160120152034.GA3947@rkaganb.sw.ru> Sender: kvm-owner@vger.kernel.org List-ID: On 20/01/2016 16:20, 'Roman Kagan' wrote: >> > 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)? In this case we use hypercalls. :) However, we use a separate exit instead of putting everything under KVM_EXIT_HYPERCALL. This, as you mentioned, has the advantage that you can customize it according to the calling convention (which may help avoiding TOCTTOU issues, too). > 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. Indeed, but grouping makes things easier to understand. > 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. That's a good idea. However, I think I'm not going to accept the MSR exit feature, and then the current Hyper-V exit API makes some sense indeed (it's just 3 values, transferring them all at once is not expensive at all). Paolo