Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp5716775imw; Wed, 20 Jul 2022 11:00:47 -0700 (PDT) X-Google-Smtp-Source: AGRyM1td5yHQfyy/DBWllHJTHcqulihmAzFq7+IzZiYwlfLsoM1tcRn2KXHOG7nbROkUYLVVhNel X-Received: by 2002:a17:906:84e8:b0:72e:2f3c:6784 with SMTP id zp8-20020a17090684e800b0072e2f3c6784mr33733124ejb.390.1658340046804; Wed, 20 Jul 2022 11:00:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658340046; cv=none; d=google.com; s=arc-20160816; b=Haw8OmC4rDTiqHbUa72dWQTxFSE7uzfUjx9hwXgBu1UWUlUKpJtUlMYR3LDzfx6Hzm XWG3wo5+8CxwbcTFkz4UCOdGozY9mg0PE7mMAafL0NaFf4J/EXfQAZPDI09HD3mrFUgU 21hXbKa0exOz+K356G//llfXj+ZvbCtuwCPdXGZEaaVVycBr6Ius1Yb3tI88I5fA+Ovw bMybO/HbbSApmT0713m6G9Qw7Pp86RYuX12t9yI4/F9PqkYU2L/CTin8jBSKNyFjerNC AnOeyin3IJog6kKvN+70UY6fLEKumewwmSNtpMOfSsY23UYJrLilyPxYOP2Nh7R/IBcF EBNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=c5dtfvo8X5iwM555XYGNyX8BDWpR76NHDGfyCA16UfI=; b=LTLMQMvC2D+hiwNFwUxoi+QJjcatQ4Xq4LpYNp1OL0kewQR+kqTNZK5tcqarE0DrOD tBVC7opaWhrl5GP37Xvd9oLzn28EDt2VRAAiIz1diUT5kiL+tPUMqTYzh2fRSpdjBdUR qizfOFQVjYLMPJGkXVNSy+pUiT3Wt9zah4e76t+OEBnoK1hNZ1Jdam/tOZnD6SgBcR7k r34PSxplgfFoBbFLBU62v+sd2VL9Z4qKeRFOCnPhA9nFTF61CetuTezSlezdEyigUq8E ne9yjkGphLb1QPMSDpLQuxfLwNSFdIwnlx448IPllOiTf4eFVhRiqvT5x5Sp5VCI0Xnk 7/xA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=gXnjZIAP; 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 sd12-20020a1709076e0c00b0072ee6c76e3esi25268796ejc.790.2022.07.20.11.00.20; Wed, 20 Jul 2022 11:00:46 -0700 (PDT) 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=gXnjZIAP; 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 S229562AbiGTRGa (ORCPT + 99 others); Wed, 20 Jul 2022 13:06:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237864AbiGTRG1 (ORCPT ); Wed, 20 Jul 2022 13:06:27 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75E3A6BC1A; Wed, 20 Jul 2022 10:06:26 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id g1so13343452qki.7; Wed, 20 Jul 2022 10:06:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=c5dtfvo8X5iwM555XYGNyX8BDWpR76NHDGfyCA16UfI=; b=gXnjZIAPvttLh4w+Ab05XIAYC8D5DFsAcn3ijUuLc+GSaiv8d+uPgFpGnvwgzTS/B3 rk2QbOkRfYBeLjblewcyl0Vb+S5PgQDkx3FIdSvkuq9BA0tsTAZGZM4defJCc6/5eI0l G4ECM2998z3lFf5BU+LDBrtFc51bW3sjaGP+oqBRHoO7lFKGHq4j80vF9X43peS43iqa FUBHW0bYtFMPCIRWJIpJpLIpWdOTHNEIfAA+fQwwUnPPqzuuIvUxzM0I9vzqRRgF3ei0 vzhw+Xp5jt42ygTQE7MFdspXgtuGzh2oSrTfPAI37A0raDJWGQsjyDo2k1a1jM9Hbw2h Sdgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=c5dtfvo8X5iwM555XYGNyX8BDWpR76NHDGfyCA16UfI=; b=oqBqUzsJbfKuSC1mXeMnrd0EIQWe3vX8NLWYNDPFPL6pzv7iiBB2G2p6hBg0elyG80 enw1Lna4Adg27Jnm5zi8sRdwlSYSXD/gGIhBqTuMkygOTSkgK+wbpAvsaQlYQZ8AXkC9 ztrf1rjtnFGc0bZetuVZWjRiVP4SyEJZpwL3HSok91Sb3L8sW/4/Ue1sw7pOcsx0R8KB jKCznIYPjPBwbOwBvjFir4a5aRcmclLTu+iMRhS1S7u+WmsWqLeRBCm4wJj41Suvh95v 259BEZpMNtbvwaeJGPk73f2wScZXi/FFozghYb1cGSXv1kOVMXuSpp3++gLgeOiQh0jA Hxfg== X-Gm-Message-State: AJIora+VhkK8tzENF4lcsZkY8tMPxwRC5tUuGDx4CDN3rMq5kCgrnLKh 7W4VdEvyIWT1K/WwIWx/x+U= X-Received: by 2002:a37:b802:0:b0:6b5:8330:55a with SMTP id i2-20020a37b802000000b006b58330055amr25801868qkf.778.1658336785340; Wed, 20 Jul 2022 10:06:25 -0700 (PDT) Received: from localhost ([2601:4c1:c100:1230:8a38:8fe4:50f8:8b83]) by smtp.gmail.com with ESMTPSA id u11-20020a05620a0c4b00b006b4689e3425sm16467626qki.129.2022.07.20.10.06.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jul 2022 10:06:25 -0700 (PDT) Date: Wed, 20 Jul 2022 10:06:24 -0700 From: Yury Norov To: Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Alexander Lobakin , Alexei Starovoitov , Alexey Klimov , Andrew Morton , Andrii Nakryiko , Andy Shevchenko , Ben Segall , Christoph Lameter , Dan Williams , Daniel Borkmann , Daniel Bristot de Oliveira , Dennis Zhou , Dietmar Eggemann , Eric Dumazet , Frederic Weisbecker , Guenter Roeck , Ingo Molnar , Isabella Basso , John Fastabend , Josh Poimboeuf , Juergen Gross , Juri Lelli , KP Singh , Kees Cook , Martin KaFai Lau , Mel Gorman , Miroslav Benes , Nathan Chancellor , "Paul E . McKenney" , Randy Dunlap , Rasmus Villemoes , Sebastian Andrzej Siewior , Song Liu , Steven Rostedt , Tejun Heo , Thomas Gleixner , Valentin Schneider , Vincent Guittot , Vlastimil Babka , Yonghong Song , linux-mm@kvack.org, netdev@vger.kernel.org, bpf@vger.kernel.org Subject: Re: [PATCH 08/16] smp: optimize smp_call_function_many_cond() for more Message-ID: References: <20220718192844.1805158-1-yury.norov@gmail.com> <20220718192844.1805158-9-yury.norov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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 Mon, Jul 18, 2022 at 11:29:06PM +0200, Peter Zijlstra wrote: > On Mon, Jul 18, 2022 at 12:28:36PM -0700, Yury Norov wrote: > > > --- > > kernel/smp.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/kernel/smp.c b/kernel/smp.c > > index 7ed2b9b12f74..f96fdf944b4a 100644 > > --- a/kernel/smp.c > > +++ b/kernel/smp.c > > @@ -942,7 +942,11 @@ static void smp_call_function_many_cond(const struct cpumask *mask, > > > > if (run_remote) { > > cfd = this_cpu_ptr(&cfd_data); > > - cpumask_and(cfd->cpumask, mask, cpu_online_mask); > > + if (mask == cpu_online_mask) > > + cpumask_copy(cfd->cpumask, cpu_online_mask); > > + else > > + cpumask_and(cfd->cpumask, mask, cpu_online_mask); > > + > > Or... you could optimize cpumask_and() to detect the src1p == src2p case? This is not what I would consider as optimization. For vast majority of users this check is useless because they know for sure that cpumasks are different. For this case I can invent something like cpumask_and_check_eq(), so that there'll be minimal impact on user code. (Suggestions for a better name are very welcome.) Thanks, Yury