Messages in this thread - First message in thread
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
- "Suthikulpanit, Suravee"
| | | Subject | Re: [PATCH v2 10/15] kvm: x86: hyperv: Use APICv deactivate request interface | From | Alexander Graf <> | Date | Mon, 19 Aug 2019 12:31:24 +0200 |
| |
On 15.08.19 18:25, Suthikulpanit, Suravee wrote: > Since disabling APICv has to be done for all vcpus on AMD-based system, > adopt the newly introduced kvm_make_apicv_deactivate_request() intereface.
typo
> > Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> > --- > arch/x86/kvm/hyperv.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index a39e38f..4f71a39 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -772,9 +772,17 @@ int kvm_hv_activate_synic(struct kvm_vcpu *vcpu, bool dont_zero_synic_pages) > > /* > * Hyper-V SynIC auto EOI SINT's are > - * not compatible with APICV, so deactivate APICV > + * not compatible with APICV, so request
double space
> + * to deactivate APICV permanently. > + * > + * Since this requires updating > + * APIC_ACCESS_PAGE_PRIVATE_MEMSLOT, > + * also take srcu lock. > */ > - kvm_vcpu_deactivate_apicv(vcpu); > + vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); > + kvm_make_apicv_deactivate_request(vcpu, true); > + srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx);
Overall, I'm not terribly happy with the srcu locks. Can't we handle the memslot changes outside of the lock region, inside the respective request handlers somehow?
Alex
> + > synic->active = true; > synic->dont_zero_synic_pages = dont_zero_synic_pages; > return 0; >
| |