Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5576745pxj; Wed, 23 Jun 2021 04:33:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlPFvmcM7LDEWYmKRP1VBxAWUXds5Tp2FpFInmO2CSRzJTp/RvjYPsJo672AnObZD1dPg5 X-Received: by 2002:a92:cd41:: with SMTP id v1mr1953350ilq.180.1624448008210; Wed, 23 Jun 2021 04:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624448008; cv=none; d=google.com; s=arc-20160816; b=ReAc4mgPQO9NpXWeDkpxOaT4O5Y0iSKcEALyfItCJttlo2udHwU/bzG1JdybYwmxeP mkOEg8ANooG72+pO/ts5+4JrQ+Lu2X8Iy6j9A2am5tT4mwcRRZYQSWrUTiiDY52RuGrY KQeb/gazcka2qEnBn3G9ock6XMeLfrxktl77W0SpXb2t5gWcE2+3gqGcbEG1yc3kYhIy 7JjBeqEguE18RIQkpZ5nXeZACoSDAtr6H1WRpFawcKoK6d9h0FLCV8ggAGbMCEj9odrA dBXiCiFrhNxBldglE0XubAznmXgb0q+1jCn0ZBF3ofCfG14U0OajiITzfJ8bksf77d5W qpyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=g2wFOyxPqoYZUXLCy4FsI2gd7mT6X/jVhqusv1aT0Sw=; b=YJoWrN4yop7XMp4fR7NsNlYCy0R/um7C0idhHhD3L3lqzNGSTjDRTwwTMUMWbBGkKI 7ismk2AvTO8cNnQvOlyinZqkn6+/WtjT4Qs3JiLKBqRJETvCvO9KVjxAhAeucpE/4YEi enR6RYw9DPuy5aaq5khjFwnddct5G/mF4zgDlWnEKx+SdAAgQ+TfUAPCmEAuhGf7qtIR DBLyT2aj8RnuYkxVdy8CXH3AI4q1xSRe7qoYUCS6iJWfa7+mN2BU+RxBHhkf52NhTuF8 wfl6X2XXwUwQFYFM51qfIyxONHhYxgK5uK5H/wxZFTd+4RCDTcfBBb1hKnqcn4ruLpI1 3OPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=QFoXpuVQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k14si3134583jav.115.2021.06.23.04.33.16; Wed, 23 Jun 2021 04:33:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=QFoXpuVQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231130AbhFWLdN (ORCPT + 99 others); Wed, 23 Jun 2021 07:33:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30162 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231129AbhFWLdF (ORCPT ); Wed, 23 Jun 2021 07:33:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624447847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g2wFOyxPqoYZUXLCy4FsI2gd7mT6X/jVhqusv1aT0Sw=; b=QFoXpuVQPTyZbIJdr2h3WuiFGdqdyZP9chHjhXR88UtY0RS04p3jED245myCxdUWr19kVQ 1mxG+Vtdyil0/rsv29nAuSqTY5c2+DEqaEYWoPwxPMZzP4Ok/OeFxR5+xd1q/DjHoikZFM xwTFs7ZGItq5w3qGsANs4INM6CxirXI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-188-AxUqDcDUPoSpFfjFxKYU1A-1; Wed, 23 Jun 2021 07:30:46 -0400 X-MC-Unique: AxUqDcDUPoSpFfjFxKYU1A-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DECC1801596; Wed, 23 Jun 2021 11:30:44 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 15B951ABE6; Wed, 23 Jun 2021 11:30:40 +0000 (UTC) From: Maxim Levitsky To: kvm@vger.kernel.org Cc: Thomas Gleixner , Sean Christopherson , Wanpeng Li , Vitaly Kuznetsov , Joerg Roedel , Borislav Petkov , "H. Peter Anvin" , Ingo Molnar , Paolo Bonzini , linux-kernel@vger.kernel.org (open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)), x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jim Mattson , Maxim Levitsky Subject: [PATCH 08/10] KVM: x86: APICv: drop immediate APICv disablement on current vCPU Date: Wed, 23 Jun 2021 14:30:00 +0300 Message-Id: <20210623113002.111448-9-mlevitsk@redhat.com> In-Reply-To: <20210623113002.111448-1-mlevitsk@redhat.com> References: <20210623113002.111448-1-mlevitsk@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Special case of disabling the APICv on the current vCPU right away in kvm_request_apicv_update doesn't bring much benefit vs raising KVM_REQ_APICV_UPDATE on it instead, since this request will be processed on the next entry to the guest. (the comment about having another #VMEXIT is wrong). It also hides various assumptions, that APICv enable state matches the APICv inhibit state, as this special case only makes those states match on the current vCPU. Previous patches fixed few such assumptions so now it should be safe to drop this special case. Signed-off-by: Maxim Levitsky --- arch/x86/kvm/x86.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 6f0d9c231249..dcf06acdbf52 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9209,7 +9209,6 @@ EXPORT_SYMBOL_GPL(kvm_vcpu_update_apicv); */ void kvm_request_apicv_update(struct kvm *kvm, bool activate, ulong bit) { - struct kvm_vcpu *except; unsigned long old, new, expected; if (!kvm_x86_ops.check_apicv_inhibit_reasons || @@ -9237,18 +9236,9 @@ void kvm_request_apicv_update(struct kvm *kvm, bool activate, ulong bit) if (kvm_x86_ops.pre_update_apicv_exec_ctrl) static_call(kvm_x86_pre_update_apicv_exec_ctrl)(kvm, activate); - /* - * Sending request to update APICV for all other vcpus, - * while update the calling vcpu immediately instead of - * waiting for another #VMEXIT to handle the request. - */ - except = kvm_get_running_vcpu(); - kvm_make_all_cpus_request_except(kvm, KVM_REQ_APICV_UPDATE, - except); + kvm_make_all_cpus_request(kvm, KVM_REQ_APICV_UPDATE); kvm_allow_guest_entries(kvm); - if (except) - kvm_vcpu_update_apicv(except); } EXPORT_SYMBOL_GPL(kvm_request_apicv_update); -- 2.26.3