[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Optimized clocksource with AMD AVIC enabled for Windows guest
From: |
Kechen Lu |
Subject: |
RE: Optimized clocksource with AMD AVIC enabled for Windows guest |
Date: |
Fri, 5 Feb 2021 05:38:33 +0000 |
Cool! Thanks for correction, yeah, APICV_INHIBIT_REASON_HYPERV setting is
per-VM while synic is per-vCPU. Since the machine with AVIC is not in my hands
today, I will test it hopefully by end of this week:)
BR,
Kechen
>-----Original Message-----
>From: Vitaly Kuznetsov <vkuznets@redhat.com>
>Sent: Thursday, February 4, 2021 7:19 AM
>To: Paolo Bonzini <pbonzini@redhat.com>; Kechen Lu <kechenl@nvidia.com>
>Cc: suravee.suthikulpanit@amd.com; Somdutta Roy <somduttar@nvidia.com>;
>kvm@vger.kernel.org; qemu-discuss@nongnu.org
>Subject: Re: Optimized clocksource with AMD AVIC enabled for Windows guest
>
>External email: Use caution opening links or attachments
>
>
>Vitaly Kuznetsov <vkuznets@redhat.com> writes:
>
>> +
>> + auto_eoi_new = bitmap_weight(synic->auto_eoi_bitmap, 256);
>> +
>> + /* Hyper-V SynIC auto EOI SINT's are not compatible with APICV */
>> + if (!auto_eoi_old && auto_eoi_new) {
>> + if (atomic_inc_return(&hv->synic_auto_eoi_used) == 1)
>> + kvm_request_apicv_update(vcpu->kvm, false,
>> + APICV_INHIBIT_REASON_HYPERV);
>> + } else if (!auto_eoi_old && auto_eoi_new) {
>
>Sigh, this 'else' should be
>
>} else if (!auto_eoi_new && auto_eoi_old) {
>
>...
>
>> + if (atomic_dec_return(&hv->synic_auto_eoi_used) == 0)
>> + kvm_request_apicv_update(vcpu->kvm, true,
>> + APICV_INHIBIT_REASON_HYPERV);
>> + }
>> }
>>
>> static int synic_set_sint(struct kvm_vcpu_hv_synic *synic, int sint,
>> @@ -903,12 +923,6 @@ int kvm_hv_activate_synic(struct kvm_vcpu *vcpu,
>> bool dont_zero_synic_pages) {
>> struct kvm_vcpu_hv_synic *synic = vcpu_to_synic(vcpu);
>>
>> - /*
>> - * Hyper-V SynIC auto EOI SINT's are
>> - * not compatible with APICV, so request
>> - * to deactivate APICV permanently.
>> - */
>> - kvm_request_apicv_update(vcpu->kvm, false,
>APICV_INHIBIT_REASON_HYPERV);
>> synic->active = true;
>> synic->dont_zero_synic_pages = dont_zero_synic_pages;
>> synic->control = HV_SYNIC_CONTROL_ENABLE;
>
>--
>Vitaly
- Optimized clocksource with AMD AVIC enabled for Windows guest, Kechen Lu, 2021/02/03
- Optimized clocksource with AMD AVIC enabled for Windows guest, Kechen Lu, 2021/02/03
- Re: Optimized clocksource with AMD AVIC enabled for Windows guest, Paolo Bonzini, 2021/02/03
- Re: Optimized clocksource with AMD AVIC enabled for Windows guest, Vitaly Kuznetsov, 2021/02/03
- RE: Optimized clocksource with AMD AVIC enabled for Windows guest, Kechen Lu, 2021/02/03
- RE: Optimized clocksource with AMD AVIC enabled for Windows guest, Vitaly Kuznetsov, 2021/02/04
- Re: Optimized clocksource with AMD AVIC enabled for Windows guest, Paolo Bonzini, 2021/02/04
- Re: Optimized clocksource with AMD AVIC enabled for Windows guest, Vitaly Kuznetsov, 2021/02/04
- Re: Optimized clocksource with AMD AVIC enabled for Windows guest, Vitaly Kuznetsov, 2021/02/04
- RE: Optimized clocksource with AMD AVIC enabled for Windows guest,
Kechen Lu <=
- RE: Optimized clocksource with AMD AVIC enabled for Windows guest, Kechen Lu, 2021/02/17
- RE: Optimized clocksource with AMD AVIC enabled for Windows guest, Vitaly Kuznetsov, 2021/02/25