or the maximum vCPU index in the vCPU set requires flushing
is less than 64).
Signed-off-by: Vitaly Kuznetsov
---
linux-headers/linux/kvm.h | 1 +
target/i386/cpu.c | 1 +
target/i386/cpu.h | 1 +
target/i386/hyperv-proto.h | 1 +
target/i386/kvm.c | 15
Vitaly Kuznetsov <vkuzn...@redhat.com> writes:
> Changes since v4:
> - Rebase on top of Roman's patches.
> - Drop PATCH2 as it is no longer needed (after adding explicit
> hv_frequencies).
>
> Previously, Ladi was working on enabling TSC page clocksource for nested
&g
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
---
target/i386/kvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 21e06deaf1..43c521f61a 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -646,7 +646,7 @@ stat
KVM recently gained support for Hyper-V Reenlightenment MSRs which are
required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
when INVTSC is not passed to it (and it is not passed by default in Qemu
as it effectively blocks migration).
Signed-off-by: Vitaly Kuznetsov <vk
MSRs and expose frequency MSRs even without
INVTSC to make things work.
[My first patches for Qemu, please be nice :-) ]
Vitaly Kuznetsov (2):
i386/kvm: add support for Hyper-V reenlightenment MSRs
i386/kvm: lower requirements for Hyper-V frequency MSRs exposure
target/i386/cpu.h
to migrate nested environments but rudimentary support
we have there is enough.
Enable Hyper-V reenlightenment MSRs to make things work.
Vitaly Kuznetsov (1):
i386/kvm: add support for Hyper-V reenlightenment MSRs
target/i386/cpu.c | 4 +++-
target/i386/cpu.h | 4
target
KVM recently gained support for Hyper-V Reenlightenment MSRs which are
required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
when INVTSC is not passed to it (and it is not passed by default in Qemu
as it effectively blocks migration).
Signed-off-by: Vitaly Kuznetsov <vk
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
---
target/i386/kvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index accf50eac3..a6d1210f46 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -650,7 +650,7 @@ stat
Paolo Bonzini <pbonz...@redhat.com> writes:
> On 16/03/2018 16:05, Vitaly Kuznetsov wrote:
>>>>
>>>> -if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) {
>>>> +if (has_msr_hv_frequencies &&a
environments but rudimentary support
we have there (kvm/queue only currently) is enough.
Enable Hyper-V reenlightenment MSRs and expose frequency MSRs even without
INVTSC to make things work.
Vitaly Kuznetsov (2):
i386/kvm: add support for Hyper-V reenlightenment MSRs
i386/kvm: lower requirements
KVM recently gained support for Hyper-V Reenlightenment MSRs which are
required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
when INVTSC is not passed to it (and it is not passed by default in Qemu
as it effectively blocks migration).
Signed-off-by: Vitaly Kuznetsov <vk
Paolo Bonzini <pbonz...@redhat.com> writes:
> On 12/03/2018 16:12, Vitaly Kuznetsov wrote:
>>
>> -if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) {
>> +if (has_msr_hv_frequencies && env->tsc_khz) {
>
> Should this
Paolo Bonzini <pbonz...@redhat.com> writes:
> On 12/03/2018 16:12, Vitaly Kuznetsov wrote:
[snip]
>> @@ -2294,6 +2318,15 @@ static int kvm_get_msrs(X86CPU *cpu)
>> env->msr_hv_stimer_count[(index - HV_X64_MSR_STIMER0_COUNT)/2] =
>>
We can also expose Hyper-V frequency MSRs when reenlightenment feature is
enabled and TSC frequency is known, Hyper-V on KVM will provide stable TSC
page clocksources to its guests.
Signed-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
---
- Expose frequency MSRs only when either
per-V reenlightenment MSRs and expose frequency MSRs even without
INVTSC to make things work.
Vitaly Kuznetsov (2):
i386/kvm: add support for Hyper-V reenlightenment MSRs
i386/kvm: expose Hyper-V frequency MSRs with reenlightenment
target/i386/cpu.c | 4 +++-
target/i386/cp
KVM recently gained support for Hyper-V Reenlightenment MSRs which are
required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
when INVTSC is not passed to it (and it is not passed by default in Qemu
as it effectively blocks migration).
Signed-off-by: Vitaly Kuznetsov <vk
Marcelo Tosatti <mtosa...@redhat.com> writes:
> On Tue, Mar 20, 2018 at 06:34:59PM +0100, Vitaly Kuznetsov wrote:
>> KVM recently gained support for Hyper-V Reenlightenment MSRs which are
>> required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
>>
Roman Kagan <rka...@virtuozzo.com> writes:
> On Fri, Mar 16, 2018 at 06:00:19PM +0100, Vitaly Kuznetsov wrote:
>> KVM recently gained support for Hyper-V Reenlightenment MSRs which are
>> required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
>>
Roman Kagan <rka...@virtuozzo.com> writes:
> On Tue, Mar 20, 2018 at 06:35:00PM +0100, Vitaly Kuznetsov wrote:
>> Requiring tsc_is_stable_and_known() is too restrictive: even without INVTCS
>> nested Hyper-V-on-KVM enables TSC pages for its guests e.g. when
>> Reenl
Eduardo Habkost <ehabk...@redhat.com> writes:
> On Thu, Mar 22, 2018 at 02:13:58PM +0100, Vitaly Kuznetsov wrote:
>> We can also expose Hyper-V frequency MSRs when reenlightenment feature is
>> enabled and TSC frequency is known, Hyper-V on KVM will provide stable TSC
>&g
Paolo Bonzini <pbonz...@redhat.com> writes:
> On 20/03/2018 18:35, Vitaly Kuznetsov wrote:
>> +if (has_msr_hv_frequencies && env->tsc_khz) {
>> env->features[FEAT_HYPERV_EAX] |= HV_ACCESS_FREQUENCY_MSRS;
>>
KVM recently gained support for Hyper-V Reenlightenment MSRs which are
required to make KVM-on-Hyper-V enable TSC page clocksource to its guests
when INVTSC is not passed to it (and it is not passed by default in Qemu
as it effectively blocks migration).
Signed-off-by: Vitaly Kuznetsov <vk
to migrate nested environments but rudimentary support
we have there (kvm/queue only currently) is enough.
Enable Hyper-V reenlightenment MSRs and expose frequency MSRs even without
INVTSC to make things work.
Vitaly Kuznetsov (2):
i386/kvm: add support for Hyper-V reenlightenment MSRs
i386/kvm
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
---
target/i386/kvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 7d9f9ca0b1..74fc3d3b2c 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
@@ -651,7 +651,7 @@ stat
Vitaly Kuznetsov writes:
> Add support for Hyper-V TLB flush which recently got added to KVM.
>
> Just like regular Hyper-V we announce HV_EX_PROCESSOR_MASKS_RECOMMENDED
> regardless of how many vCPUs we have. Windows is 'smart' and uses less
> expensive non-EX Hypercall whenever
Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When
enabled, this allows Windows guests to send IPIs to other vCPUs with a
single hypercall even when there are >64 vCPUs in the request.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 1 +
target/i
This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
Signed-off-by: Vitaly Kuznetsov
---
linux-headers/linux/kvm.h | 7 +--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/linux-headers/linux/kvm.h b/linux
Hyper-V PV IPI enlightenment was merged to KVM (kvm/queue currently).
Support the feature enablement in Qemu.
Vitaly Kuznetsov (2):
linux-headers: update to pre-4.20 (kvm/queue)
i386/kvm: add support for Hyper-V IPI send
linux-headers/linux/kvm.h | 7 +--
target/i386/cpu.c
Peng Hao writes:
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index 83ba4eb..b5d4289 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -420,13 +420,19 @@ struct kvm_run {
> struct kvm_coalesced_mmio_zone {
> __u64 addr;
> __u32
Roman Kagan writes:
> On Fri, Oct 19, 2018 at 01:14:32PM +0200, Vitaly Kuznetsov wrote:
>> --- a/target/i386/kvm.c
>> +++ b/target/i386/kvm.c
>> @@ -798,6 +798,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
>> uint32_t unused;
>> struct kvm_cpuid_entry2
Update to kvm/next commit 1e58e5e59148 ("KVM: VMX: enable nested
virtualization by default").
kvm_put_vcpu_events() needs to be fixed as 'pad' was renamed to
'pending' in 'struct kvm_vcpu_events'
Signed-off-by: Vitaly Kuznetsov
---
linux-headers/asm-powerpc/kvm.h | 1 +
linux-heade
of the series is posted for completeness only.
Vitaly Kuznetsov (2):
linux-headers: update
x86: hv_evmcs CPU flag support
linux-headers/asm-powerpc/kvm.h | 1 +
linux-headers/asm-x86/kvm.h | 8 ++--
linux-headers/linux/kvm.h | 16 ++--
target/i386/cpu.c
Adds a new CPU flag to enable the Enlightened VMCS KVM feature.
QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the
version to be advertised in lower 16 bits of CPUID.0x400A:EAX.
Suggested-by: Ladi Prosek
Signed-off-by: Vitaly Kuznetsov
---
Changes since v1:
- Throw away
Roman Kagan writes:
> On Mon, Oct 22, 2018 at 06:55:06PM +0200, Vitaly Kuznetsov wrote:
>> Adds a new CPU flag to enable the Enlightened VMCS KVM feature.
>> QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the
>> version to be advertised in lower 16 bits of
Hyper-V Enlightened VMCS feature was merged to KVM, enable it in Qemu.
The feature gives us a significant performance boost for Hyper-V on KVM
deployments.
The first patch of the series is posted for completeness only.
Vitaly Kuznetsov (2):
linux-headers: update
x86: hv_evmcs CPU flag
Update to kvm/next commit 1e58e5e59148 ("KVM: VMX: enable nested
virtualization by default").
kvm_put_vcpu_events() needs to be fixed as 'pad' was renamed to
'pending' in 'struct kvm_vcpu_events'
Signed-off-by: Vitaly Kuznetsov
---
linux-headers/asm-powerpc/kvm.h | 1 +
linux-heade
Adds a new CPU flag to enable the Enlightened VMCS KVM feature.
QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the
version to be advertised in lower 16 bits of CPUID.0x400A:EAX.
Suggested-by: Ladi Prosek
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 1
This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
Signed-off-by: Vitaly Kuznetsov
---
linux-headers/linux/kvm.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
Hyper-V PV IPI enlightenment was merged to KVM (kvm/queue currently).
Support the feature enablement in Qemu.
Changes since v1 [Roman Kagan]:
- Strip kvm.h with 'make headers_install' before putting to Qemu.
- Add Reviewed-by: to PATCH2
Vitaly Kuznetsov (2):
linux-headers: update to pre-4.20
Roman Kagan writes:
> On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
>> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR,
>> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI.
>>
>> Signed-off-by: Vitaly Kuznetsov
>> ---
Roman Kagan writes:
> On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote:
>> Roman Kagan writes:
>>
>> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote:
>> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_
Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When
enabled, this allows Windows guests to send IPIs to other vCPUs with a
single hypercall even when there are >64 vCPUs in the request.
Signed-off-by: Vitaly Kuznetsov
Reviewed-by: Roman Kagan
---
target/i386/cp
and EPYC/EPYC-IBPB cpu models.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 8
1 file changed, 8 insertions(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 677a3bd5fb..eb8f9079a6 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -2766,6 +2766,8 @@ static
and EPYC/EPYC-IBPB cpu models.
Signed-off-by: Vitaly Kuznetsov
---
Changes since v1:
- add npt=off,nrip-save=off to pc_compat_3_1 [Eduardo Habkost]
---
hw/i386/pc.c | 8
target/i386/cpu.c | 8
2 files changed, 16 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index
Epyc CPUs support NPT and NRIPSAVE features and KVM exposes these when
present. Add them to EPYC and EPYC-IBPB cpu models.
Signed-off-by: Vitaly Kuznetsov
---
- RFC part: I'm not sure when these features first appeared, we may want to
modify some Opteron_* models too.
---
target/i386/cpu.c
Eduardo Habkost writes:
> On Wed, Dec 19, 2018 at 06:25:06PM +0100, Vitaly Kuznetsov wrote:
>> Eduardo Habkost writes:
>>
>> > On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote:
>> >> Eduardo Habkost writes:
>> > [...]
>>
Hyper-V .feat_names are, unlike hardware features, commented out and it is
not obvious why we do that. Document the current status quo.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index
Vitaly Kuznetsov writes:
> Epyc CPUs support NPT and NRIPSAVE features and KVM exposes these when
> present. Add them to EPYC and EPYC-IBPB cpu models.
>
> Signed-off-by: Vitaly Kuznetsov
> ---
> - RFC part: I'm not sure when these features first appeared, we may want
Eduardo Habkost writes:
>>[...] Some time ago when merging direct mode stimers for KVM
>> Paolo suggested we stop adding capabilities to KVM for each individulat
>> feature and replace them with something like KVM_GET_SUPPORTED_HV_CPUID
>> ioctl returning all Hyper-V related feature
Eduardo Habkost writes:
> On Thu, Nov 29, 2018 at 12:51:55PM +0100, Vitaly Kuznetsov wrote:
>> Paolo Bonzini writes:
>>
>> > On 26/11/18 14:59, Vitaly Kuznetsov wrote:
>> >> It was found that QMP users of QEMU (e.g. libvirt) may need
-by: Vitaly Kuznetsov
Reviewed-by: Roman Kagan
---
Changes since v1:
- Add a comment explaining why .feat_names are currently
commented out for Hyper-V feature words. [Paolo Bonzini]
- Add Roman's R-b tag.
---
target/i386/cpu.c | 37 +
target/i386/cpu.h | 2 ++
target/i386
Paolo Bonzini writes:
> On 26/11/18 14:59, Vitaly Kuznetsov wrote:
>> It was found that QMP users of QEMU (e.g. libvirt) may need
>> HV_CPUID_ENLIGHTMENT_INFO.EAX/HV_CPUID_NESTED_FEATURES.EAX information. In
>> particular, 'hv_tlbflush' and 'hv_evmcs' enlightenm
: convenience
(we don't need to export it from hyperv_handle_properties() and as
future-proof for Enlightened MSR-Bitmap, PV EPT invalidation and
direct virtual flush features.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 30 +
target/i386/cpu.h | 2 ++
target/i386
Vitaly Kuznetsov writes:
> Eduardo Habkost writes:
>
>> On Wed, Dec 19, 2018 at 06:25:06PM +0100, Vitaly Kuznetsov wrote:
>>> Eduardo Habkost writes:
>>>
>>> > On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote:
>>> >&g
Eduardo Habkost writes:
> On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote:
>> Eduardo Habkost writes:
> [...]
>> > But note that we might still be able to move the existing
>> > "hyperv_*" features to feature_word_info[].feat_names. We j
Roman Kagan writes:
> On Fri, Jan 25, 2019 at 02:46:42PM +0100, Vitaly Kuznetsov wrote:
>> Roman Kagan writes:
>>
>> > On Fri, Jan 25, 2019 at 12:41:51PM +0100, Vitaly Kuznetsov wrote:
>> >> In many case we just want to give Windows guests all currently su
ngeoi broadcast") which describes a very similar issue.
Steal the idea from the above mentioned commit for IOAPIC implementation in
QEMU. SUCCESSIVE_IRQ_MAX_COUNT, delay and the comment are borrowed as well.
Signed-off-by: Vitaly Kuznetsov
---
Changes since v1:
- timer_mod() -> timer_m
Synthetic timers operate in hv-time time and Windows won't use these
without SynIC.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 9edf76e473..524ee28e9c 100644
--- a/target/i386/kvm.c
"Dr. David Alan Gilbert" writes:
> Yep, that's probably safest; although if you recorded the features used
> in the migration stream you could check for those on the destination and
> if they mismatch complain then.
>
There is no clear use-case for hv-all other than development at this
moment;
The corresponding hypercalls require using VP indexes.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 524ee28e9c..976c1d570f 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
ant to check them later (and we actually do for hv_runtime,
hv_synic,...).
'hv-all' is a development only feature, a migration blocker is added to
prevent issues while migrating between hosts with different feature sets.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt | 10
target/i386/cp
structure
defining Hyper-V features, get_supported_hv_cpuid()/
get_supported_hv_cpuid_legacy() returning the supported CPUID set and
a bit over-engineered hv_cpuid_check_and_set() which we will also be
used to set cpu->hyperv_* properties for 'hv-all' mode.
Signed-off-by: Vitaly Kuznetsov
---
tar
Currently, there is no doc describing hv-* CPU flags, people are
encouraged to get the information from Microsoft Hyper-V Top Level
Functional specification (TLFS). There is, however, a bit of QEMU
specifics.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt | 180
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for
an interrupt instead of VMBus message). This new capability is only
announced in KVM_GET_SUPPORTED_HV_CPUID.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt| 10 ++
target/i386/cpu.c | 1
enlightenment is only exposed through KVM_GET_SUPPORTED_HV_CPUID ioctl.
Take the opportunity and re-implement the way we handle Hyper-V
enlightenments in QEMU, add support for hv-stimer-direct and 'hv-all'
pass-through mode, add missing dependencies between enlightenments.
Vitaly Kuznetsov (8):
i386/kvm: add
Enlightened VMCS is enabled by writing to a field in VP assist page and
these require virtual APIC.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index af45241adb..9edf76e473
Let's consolidate Hyper-V features handling in hyperv_handle_properties().
The change is necessary to support pass-through 'hv-all' mode as we'll be
just copying CPUIDs from KVM instead of filling them in.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 163
Roman Kagan writes:
> On Fri, Mar 29, 2019 at 03:18:27PM +0100, Vitaly Kuznetsov wrote:
>> Currently, there is no doc describing hv-* CPU flags, people are
>> encouraged to get the information from Microsoft Hyper-V Top Level
>> Functional specification (TLFS). There is, h
Roman Kagan writes:
> On Fri, Mar 29, 2019 at 03:18:28PM +0100, Vitaly Kuznetsov wrote:
>> In many case we just want to give Windows guests all currently supported
>> Hyper-V enlightenments and that's where this new mode may come handy. We
>> pass thro
Liran Alon writes:
>> On 1 Apr 2019, at 16:36, Vitaly Kuznetsov wrote:
>>
>> It was found that Hyper-V 2016 on KVM in some configurations (q35 machine +
>> piix4-usb-uhci) hangs on boot. Trace analysis led us to the conclusion that
>> it is mishandling level-trig
Paolo Bonzini writes:
> On 01/04/19 15:36, Vitaly Kuznetsov wrote:
...
>> static void ioapic_set_irq(void *opaque, int vector, int level)
>> {
>> IOAPICCommonState *s = opaque;
>> @@ -227,7 +236,28 @@ void ioapic_eoi_broadcast(int vector)
>>
Liran Alon writes:
>> On 1 Apr 2019, at 18:58, Vitaly Kuznetsov wrote:
>>
>> Liran Alon writes:
>>
>>>> On 1 Apr 2019, at 16:36, Vitaly Kuznetsov wrote:
>>>>
>>>> It was found that Hyper-V 2016 on KVM in some configurations (q35
y
irq delivery duringeoi broadcast") which describes a very similar issue.
Steal the idea from the above mentioned commit for IOAPIC implementation in
QEMU. SUCCESSIVE_IRQ_MAX_COUNT, delay and the comment are borrowed as well.
Signed-off-by: Vitaly Kuznetsov
---
hw/intc/ioapic.c
Thank you David, I see the issue now.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1813165
Title:
KVM internal error. Suberror: 1 emulation failure
Status in QEMU:
New
Bug description:
Thomas, Albert, David,
I'm having hard times trying to reproduce the issue in my environment;
could you please provide your qemu command lines for both L0 and L1? It
would also be great if you could try to come up with some 'minimal'
configuration (my guess is that in L1 having just
I sent a patch which is supposed to fix the issue:
https://marc.info/?l=kvm=155085391830663=2
it would be great if someone could give it a spin!
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1813165
Ack, thanks for the bisect! It seems something was overlooked when we
did host/guest mmu split. I'll try to investigate.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1813165
Title:
KVM internal
Eduardo Habkost writes:
>
> If libvirt is involved, it's much simpler and safer to use
> something like , which generates a
> migration-safe CPU configuration based on the current host. Live
> migration support with "-cpu host" is only useful for experiments
> and carefully controlled
"Dr. David Alan Gilbert" writes:
> I'm not sure what the equivalent bear traps are in the Hyper-V world,
> but I'd be surprised if there weren't any; for example what happens
> when someone upgrades one of their hosts to some minor version that
> adds/removes a feature?
Here we're talking about
Let's consolidate Hyper-V features handling in hyperv_handle_properties().
The change is necessary to support pass-through 'hv-all' mode as we'll be
just copying CPUIDs from KVM instead of filling them in.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 163
ant to check them later (and we actually do for hv_runtime,
hv_synic,...).
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 1 +
target/i386/cpu.h | 1 +
target/i386/kvm.c | 133 --
3 files changed, 107 insertions(+), 28 deletions(-)
diff --
The corresponding hypercalls require using VP indexes.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 7461bf05dd..14d74ca9c7 100644
--- a/target/i386/kvm.c
+++ b/target/i386/kvm.c
Signed-off-by: Vitaly Kuznetsov
---
include/standard-headers/drm/drm_fourcc.h | 63 +
include/standard-headers/linux/ethtool.h | 19 +-
.../linux/input-event-codes.h | 19 +
include/standard-headers/linux/pci_regs.h |1 +
.../standard-headers/linux
structure
defining Hyper-V features, get_supported_hv_cpuid()/
get_supported_hv_cpuid_legacy() returning the supported CPUID set and
a bit over-engineered hv_cpuid_check_and_set() which we will also be
used to set cpu->hyperv_* properties for 'hv-all' mode.
Signed-off-by: Vitaly Kuznetsov
---
tar
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for
an interrupt instead of VMBus message). This new capability is only
announced in KVM_GET_SUPPORTED_HV_CPUID.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/cpu.c | 1 +
target/i386/cpu.h | 1 +
target
, vendor,...
but we take CPUIDs passed by KVM 'as-is'.
Vitaly Kuznetsov (8):
Update linux headers (5.0-rc2)
i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID
i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties()
i386/kvm: Implement 'hv-all' pass-through mode
i386/kvm: hv-evmcs
Synthetic timers operate in hv-time time and Windows won't use these
without SynIC.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 674c5dc185..7461bf05dd 100644
--- a/target/i386/kvm.c
Enlightened VMCS is enabled by writing to a field in VP assist page and
these require virtual APIC.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index b373b4ac06..674c5dc185
Roman Kagan writes:
> On Fri, Jan 25, 2019 at 12:41:51PM +0100, Vitaly Kuznetsov wrote:
>> In many case we just want to give Windows guests all currently supported
>> Hyper-V enlightenments and that's where this new mode may come handy. We
>> pass thro
no-re...@patchew.org writes:
> === OUTPUT BEGIN ===
> 1/8 Checking commit 345a0718e21e (Update linux headers (5.0-rc2))
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #1646:
> new file mode 100644
>
> ERROR: code indent should never use tabs
> #3980: FILE:
Synthetic timers operate in hv-time time and Windows won't use these
without SynIC.
Add .dependencies field to kvm_hyperv_properties[] and a generic mechanism
to check dependencies between features.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 23 +++
1 file
synthetic timers
enlightenment is only exposed through KVM_GET_SUPPORTED_HV_CPUID ioctl.
Take the opportunity and re-implement the way we handle Hyper-V
enlightenments in QEMU, add support for hv-stimer-direct and 'hv-all'
pass-through mode, add missing dependencies between enlightenments.
Vitaly
The corresponding hypercalls require using VP indexes.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index d8b83031a5..7fc97b749e 100644
--- a/target/i386/kvm.c
+++ b/target
Let's consolidate Hyper-V features handling in hyperv_handle_properties().
The change is necessary to support 'hv-passthrough' mode as we'll be just
copying CPUIDs from KVM instead of filling them in.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 163
structure
defining Hyper-V features, get_supported_hv_cpuid()/
get_supported_hv_cpuid_legacy() returning the supported CPUID set and
a bit over-engineered hv_cpuid_check_and_set() which we will also be
used to set cpu->hyperv_* properties for 'hv-all' mode.
Signed-off-by: Vitaly Kuznetsov
---
tar
Representing Hyper-V properties as bits will allow us to check features
and dependencies between them in a natural way.
Suggested-by: Roman Kagan
Signed-off-by: Vitaly Kuznetsov
---
hw/i386/pc.c | 3 +-
target/i386/cpu.c | 44 +++
target/i386/cpu.h | 37
ant to check them later (and we actually do for hv_runtime,
hv_synic,...).
'hv-passthrough' is a development only feature, a migration blocker is
added to prevent issues while migrating between hosts with different
feature sets.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt | 10 ++
tar
Enlightened VMCS is enabled by writing to a field in VP assist page and
these require virtual APIC.
Signed-off-by: Vitaly Kuznetsov
---
target/i386/kvm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index 7fc97b749e..7ae2f63f72
Currently, there is no doc describing hv-* CPU flags, people are
encouraged to get the information from Microsoft Hyper-V Top Level
Functional specification (TLFS). There is, however, a bit of QEMU
specifics.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt | 181
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for
an interrupt instead of VMBus message). This new capability is only
announced in KVM_GET_SUPPORTED_HV_CPUID.
Signed-off-by: Vitaly Kuznetsov
---
docs/hyperv.txt| 10 ++
target/i386/cpu.c | 2
1 - 100 of 523 matches
Mail list logo