[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit
From: |
Peter Hornyack |
Subject: |
Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit |
Date: |
Fri, 18 Dec 2015 10:10:11 -0800 |
On Fri, Dec 18, 2015 at 8:01 AM, Paolo Bonzini <address@hidden> wrote:
>
>
> 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.
On brief inspection of Andrey's patch (I have not been following
closely) it looks like the kvm_hyperv_exit struct that's returned to
userspace contains more data (control, evt_page, and msg_page fields)
than simply the value of the MSR, so would the desired SynIC exit fit
into a general-purpose exit for MSR emulation?
>> 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.
I will update and re-send that patchset for discussion.
>
> 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.
Peter
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Pavel Fedin, 2015/12/18
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Denis V. Lunev, 2015/12/18
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Paolo Bonzini, 2015/12/18
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit,
Peter Hornyack <=
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Paolo Bonzini, 2015/12/18
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Roman Kagan, 2015/12/18
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Andrey Smetanin, 2015/12/21
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Pavel Fedin, 2015/12/21
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Andrey Smetanin, 2015/12/21
- Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Pavel Fedin, 2015/12/21
Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, 'Roman Kagan', 2015/12/18
Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, Pavel Fedin, 2015/12/21
Re: [Qemu-devel] [PATCH v4 5/5] kvm/x86: Hyper-V kvm exit, 'Roman Kagan', 2015/12/18