[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 09/34] hyperv: block SynIC use in QEMU in in
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH 09/34] hyperv: block SynIC use in QEMU in incompatible configurations |
Date: |
Wed, 7 Feb 2018 11:46:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 06/02/2018 21:30, Roman Kagan wrote:
> Certain configurations do not allow SynIC to be used in QEMU. In
> particular,
>
> - when hyperv_vpindex is off, SINT routes can't be used as they refer to
> the destination vCPU by vp_index
>
> - older KVM (which doesn't expose KVM_CAP_HYPERV_SYNIC2) zeroes out
> SynIC message and event pages on every msr load, breaking migration
>
> OTOH in-KVM users of SynIC -- SynIC timers -- do work in those
> configurations, and we shouldn't stop the guest from using them.
>
> To cover both scenarios, introduce a (user-invisible) SynIC property
> that disallows to use the SynIC within QEMU but not in KVM. The
> property is clear by default but is set via compat logic for older
> machine types.
>
> As a result, when hv_synic and a modern machine type are specified, QEMU
> will refuse to run unless vp_index is on and the kernel is recent
> enough. OTOH with older machine types QEMU will fine run against an
> older kernel and/or without vp_index enabled but will refuse the in-QEMU
> uses of SynIC (e.g. VMBus).
>
> Also a function is added that allows the devices to query the status of
> SynIC support across vCPUs.
>
> Signed-off-by: Roman Kagan <address@hidden>
FWIW I'm okay with just requiring a new-enough kernel when using SynIC.
It's always been experimental.
Paolo
- [Qemu-devel] [RFC PATCH 04/34] hyperv: synic: only setup ack notifier if there's a callback, (continued)
- [Qemu-devel] [RFC PATCH 04/34] hyperv: synic: only setup ack notifier if there's a callback, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 05/34] hyperv: allow passing arbitrary data to sint ack callback, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 06/34] hyperv: address HvSintRoute by X86CPU pointer, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 07/34] hyperv: make HvSintRoute reference-counted, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 08/34] hyperv: qom-ify SynIC, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 10/34] hyperv: make overlay pages for SynIC, Roman Kagan, 2018/02/06
- [Qemu-devel] [RFC PATCH 09/34] hyperv: block SynIC use in QEMU in incompatible configurations, Roman Kagan, 2018/02/06
- Re: [Qemu-devel] [RFC PATCH 09/34] hyperv: block SynIC use in QEMU in incompatible configurations,
Paolo Bonzini <=
- [Qemu-devel] [RFC PATCH 11/34] hyperv: add synic message delivery, Roman Kagan, 2018/02/06
[Qemu-devel] [RFC PATCH 12/34] hyperv: add synic event flag signaling, Roman Kagan, 2018/02/06
[Qemu-devel] [RFC PATCH 13/34] hyperv: process SIGNAL_EVENT hypercall, Roman Kagan, 2018/02/06