From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit Date: Fri, 18 Dec 2015 17:01:59 +0100 Message-ID: <56742DF7.9000902@redhat.com> References: <1447158995-21919-1-git-send-email-asmetanin@virtuozzo.com> <1447158995-21919-6-git-send-email-asmetanin@virtuozzo.com> <01cc01d139a7$7baad550$73007ff0$@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Cc: "'Denis V. Lunev'" , "'Gleb Natapov'" , "'Roman Kagan'" , qemu-devel@nongnu.org, Peter Hornyack To: Pavel Fedin , "'Andrey Smetanin'" , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41455 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932098AbbLRQCE (ORCPT ); Fri, 18 Dec 2015 11:02:04 -0500 In-Reply-To: <01cc01d139a7$7baad550$73007ff0$@samsung.com> Sender: kvm-owner@vger.kernel.org List-ID: On 18/12/2015 16:19, Pavel Fedin wrote: > As far as i understand this code, KVM_EXIT_HYPERV is called when one > of three MSRs are accessed. But, shouldn't we have implemented > instead something more generic, like KVM_EXIT_REG_IO, which would > work similar to KVM_EXIT_PIO or KVM_EXIT_MMIO, but carry register > code and value? Yes, we considered that. There were actually patches for this as well. However, in this case the register is still emulated in the kernel, and userspace just gets informed of the new value. > This would allow us to solve the same task which we have done here, > but this solution would be reusable for other devices and other > archirectures. What if in future we have more system registers to > emulate in userspace? If we do get that, we will just rename KVM_EXIT_HYPERV to KVM_EXIT_MSR_ACCESS, and KVM_EXIT_HYPERV_SYNIC to KVM_EXIT_MSR_HYPERV_SYNIC, and struct kvm_hyperv_exit to kvm_msr_exit. Actually, we can do it now. What do you guys think? Peter? I might even be convinced to document the capability (in Documentation/ and uapi/) even if the upstream kernel doesn't provide it. We still have a lot of time until 4.5 is out, it can be done after the merge window even. Paolo > I write this because at one point i suggested similar thing for ARM64 > (but i never actually wrote it), to emulate physical CP15 timer. And > it would require exactly the same capability - process some trapped > system register accesses in userspace.