From nobody Thu May 2 23:09:20 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78F2DC76195 for ; Tue, 28 Mar 2023 08:35:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232621AbjC1IfU (ORCPT ); Tue, 28 Mar 2023 04:35:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232345AbjC1Iew (ORCPT ); Tue, 28 Mar 2023 04:34:52 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16B2C49E9; Tue, 28 Mar 2023 01:34:51 -0700 (PDT) Date: Tue, 28 Mar 2023 08:34:47 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1679992487; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Uj3Gz9DQvbGioAeN5LafCO6bBWg9r/sA+4PyB9L7G3s=; b=Djw0WY+jpTx+2J8yMwnbzJlCJneo0RSRFMz1JNNaowlqLuEXrg+VRKw04wEnrrr13aVrn4 Pcc2AgyTNILa5YUK/2NeZhavr9v7WWkopCrTGV7qEmsd9h9JpYbFHiwkO1fNfQ7WZJZeFb 97ha2r5NP3smMnJSHLExe99QvnzCO5Oe2B8FlEyAv5Hn91nHig+pXNJmzss7YTSl/aTrCW 8sx/AYQ2qV3H+iq9bnlQ7/1QmWgfR3ixI9/+3hXclh486Bk520x+z8WfJaj+lbFnPdfB2d oReSOcZ8sRE/tu88FXvooUe2zVXIAtSC8PGTPlc6hNpvTWI6tcbDWeZFaAYEow== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1679992487; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Uj3Gz9DQvbGioAeN5LafCO6bBWg9r/sA+4PyB9L7G3s=; b=pV9eOMJvFElNoRSHdm5rWChGY+RONdT/wA3ERMCL5QN/n0ft23mIBnAInDU8mJegW/60gy nenAaCnsf2rLRpDg== From: "tip-bot2 for Paul E. McKenney" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: smp/core] locking/csd_lock: Remove per-CPU data indirection from CSD lock debugging Cc: "Paul E. McKenney" , "Peter Zijlstra (Intel)" , Juergen Gross , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20230321005516.50558-3-paulmck@kernel.org> References: <20230321005516.50558-3-paulmck@kernel.org> MIME-Version: 1.0 Message-ID: <167999248708.5837.15614730966447536861.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the smp/core branch of tip: Commit-ID: 6366d062e7f97499409979f23f4107a6c45edb04 Gitweb: https://git.kernel.org/tip/6366d062e7f97499409979f23f4107a6c= 45edb04 Author: Paul E. McKenney AuthorDate: Mon, 20 Mar 2023 17:55:15 -07:00 Committer: Peter Zijlstra CommitterDate: Fri, 24 Mar 2023 11:01:26 +01:00 locking/csd_lock: Remove per-CPU data indirection from CSD lock debugging The diagnostics added by this commit were extremely useful in one instance: a5aabace5fb8 ("locking/csd_lock: Add more data to CSD lock debugging") However, they have not seen much action since, and there have been some concerns expressed that the complexity is not worth the benefit. Therefore, manually revert the following commit preparatory commit: de7b09ef658d ("locking/csd_lock: Prepare more CSD lock debugging") Signed-off-by: Paul E. McKenney Signed-off-by: Peter Zijlstra (Intel) Acked-by: Juergen Gross Link: https://lore.kernel.org/r/20230321005516.50558-3-paulmck@kernel.org --- kernel/smp.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/kernel/smp.c b/kernel/smp.c index 038d666..7a85bcd 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -31,12 +31,8 @@ =20 #define CSD_TYPE(_csd) ((_csd)->node.u_flags & CSD_FLAG_TYPE_MASK) =20 -struct cfd_percpu { - call_single_data_t csd; -}; - struct call_function_data { - struct cfd_percpu __percpu *pcpu; + call_single_data_t __percpu *csd; cpumask_var_t cpumask; cpumask_var_t cpumask_ipi; }; @@ -59,8 +55,8 @@ int smpcfd_prepare_cpu(unsigned int cpu) free_cpumask_var(cfd->cpumask); return -ENOMEM; } - cfd->pcpu =3D alloc_percpu(struct cfd_percpu); - if (!cfd->pcpu) { + cfd->csd =3D alloc_percpu(call_single_data_t); + if (!cfd->csd) { free_cpumask_var(cfd->cpumask); free_cpumask_var(cfd->cpumask_ipi); return -ENOMEM; @@ -75,7 +71,7 @@ int smpcfd_dead_cpu(unsigned int cpu) =20 free_cpumask_var(cfd->cpumask); free_cpumask_var(cfd->cpumask_ipi); - free_percpu(cfd->pcpu); + free_percpu(cfd->csd); return 0; } =20 @@ -730,7 +726,7 @@ static void smp_call_function_many_cond(const struct cp= umask *mask, =20 cpumask_clear(cfd->cpumask_ipi); for_each_cpu(cpu, cfd->cpumask) { - call_single_data_t *csd =3D &per_cpu_ptr(cfd->pcpu, cpu)->csd; + call_single_data_t *csd =3D per_cpu_ptr(cfd->csd, cpu); =20 if (cond_func && !cond_func(cpu, info)) continue; @@ -774,7 +770,7 @@ static void smp_call_function_many_cond(const struct cp= umask *mask, for_each_cpu(cpu, cfd->cpumask) { call_single_data_t *csd; =20 - csd =3D &per_cpu_ptr(cfd->pcpu, cpu)->csd; + csd =3D per_cpu_ptr(cfd->csd, cpu); csd_lock_wait(csd); } }