[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ce6c3f43-07a4-be37-9d72-5a664d2fb09e@amd.com>
Date: Wed, 6 May 2020 07:42:35 +0700
From: Suravee Suthikulpanit <suravee.suthikulpanit@....com>
To: Paolo Bonzini <pbonzini@...hat.com>,
Maxim Levitsky <mlevitsk@...hat.com>, kvm@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Subject: Re: AVIC related warning in enable_irq_window
On 5/5/20 7:12 PM, Paolo Bonzini wrote:
> On 05/05/20 09:55, Suravee Suthikulpanit wrote:
>> On the other hand, would be it useful to implement
>> kvm_make_all_cpus_request_but_self(),
>> which sends request to all other vcpus excluding itself?
>
> Yes, that's also a possibility. It's not too much extra complication if
> we add a new argument to kvm_make_vcpus_request_mask, like this:
>
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 74bdb7bf3295..8f9dadb1ef42 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -258,7 +258,7 @@ static inline bool kvm_kick_many_cpus(const struct cpumask *cpus, bool wait)
> return true;
> }
>
> -bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req,
> +bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req, struct kvm_vcpu *except,
> unsigned long *vcpu_bitmap, cpumask_var_t tmp)
> {
> int i, cpu, me;
> @@ -270,6 +270,8 @@ bool kvm_make_vcpus_request_mask(struct kvm *kvm, unsigned int req,
> kvm_for_each_vcpu(i, vcpu, kvm) {
> if (vcpu_bitmap && !test_bit(i, vcpu_bitmap))
> continue;
> + if (vcpu == except)
> + continue;
>
> kvm_make_request(req, vcpu);
> cpu = vcpu->cpu;
>
>
> Paolo
>
Sounds good. I'll take care of this today.
Suravee
Powered by blists - more mailing lists