Received: by 2002:a05:6358:f14:b0:e5:3b68:ec04 with SMTP id b20csp3709557rwj; Tue, 20 Dec 2022 00:23:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf65v51blAZRyDYc5UICY+TRIXZIDekEnbrDfI5MbXLxHqSXNdC31yEIkm2pZzsa4S2NMKkX X-Received: by 2002:a17:903:3294:b0:189:69cf:9e9e with SMTP id jh20-20020a170903329400b0018969cf9e9emr43233854plb.41.1671524583182; Tue, 20 Dec 2022 00:23:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671524583; cv=none; d=google.com; s=arc-20160816; b=fA4dg+eR7HfO8O7zZXYCyyhoji8927T9zNQsoD+FmO4QejRiPaf4jkfp/ZitCS7tjN 5gf9uHfBsNN0W78sKBkMkvhYmiKIC2hKEnGzRJdgnWu5Ut8/O4hL2lx3pLpHuS5QPz24 1nRf8UEez1lRPjZlCFQBzhOPPm2rAS57roCXKqncAYpfl03ffGl/xaCpZ64KnGqXDcVs TzCJKruFf4zhMe6ljj142+SRuGyqlxfxuulKfj7deQGfOFZRIhHqo9Br/F34st2P4W57 IWCzhw1Hsa5BMdoSMkMpafcOe2IgqwtrHgskbQsZsdQtol5lxEVXISBvps7Qy8I7020y 8EmA== 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=/W+7qwDTFMzyJkTT4aws3iV4KSX3CQLUUP12KT8As2U=; b=juBMJKZ6va4uzcrGZBAJxOJuPrjylSgzEyZXXt/wLS2LLWGgRMhtSlNZ5JnsjyFRaD vUTefnCHbDhK1O1iTxrCAhzfk9ctrrMtT0mP1Y1A9gkzJjohoSE8a/4V62vM+9r37oMM BsBCws9OuUkoHGr/Nm93fcS2JWnhP4tAJFuDRFZUYO/x8czbCN7yQbMCbFUOucFYQ4Ka liUkta/EBOIFjLAhvWi5H/K99XzHA7Jp62MveSYD2lSJ27Nq4fFblBlWX1e3Kig7UBPV UYK2Th6JBRR7gkz7LRjKfx1GDXWoBA3kgyh2bIYnX2KPNpullg7phdSdDXe8pkMAH3cT ot/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="ocO3/HR5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x7-20020a1709029a4700b00189906d63bdsi12232130plv.7.2022.12.20.00.22.52; Tue, 20 Dec 2022 00:23:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="ocO3/HR5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S233413AbiLTHsW (ORCPT + 71 others); Tue, 20 Dec 2022 02:48:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233491AbiLTHsM (ORCPT ); Tue, 20 Dec 2022 02:48:12 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DBD61704E; Mon, 19 Dec 2022 23:48:08 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id ay2-20020a05600c1e0200b003d22e3e796dso8116952wmb.0; Mon, 19 Dec 2022 23:48:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/W+7qwDTFMzyJkTT4aws3iV4KSX3CQLUUP12KT8As2U=; b=ocO3/HR5PP3aS3Hjb6yvhkh/I/y+GocuwL5lfD/x5uVSyPmJYWCfKxjyVcGhncJErb AsmskngYcjtuRCJoZzo9sm/kQbO02qlD+knbstxqhyE0EbYUMT9ZI+CFiMnL+fDgDJUS 2biy76OyP1X6lQLogUui5iIQuL+/MQdFjIuQg2kgojAEP2dhhjm6xSE+98D2OWB62J7w iR6MzD8NVcwkRhZDnvqUqSBB/1jS+ScVaENWYS8f3YOwuug0qyfv9AjqJn8CVYk/aRll ec3L7Lyko32F1NcLGdY3Yp5GUBTmxVFekJw9KpJOmfTXKThTMjWXlIrCCRzxOkkiXiJP ZxPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/W+7qwDTFMzyJkTT4aws3iV4KSX3CQLUUP12KT8As2U=; b=8ATtUg6rL9HRoie4dJbyG4g2l611uB/ah970t4oXA5+zYmcymRX6w6sXos5rBQjL71 mxyzTcAZbWu0X4g/JD10F145OMVwdSeohsN1SZtDraDl4TtcogaKM22HG0nTyIExN2vy kMNtV2d+fYPi0lXdL3iL6O1NMiVGHdkQbDxLxlVdy7czJHX7cv134peC4tlMf304NyQt NvxWrTfNRBXyLbFd05B7YstqycWr2XCTeegE9dDtA27JO5xcqOogZaFbTNFPHe8SyH9T l1rEwHBqIuWtdLF5Xscq6AkFVseAL/G1x7zUz4AjjhDqtrJ8Co8QsptnlJX29V7Xrb6E b/GQ== X-Gm-Message-State: AFqh2kpTiGIl0fH1d44wCtrdJwNli7Spen2i9nvQs3lBqMXzsJwW/GqC vkAMEEL4MwZU9tfENcxkfuV80crPAScA4bksy8d5DWP7H/E= X-Received: by 2002:a7b:cc17:0:b0:3d3:56ce:56a0 with SMTP id f23-20020a7bcc17000000b003d356ce56a0mr406779wmh.45.1671522486911; Mon, 19 Dec 2022 23:48:06 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Hao Peng Date: Tue, 20 Dec 2022 15:47:55 +0800 Message-ID: Subject: Re: [PATCH] KVM: use unified srcu interface function To: Sean Christopherson Cc: pbonzini@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 9, 2022 at 9:22 AM Sean Christopherson wrote: > > On Thu, Dec 08, 2022, Hao Peng wrote: > > From: Peng Hao > > > > kvm->irq_routing is protected by kvm->irq_srcu. > > > > Signed-off-by: Peng Hao > > --- > > virt/kvm/irqchip.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c > > index 1e567d1f6d3d..90f54f04e37c 100644 > > --- a/virt/kvm/irqchip.c > > +++ b/virt/kvm/irqchip.c > > @@ -216,7 +216,8 @@ int kvm_set_irq_routing(struct kvm *kvm, > > } > > > > mutex_lock(&kvm->irq_lock); > > - old = rcu_dereference_protected(kvm->irq_routing, 1); > > + old = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu, > > + lockdep_is_held(&kvm->irq_lock)); > > Readers of irq_routing are protected via kvm->irq_srcu, but this writer is never > called with kvm->irq_srcu held. I do like the of replacing '1' with > lockdep_is_held(&kvm->irq_lock) to document the protection, so what about just > doing that? I.e. > Sorry for the long delay in replying. Although kvm->irq_srcu is not required to protect irq_routing here, this interface function srcu_dereference_check indicates that irq_routing is protected by kvm->irq_srcu in the kvm subsystem. Thanks. > diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c > index 1e567d1f6d3d..77a18b4dc103 100644 > --- a/virt/kvm/irqchip.c > +++ b/virt/kvm/irqchip.c > @@ -216,7 +216,8 @@ int kvm_set_irq_routing(struct kvm *kvm, > } > > mutex_lock(&kvm->irq_lock); > - old = rcu_dereference_protected(kvm->irq_routing, 1); > + old = rcu_dereference_protected(kvm->irq_routing, > + lockdep_is_held(&kvm->irq_lock)); > rcu_assign_pointer(kvm->irq_routing, new); > kvm_irq_routing_update(kvm); > kvm_arch_irq_routing_update(kvm); > > > > rcu_assign_pointer(kvm->irq_routing, new); > > kvm_irq_routing_update(kvm); > > kvm_arch_irq_routing_update(kvm); > > -- > > 2.27.0