Received: by 2002:a05:7412:6592:b0:d7:7d3a:4fe2 with SMTP id m18csp837764rdg; Fri, 11 Aug 2023 01:00:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFZUHz5db68CMJz2Xf4vOYBMgnYfxFVa4oajkOhQ10qgS3ZQbJl6xep57qjA0Aj3hsLKVR7 X-Received: by 2002:a17:902:d488:b0:1b6:a37a:65b7 with SMTP id c8-20020a170902d48800b001b6a37a65b7mr5948222plg.23.1691740847416; Fri, 11 Aug 2023 01:00:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691740847; cv=none; d=google.com; s=arc-20160816; b=haF7PbhyV9ZcowWn1zRuzT8pHbIPK+5MLT+oU5A/hFaEu02SMI946QHtTb+hwgNBDT QxpMHDfOiu9B3bHK39HFEqPwK900YrxK4ydSI+Rw9H4M4HNI7lIqg9gdg7PivBsguwf+ xzZKrtWHWkWSyCCLsgaSxyrmIvTAbK5Ynx4Get5Pri5dV02mx/IEzqGvwOWKqYx7Gh6q Af3oFlsJ7BcKxHmP7rxx+rBmqDPNCisXhGx6vHFmKPzp0KYKo/QMAVNsSwDCktPLBeN5 AIXmOeCv5fyWQxMDfXzFKOmja5OsjU0XVjHUyWd3dGSRvCWHXnnbxPKPZuqxAUYLNK3J O2jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=VFTU7Qp0U4fO78OlPa7W/8TemF4eYsGTKoniJ6Y9ewc=; fh=LPup5ihVeEc9QVQfmPr/OVeIly5YLmBH4p/5JkjX2g8=; b=hP1ucdZ0M3zi/GDnGgb5mf3rhOlqkK4HNYPN086SP3DXtzW69KblZ+XVIkLVJ/NFN0 tDXG4hK6u8wHoJWbscPtbU42W/5Tu5fXqtPm50bogQN0yHLjOWHKpCEzJwsmmRXtLaZO Cd/q3D3BfNLZsDGw72AZIrXRHdeMT3OsV5R3G5jbMkqBg9l0vPKh4R0dOADihfOLoCDm BX3PToEYwcAUzl0jk9bH07duHCp+H6+DMUGhTJDQ+HEfnnDfzfRC/WD9lrGaN8DXoHt1 R/ZND834Pw8/7ChaSdI7obZBX3Z3XLvpuXueGcfhy/1U94Sd/Ely8xxq+eMIhlE0kpZG VzoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=MGs8z7zp; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b25-20020a656699000000b0055fc7d2e920si2978779pgw.638.2023.08.11.01.00.34; Fri, 11 Aug 2023 01:00:47 -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=@joelfernandes.org header.s=google header.b=MGs8z7zp; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233980AbjHKHfl (ORCPT + 99 others); Fri, 11 Aug 2023 03:35:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233943AbjHKHfi (ORCPT ); Fri, 11 Aug 2023 03:35:38 -0400 Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 444DD196 for ; Fri, 11 Aug 2023 00:35:37 -0700 (PDT) Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2b9cf2b1309so19787671fa.0 for ; Fri, 11 Aug 2023 00:35:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; t=1691739335; x=1692344135; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=VFTU7Qp0U4fO78OlPa7W/8TemF4eYsGTKoniJ6Y9ewc=; b=MGs8z7zpTzaN3nx5+XZVK0bNh1+wAnaJ0QUcT7RwifGeXBEjcYhlzT5F699DmRenjJ v0XUYbYIQR08v3fJmklj7rJ6b7YjOSHq3LRepZAr0HcpdAuJGN34EP/Wt4JZ4KF8k7Nm X87soOAcPZgHRrerlwKqvn8Vig9Lb462OS/fg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691739335; x=1692344135; h=content-transfer-encoding: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=VFTU7Qp0U4fO78OlPa7W/8TemF4eYsGTKoniJ6Y9ewc=; b=EGYhQiDQ4Emfmmp+7QhPt3WQbS8K6C7bikewL7sb95O17eIMD2oAABWf+LDmM/nP45 CufopBaUmyH9j6zxdWry8GeocC6yZf6V8TlaQzwtIn3YfsIC3BqJlbsg6LdufYaM9ZyC QMet1WHX/0Nswv4Fl2w40DI/NSMaIcux9xucZnkOX7TsezUPt002HpfLSmsj2e8vRH7o FtPgUw25fUkgdbmyfUCn37CkDI1kj5DCoNl5qFbv9mk7UlNnjXGmHl2OW1ILIJq+NcQp 432auOkEZn1Qt/FX5/u2U0VABeF8PwBa4EzNHk2HtHaKNelSURbwW1vUKKy5A/Hr2xlc Dr5g== X-Gm-Message-State: AOJu0YwADx1t1pm8BeEgPjSR9iyySnK1AT5qSPuMV3rVLnfzmLPhho4P m3Kt2pG/ebzG1RGl21VjIKsQ6oWDDlnMu+8yO/We9A== X-Received: by 2002:a2e:b54a:0:b0:2b9:c2dc:619c with SMTP id a10-20020a2eb54a000000b002b9c2dc619cmr1768426ljn.10.1691739334773; Fri, 11 Aug 2023 00:35:34 -0700 (PDT) MIME-Version: 1.0 References: <20230801204121.929256934@infradead.org> <20230801211811.828443100@infradead.org> <20230809194822.GV212435@hirez.programming.kicks-ass.net> In-Reply-To: <20230809194822.GV212435@hirez.programming.kicks-ass.net> From: Joel Fernandes Date: Fri, 11 Aug 2023 03:35:23 -0400 Message-ID: Subject: Re: [PATCH 1/9] sched: Simplify get_nohz_timer_target() To: Peter Zijlstra Cc: mingo@redhat.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 Wed, Aug 9, 2023 at 3:48=E2=80=AFPM Peter Zijlstra wrote: > > On Sun, Aug 06, 2023 at 05:39:24PM -0400, Joel Fernandes wrote: > > On Sun, Aug 6, 2023 at 9:52=E2=80=AFAM Peter Zijlstra wrote: > > > > > > Use guards to reduce gotos and simplify control flow. > > > > > > Signed-off-by: Peter Zijlstra (Intel) > > > --- > > > kernel/sched/core.c | 15 ++++++--------- > > > 1 file changed, 6 insertions(+), 9 deletions(-) > > > > > > --- a/kernel/sched/core.c > > > +++ b/kernel/sched/core.c > > > @@ -1097,25 +1097,22 @@ int get_nohz_timer_target(void) > > > > > > hk_mask =3D housekeeping_cpumask(HK_TYPE_TIMER); > > > > > > - rcu_read_lock(); > > > + guard(rcu)(); > > > + > > > for_each_domain(cpu, sd) { > > > for_each_cpu_and(i, sched_domain_span(sd), hk_mask) { > > > if (cpu =3D=3D i) > > > continue; > > > > > > - if (!idle_cpu(i)) { > > > - cpu =3D i; > > > - goto unlock; > > > - } > > > + if (!idle_cpu(i)) > > > + return i; > > > } > > > } > > > > > > if (default_cpu =3D=3D -1) > > > default_cpu =3D housekeeping_any_cpu(HK_TYPE_TIMER); > > > - cpu =3D default_cpu; > > > -unlock: > > > - rcu_read_unlock(); > > > - return cpu; > > > + > > > + return default_cpu; > > > } > > > > Reviewed-by: Joel Fernandes (Google) > > > > I haven't looked into the actual implementation of the guard stuff, > > but rcu_read_lock_guarded() is less of an eyesore to me than > > guard(rcu)(); TBH. > > I readily admit it isn't the prettiest construct, my brain is warped by > many years of C++ and I can read it as: guard(), but I'm not sure > that's actually better :-) > > The advantage of all this is that you also get: > > scoped_guard (rcu) { > } > > for 'free'. Yes, overall the readability improvement is quite appealing. Thank you Pete= r! - Joel