Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp43602pxf; Tue, 30 Mar 2021 18:43:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztXHcZ+UV+C3XfuhY8ubBBABxm+n0yHigN0plUlrrIkvUzfAIKX6syyuPjJm6r2gBi15RJ X-Received: by 2002:a17:906:ef2:: with SMTP id x18mr996888eji.323.1617154987896; Tue, 30 Mar 2021 18:43:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617154987; cv=none; d=google.com; s=arc-20160816; b=MVhMYxV50+PpQH7T0ihhUBu0TMD33HsXT7YBQ00Ee6z4ter22JoiCrxGMY+Fwdx/bM 9vk3FnTg3PKSFcHUl8QDkbPXiRzMWgPZmfX3qFd2Pj1F08VtFZ2ytIuG3MwQISpc/WK2 7ZFoRTga7uRfa6ZIpV+glv33vR4phV20kYHG+tahxp+2SaIfEpFSxt1OoDGXcq53NE+Z s+29+96GVEVaZg7IdRgokJ+xQfZLrQtMeALh1HSqZDR3zc94mlVpOKOu+kG6UVc+2PLZ ZUMJt7Dqv57K9uJhqrdf51GFBlbkbbs86j/tbPSyE4IwvlJ0cDfHr9zfyqt97QsNHl7V N2Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=FwTk7Uw5F75P1AWalfGsAJn2SsFNx4MbYfUVHPETdms=; b=r9lkahkR8CymfcfAWpnYjYY//0aFCqCfezAtFHZB9NHPJaGYrlVM03+OxQSuFoiqo6 KNueKjr+y207D1BVabG9yxisDefGR9gkAOzRJbnevwu9/XTLhcq5Dy3MgbIOxPcG4j48 zVt06b6RE4zgkaWlmnRJnH+qIQodalM0rucb0jzo7+wOSV/TEO5n+V0fJ1HV1trBOLFy +S/c3h0LvB8/HoGeF6GRX8ox3Ij0pG+79rHGC7DnIqlJlP7+dlR+yEWHlTLcci+l3IpT HRydbXF55cYsGCds9xnDz+v0nufV47v50AW7JmbQMqP4YKK9uW6ZroQVho8O1+UjOOoW MLUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bDZwxEbD; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r18si584279eds.390.2021.03.30.18.42.45; Tue, 30 Mar 2021 18:43:07 -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=@gmail.com header.s=20161025 header.b=bDZwxEbD; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232874AbhCaBls (ORCPT + 99 others); Tue, 30 Mar 2021 21:41:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230145AbhCaBlW (ORCPT ); Tue, 30 Mar 2021 21:41:22 -0400 Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com [IPv6:2607:f8b0:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0BBDC061574; Tue, 30 Mar 2021 18:41:21 -0700 (PDT) Received: by mail-ot1-x329.google.com with SMTP id g8-20020a9d6c480000b02901b65ca2432cso17480353otq.3; Tue, 30 Mar 2021 18:41:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=FwTk7Uw5F75P1AWalfGsAJn2SsFNx4MbYfUVHPETdms=; b=bDZwxEbD9OJWmz0PQrB65GzWm2jqwI7C8bGTPZ6dFkhtKfJe/Sn+2oIqMA36LCTOq0 gXmqPCKiQ/l3hlmicCHBqiFOC5sJw8LEwDU+Hm2076b7zHLJpO2tSkqeyfe+g3Nr08Mo z5K0KEItAOtYM3xaQNFo3KEYKf/1cPnTT36gKCVlVuewrZWfcF6bgASoYPFqLJvhF7Nm CXXplHN97sNHw9zNZLTrMoDf45RhlE0WD/cNrjQrDvCHd+sXTf18riqmt7550miseADe Eay2qSCba3ZKM+ZBuUh1Xn/bhHWp1MxeTTIEmUzo78RcHB+1J7jdnyJvUa45VI1ekjJ+ v1IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=FwTk7Uw5F75P1AWalfGsAJn2SsFNx4MbYfUVHPETdms=; b=Ru6Jf1CK3DG2lMJ94NsO298bFO5f5GuJ7YWvlh9nAkIwxZN8Htx2B+u753uPwwWJNf Y+yXZgzqJHQS9S/kJpLfVWTEoEcTgccMoVnrdAvxwBPrBoYRJqNcbbBX7dkkEJ/XyqLR AF7B2wdOObWpTWuXqphPBM37SszCPJ62+SqqTIhUrmP4BYRyeuqL4KL5ahNAdl9AQAS5 npDgASath2ofJ9ZasRSK8Pj/1OGG7/yqnsX4L483T8gH99QoW2MXw2Iid6qCTMysYXj1 4LcAyXlIZmCU2tD3PT1Nt7lnfm612f6pCwA0hqWVhxdm4Yfx+xng23ZleU977Fubn8Oo lC6g== X-Gm-Message-State: AOAM533nDLBWLZsQqSJEui9iTdQbf1bNW6r7Szv8uexa2mwKfZq/vx8e Mov+mzLLqQv22TlWSv0S7kmCBZkExguDDjHeuRg= X-Received: by 2002:a05:6830:22c3:: with SMTP id q3mr627896otc.56.1617154881330; Tue, 30 Mar 2021 18:41:21 -0700 (PDT) MIME-Version: 1.0 References: <20210330165958.3094759-1-pbonzini@redhat.com> <20210330165958.3094759-2-pbonzini@redhat.com> In-Reply-To: <20210330165958.3094759-2-pbonzini@redhat.com> From: Wanpeng Li Date: Wed, 31 Mar 2021 09:41:08 +0800 Message-ID: Subject: Re: [PATCH 1/2] KVM: x86: reduce pvclock_gtod_sync_lock critical sections To: Paolo Bonzini Cc: LKML , kvm , Marcelo Tosatti , Vitaly Kuznetsov , David Woodhouse Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 31 Mar 2021 at 01:02, Paolo Bonzini wrote: > > There is no need to include changes to vcpu->requests into > the pvclock_gtod_sync_lock critical section. The changes to > the shared data structures (in pvclock_update_vm_gtod_copy) > already occur under the lock. > > Cc: David Woodhouse > Cc: Marcelo Tosatti > Signed-off-by: Paolo Bonzini Reviewed-by: Wanpeng Li > --- > arch/x86/kvm/x86.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index fe806e894212..0a83eff40b43 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -2562,10 +2562,12 @@ static void kvm_gen_update_masterclock(struct kvm *kvm) > > kvm_hv_invalidate_tsc_page(kvm); > > - spin_lock(&ka->pvclock_gtod_sync_lock); > kvm_make_mclock_inprogress_request(kvm); > + > /* no guest entries from this point */ > + spin_lock(&ka->pvclock_gtod_sync_lock); > pvclock_update_vm_gtod_copy(kvm); > + spin_unlock(&ka->pvclock_gtod_sync_lock); > > kvm_for_each_vcpu(i, vcpu, kvm) > kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); > @@ -2573,8 +2575,6 @@ static void kvm_gen_update_masterclock(struct kvm *kvm) > /* guest entries allowed */ > kvm_for_each_vcpu(i, vcpu, kvm) > kvm_clear_request(KVM_REQ_MCLOCK_INPROGRESS, vcpu); > - > - spin_unlock(&ka->pvclock_gtod_sync_lock); > #endif > } > > @@ -7740,16 +7740,14 @@ static void kvm_hyperv_tsc_notifier(void) > struct kvm_arch *ka = &kvm->arch; > > spin_lock(&ka->pvclock_gtod_sync_lock); > - > pvclock_update_vm_gtod_copy(kvm); > + spin_unlock(&ka->pvclock_gtod_sync_lock); > > kvm_for_each_vcpu(cpu, vcpu, kvm) > kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); > > kvm_for_each_vcpu(cpu, vcpu, kvm) > kvm_clear_request(KVM_REQ_MCLOCK_INPROGRESS, vcpu); > - > - spin_unlock(&ka->pvclock_gtod_sync_lock); > } > mutex_unlock(&kvm_lock); > } > -- > 2.26.2 > >