From patchwork Wed Feb 19 15:39:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866572 Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC4E71F9A86; Wed, 19 Feb 2025 15:39:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979587; cv=none; b=s07XSn9wHsr/17cmcB3WYUip9S5ZEf0Le5CGQNV387e5TgJb+PPbHyxJmYKoVqVmM4qgrQ5rhB7TzWnCBkvG8srbfG96Ul3ERYPN2Q8eug8SMZbz2jl9UUARF9SPchfbYVVj8Te+/fFBt5FhFGJUu6UzuxDT6vb0EX5hTerBkns= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979587; c=relaxed/simple; bh=8C80FkUL6UxhkhIFrzMJWhu+QKYCRjycCjOk31gTRkE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=blzfHRwyPaiHehqiLx/Gv6T5UvBQR6+ncwGVrp9xf+jZ/MZUVfbk14CTDpqxWlGk40PDYFcsBEEQCX7oJf27F5nJxH+/dcewyM6jywKTEQhOY+uxkEdHzLs+n9hwjFKN0AlnPBhUwnA8cEZBsigC59Thb01qMY17p+H9mnHaGCU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KiA+fDPw; arc=none smtp.client-ip=209.85.222.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KiA+fDPw" Received: by mail-qk1-f172.google.com with SMTP id af79cd13be357-7c081915cf3so38567585a.1; Wed, 19 Feb 2025 07:39:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979584; x=1740584384; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=ofD7XcJUOd4xqsL7s6Ab7/z/fB9Vrf2jGOtfQ6KGwPw=; b=KiA+fDPw0vhtv3hy0Uptfu0ThodH0FCIkKbfyOYLWYJ5rbGzpRFXR6IS9dWSlBm3vK rJiYEAO4l1ZR//Q8D3izmq4KcdO8yaqq9vUxt1t1zf8wwXUieQCKqRD0RYRg3WD18xDL zeSWrrJqqViZLRYHLw0fzaxdJkSiQSa5g4yDsw2VvNkyIH/zz1hEwZw3Ex2IVtAMjaf3 2PDCWNp/Hhyx3Jw8AJ5kjWO7B7RVCPTuIn4fJJwxPO3Mp4XsWExVKG/zJkrZlSyO2sfJ 244ApOuLnGRmQ0aMshQo9OvX6KcXut4tXGF3xudMjO5Wr6r/5ztFJtejDxI0Nq2HleK2 ckbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979584; x=1740584384; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ofD7XcJUOd4xqsL7s6Ab7/z/fB9Vrf2jGOtfQ6KGwPw=; b=wYUJXBspROChBOxaswZuLPjE+FcEWbHiIU3QyV7SymnWOFZxtfuiX1R0r68NJRkHL+ M4MPb9DVqRh0BxxfLVcZTLn5UeJX0AAvPRZTEGXLcigwLTCTnbNPYzuVwsvlzBXxSJm+ 1GLxxNXLsliqwoV2L4CmWmfwBUcBEdS3afEmVcb33NhXfKHZCIDdYLCLzn9Pwg7hYkUn 3i5TeAkGhoGYsltBU8vRrk+2i8u1KDCKiFaK4s/l4uI5QDxgZB1b2zCgRQgcLT14tAa4 7hha/2aIFLWkoKZt4+hz7jgW2eGWaRF+mXcBAfIcLwpdZB6W7stGqdfrH1HD7bhRKDRk XrjA== X-Forwarded-Encrypted: i=1; AJvYcCUZ02ZX3xMB7f1cFCjq1XXzS94NiJX6i1F4bEcOUpx/w4EJYVN53HX2fj598+HBRPKJPPHhjUIfKGE=@vger.kernel.org, AJvYcCUdLHga4mmenHkk2SjqEei4Pejt5cuyQ9WBcdAD/Jn0jqtxCjTimQcdO80IlIuw/qnnO99A0jUTzUArwhtx996BpN5X@vger.kernel.org, AJvYcCVezHzLmXig6faP4z1B17FRZhIhIpTxSQP5JqBZ8ARerqEpGRN8I9z+fnT9y+68RW/gPbvyHe5KZrI1/rpY@vger.kernel.org, AJvYcCXoLmtJK+de+pid6JXY8qrjuZNwPc+weLA5sSd3/9pKgLj7p5N48gW+ciqitP6dw2q+2OyCTvy+RuT0DfOqIBpp@vger.kernel.org X-Gm-Message-State: AOJu0YxbeMORQibN1y3WZN7nyU6Z8BS76t9TqTw+XAHzpFYxMXptastJ T5J7Q2cX7GgqnIhBeFENEXMt9Wxdgjyh8+aRnTGXGBN+Blz5qT3y X-Gm-Gg: ASbGncvWbQT3Oy816EV/cKbvDlrZRewAqt6bMPtrFoL4PaYfXomdXfL+nx1169DMBPw DSCfH191BPlQ+ZhlRaBssPCMWeCoPateibIv8MZ3n6QRGys1zUk/1dumNjRTPefWcwSUDceeOod w1Qrh4XV42MgNDU0d+IE8wwbTijJDibEWnLS1nwu5XRbfaEavbm+IDBs7uXLqs/s61qH7rscF+Z 6hdEsFRNfRMebf2HDqo+5WpRMgGobENTMlg+QTVCU4t1d8M5R/qkdd8PqTuflXicqqRHaZhywFA AvH/amwrYFi4PZkDroLBB/K8XSPGLUeJiJSBiC5TAeKZRKXe6n2ISVTvqtLNZXhqP1hD4wmsRfx Qqc58KQ== X-Google-Smtp-Source: AGHT+IGUyQ/A0US33jzg7vCcmi8MjDzGL0WvmQXJkuZ2xGoiUtRwR+bXig7hTWuZe/sXU9VvUI/veA== X-Received: by 2002:a05:620a:27d2:b0:7c0:b795:9812 with SMTP id af79cd13be357-7c0b795a79bmr421215785a.7.1739979584545; Wed, 19 Feb 2025 07:39:44 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c0b7a62d8bsm85690385a.8.2025.02.19.07.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:39:44 -0800 (PST) Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfauth.phl.internal (Postfix) with ESMTP id 731C81200043; Wed, 19 Feb 2025 10:39:43 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Wed, 19 Feb 2025 10:39:43 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeigecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvkedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:42 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH rcu 01/11] torture: Add get_torture_init_jiffies() for test-start time Date: Wed, 19 Feb 2025 07:39:28 -0800 Message-Id: <20250219153938.24966-2-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" This commit adds a get_torture_init_jiffies() function that returns the value of the jiffies counter at the start of the test, that is, at the point where torture_init_begin() was invoked. This will be used to enable torture-test holdoffs for tests implemented using per-CPU kthreads, which are created and deleted by CPU-hotplug operations, and thus (unlike normal kthreads) don't automatically know when the test started. Signed-off-by: Paul E. McKenney Signed-off-by: Boqun Feng --- include/linux/torture.h | 1 + kernel/torture.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/linux/torture.h b/include/linux/torture.h index 0134e7221cae..1b59056c3b18 100644 --- a/include/linux/torture.h +++ b/include/linux/torture.h @@ -104,6 +104,7 @@ int torture_stutter_init(int s, int sgap); /* Initialization and cleanup. */ bool torture_init_begin(char *ttype, int v); void torture_init_end(void); +unsigned long get_torture_init_jiffies(void); bool torture_cleanup_begin(void); void torture_cleanup_end(void); bool torture_must_stop(void); diff --git a/kernel/torture.c b/kernel/torture.c index dede150aef01..3a0a8cc60401 100644 --- a/kernel/torture.c +++ b/kernel/torture.c @@ -792,6 +792,8 @@ static void torture_stutter_cleanup(void) stutter_task = NULL; } +static unsigned long torture_init_jiffies; + static void torture_print_module_parms(void) { @@ -821,6 +823,7 @@ bool torture_init_begin(char *ttype, int v) torture_type = ttype; verbose = v; fullstop = FULLSTOP_DONTSTOP; + WRITE_ONCE(torture_init_jiffies, jiffies); // Lockless reads. torture_print_module_parms(); return true; } @@ -836,6 +839,15 @@ void torture_init_end(void) } EXPORT_SYMBOL_GPL(torture_init_end); +/* + * Get the torture_init_begin()-time value of the jiffies counter. + */ +unsigned long get_torture_init_jiffies(void) +{ + return READ_ONCE(torture_init_jiffies); +} +EXPORT_SYMBOL_GPL(get_torture_init_jiffies); + /* * Clean up torture module. Please note that this is -not- invoked via * the usual module_exit() mechanism, but rather by an explicit call from From patchwork Wed Feb 19 15:39:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866571 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 217E31FDE10; Wed, 19 Feb 2025 15:39:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979591; cv=none; b=dsz4TwhNefze/LN5GVWKXEyZWx4vcqhc67cipKnJGqRb3+HmtrcawQd4CBrLCPlwDSOpM2QkUNQFlevfSU83sDDulQvUkrdscBRwuo2aUwc30tA3rkHj08Y9pV6zYssANvY2J2uX/73rdXzLo+jdmI8deG+2gdhCc1j8zzDR3eY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979591; c=relaxed/simple; bh=nz4/EkLWseE40NLXUhT4N656FcYiIt8edVQLtvFFTsA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tmb/HodYWwTrzEsfdVaO61i9xkofitowhp5yHrk5pvvtFDREWntYJZb1A4RqPojM+E+/sEUIDew1vqNKGa9tAcy2yuV4oOmNA9Trqg45h6CX/XNtUbd2wAROHr/OpS2HEvk4KoKXwPtRXpngkg0OwgEQUwG90fs6uy4A5m4BYIk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=h5lpIgR1; arc=none smtp.client-ip=209.85.222.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="h5lpIgR1" Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7c0ba9825e9so43942185a.0; Wed, 19 Feb 2025 07:39:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979588; x=1740584388; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=2IGK/jN7/zS07b2i1C9QicOMxwRniAh4o+TnE4u4gaA=; b=h5lpIgR1MkFuwCbcvU2hyVxstnovNrTcmNEv4lVNP62a75Opbs4/BLGq0zFTRtXa3N 5GrY/fLPAfNcwSvuZ9nDMwzDJmsY2ZMZIillmTjeXAx3o+yHncbQaaiiLhj6MFPUsFdE 3orXNuM8mpTcgefhVJMXGB8M5E82U017+aZC1ULBsSg5kfDZ0lgRVrzoq3phLfv4teIV +ZN4Ta9dStaSVlARLfOiGIkrLQN/cFy4KuI9BEcdtkibhpzhf1DLBQtoPGzrnvlQZ/7J n1C0nSxV9ztsjpaDQH32KYEV8PN1wN1ZQ42OnSeRcDK64KjJ4I48TRwkDIDdoXLP4tZk eadg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979588; x=1740584388; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2IGK/jN7/zS07b2i1C9QicOMxwRniAh4o+TnE4u4gaA=; b=DInTV4sNO9SrgKS8HAz2dvT1nd8GfVICQ8Edq02iy2qZoZjcsHrShOgfLxBE9r/3m+ K+pmnepOO4+KM/YXOSDGmM2iMj+HAthfFXhAZlxWNlsQ0iqaeZDSo/UzpTomVIqz2m+h dkD6R+clpHdUyK4PkTxzWKgASxZnOzgaM+5jBmxQXFO2EgI3WSorFiVtOeyIwzSO6s2n kav+k0veJhodaHe+JXm+G/aAuccY3LKY9HdHJo0Fj8Kh/UhMYvglru5WgL0S2VT0E9wY BQL1e8dCjia3zup5RMA1jwO1YMSTsZUd/TGxBr2uqeZJe5L5Z/FyoFU74t8f7syCR1bd PQJQ== X-Forwarded-Encrypted: i=1; AJvYcCUyYkiC/prAsnMnwfLmfIUjx5WoiUZ5qa1KXTnzR0cKHLpG7uLQO2kPS56XkszMnWOaerey3LvCS50=@vger.kernel.org, AJvYcCV4BS+Zy1wkW6VVMhzIpCMtxAuDDRMcUUzuXWhRQDEN6XNt1oKQOelDWvqrbFpGdingSoHEmkgdMiMTTB6uHxNd@vger.kernel.org, AJvYcCWWFqmNfyd2Br/tny3cbO9hVLKWV7IPlDq6jtg6Ujr4BAdVgoAFLkiYf14dWtj/5yelUPowKfGwU5k8YgqrawIPXLQn@vger.kernel.org, AJvYcCWqvtihdfBD9SzqJPnBo9KMTsKZxbrfaL+cNCEEW9ikQn4usQXwj8tirlFVk2TJQaoN6icrSmKJHa17FGb/@vger.kernel.org X-Gm-Message-State: AOJu0YwL2EJQDumd1gyN6QahFJSwXQM/R+CZOR6dHbGeDMAFANYo5rgV RTQ+vC1On3d/zbnnGDFwPbOZaCfGGPT4life5pW/erfG1mV4axSK X-Gm-Gg: ASbGncujYCR/b2BKvXEemQ4w39bXB+toaqXi+cXYW8S+z5Oga+UWI4ESMkpe+MRY7ar xHw0qjRma8gXT3zmeFjRsaJ4fXEAHRynulPEoT40zsl7NEQXJPV5Zpl8iu3XV1HSFAkNkgh+6eF 3tqu4xDVU2od6UQuwox7s5oLnYqmw/Qd2qQQAJCw3m7a1xko9GelpMjSXtoypEkVYBpYur2U32s t7ObEzEwAUZMpqegDPx80bDu6R8UOul0h5X7xGPDRiWstWtn59dGXwdJ8QqHvP6SXlUZI+Wq7Zj 3zpugSwEJVmrpRrN1CMCDsuqWfZ5BBO+C+F9dLrGKtIeL7PJDXiL840XvI65IWgjSLfhp+nmThc LU2ZpPg== X-Google-Smtp-Source: AGHT+IGKh1Jas2dHp+Xdvfua6mg+rQcOKK6ebxY6bWc8rbExgK1hbPdbNn0PYQeaPxsXI5XgxzjUAA== X-Received: by 2002:a05:620a:278c:b0:7c0:6af7:b71f with SMTP id af79cd13be357-7c0b5246a84mr584504385a.16.1739979587934; Wed, 19 Feb 2025 07:39:47 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c0abf8a181sm231818585a.16.2025.02.19.07.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:39:47 -0800 (PST) Received: from phl-compute-06.internal (phl-compute-06.phl.internal [10.202.2.46]) by mailfauth.phl.internal (Postfix) with ESMTP id D83801200043; Wed, 19 Feb 2025 10:39:46 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Wed, 19 Feb 2025 10:39:46 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeifecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvledpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:46 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kernel test robot Subject: [PATCH rcu 03/11] rcutorture: Include grace-period sequence numbers in failure/close-call Date: Wed, 19 Feb 2025 07:39:30 -0800 Message-Id: <20250219153938.24966-4-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" This commit includes the grace-period sequence numbers at the beginning and end of each segment in the "Failure/close-call rcutorture reader segments" list. These are in hexadecimal, and only the bottom byte. Currently, only RCU is supported, with its three sequence numbers (normal, expedited, and polled). Note that if all the grace-period sequence numbers remain the same across a given reader segment, only one copy of the number will be printed. Of course, if there is a change, both sets of values will be printed. Because the overhead of collecting this information can suppress heisenbugs, this information is collected and printed only in kernels built with CONFIG_RCU_TORTURE_TEST_LOG_GP=y. [ paulmck: Apply Nathan Chancellor feedback for IS_ENABLED(). ] [ paulmck: Apply feedback from kernel test robot. ] Signed-off-by: Paul E. McKenney Tested-by: kernel test robot Signed-off-by: Boqun Feng --- kernel/rcu/Kconfig.debug | 14 ++++++++++++++ kernel/rcu/rcu.h | 2 ++ kernel/rcu/rcutorture.c | 34 ++++++++++++++++++++++++++++++++++ kernel/rcu/tiny.c | 14 ++++++++++++++ kernel/rcu/tree.c | 20 ++++++++++++++++++++ 5 files changed, 84 insertions(+) diff --git a/kernel/rcu/Kconfig.debug b/kernel/rcu/Kconfig.debug index 6af90510a1ca..25a9dc2be0dc 100644 --- a/kernel/rcu/Kconfig.debug +++ b/kernel/rcu/Kconfig.debug @@ -84,6 +84,20 @@ config RCU_TORTURE_TEST_LOG_CPU Say Y here if you want CPU IDs logged. Say N if you are unsure. +config RCU_TORTURE_TEST_LOG_GP + bool "Log grace-period numbers for rcutorture failures" + depends on RCU_TORTURE_TEST + default n + help + This option causes rcutorture to decorate each entry of its + log of failure/close-call rcutorture reader segments with the + corresponding grace-period sequence numbers. This information + can be useful, but it does incur additional overhead, overhead + that can make both failures and close calls less probable. + + Say Y here if you want grace-period sequence numbers logged. + Say N if you are unsure. + config RCU_REF_SCALE_TEST tristate "Scalability tests for read-side synchronization (RCU and others)" depends on DEBUG_KERNEL diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index feb3ac1dc5d5..a6098997a14b 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@ -590,6 +590,8 @@ void do_trace_rcu_torture_read(const char *rcutorturename, #endif static inline void rcu_gp_set_torture_wait(int duration) { } #endif +unsigned long rcutorture_gather_gp_seqs(void); +void rcutorture_format_gp_seqs(unsigned long seqs, char *cp); #ifdef CONFIG_TINY_SRCU diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index fbf1d7fcf61d..2113583cae34 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -273,6 +273,8 @@ struct rt_read_seg { bool rt_preempted; int rt_cpu; int rt_end_cpu; + unsigned long rt_gp_seq; + unsigned long rt_gp_seq_end; }; static int err_segs_recorded; static struct rt_read_seg err_segs[RCUTORTURE_RDR_MAX_SEGS]; @@ -407,6 +409,8 @@ struct rcu_torture_ops { void (*gp_slow_register)(atomic_t *rgssp); void (*gp_slow_unregister)(atomic_t *rgssp); bool (*reader_blocked)(void); + unsigned long (*gather_gp_seqs)(void); + void (*format_gp_seqs)(unsigned long seqs, char *cp); long cbflood_max; int irq_capable; int can_boost; @@ -611,6 +615,8 @@ static struct rcu_torture_ops rcu_ops = { .reader_blocked = IS_ENABLED(CONFIG_RCU_TORTURE_TEST_LOG_CPU) ? has_rcu_reader_blocked : NULL, + .gather_gp_seqs = rcutorture_gather_gp_seqs, + .format_gp_seqs = rcutorture_format_gp_seqs, .irq_capable = 1, .can_boost = IS_ENABLED(CONFIG_RCU_BOOST), .extendables = RCUTORTURE_MAX_EXTEND, @@ -656,6 +662,8 @@ static struct rcu_torture_ops rcu_busted_ops = { .sync = synchronize_rcu_busted, .exp_sync = synchronize_rcu_busted, .call = call_rcu_busted, + .gather_gp_seqs = rcutorture_gather_gp_seqs, + .format_gp_seqs = rcutorture_format_gp_seqs, .irq_capable = 1, .extendables = RCUTORTURE_MAX_EXTEND, .name = "busted" @@ -1978,6 +1986,12 @@ static void rcutorture_one_extend(int *readstate, int newstate, bool insoftirq, rtrsp[-1].rt_preempted = cur_ops->reader_blocked(); } } + // Sample grace-period sequence number, as good a place as any. + if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_LOG_GP) && cur_ops->gather_gp_seqs) { + rtrsp->rt_gp_seq = cur_ops->gather_gp_seqs(); + if (!first) + rtrsp[-1].rt_gp_seq_end = rtrsp->rt_gp_seq; + } /* * Next, remove old protection, in decreasing order of strength @@ -3566,6 +3580,7 @@ rcu_torture_cleanup(void) int flags = 0; unsigned long gp_seq = 0; int i; + int j; if (torture_cleanup_begin()) { if (cur_ops->cb_barrier != NULL) { @@ -3661,6 +3676,25 @@ rcu_torture_cleanup(void) else pr_cont(" ..."); } + if (IS_ENABLED(CONFIG_RCU_TORTURE_TEST_LOG_GP) && + cur_ops->gather_gp_seqs && cur_ops->format_gp_seqs) { + char buf1[16+1]; + char buf2[16+1]; + char sepchar = '-'; + + cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq, buf1); + cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq_end, buf2); + if (err_segs[i].rt_gp_seq == err_segs[i].rt_gp_seq_end) { + if (buf2[0]) { + for (j = 0; buf2[j]; j++) + buf2[j] = '.'; + if (j) + buf2[j - 1] = ' '; + } + sepchar = ' '; + } + pr_cont(" %s%c%s", buf1, sepchar, buf2); + } if (err_segs[i].rt_delay_ms != 0) { pr_cont(" %s%ldms", firsttime ? "" : "+", err_segs[i].rt_delay_ms); diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c index 4b3f31911465..f9c4a24dc59c 100644 --- a/kernel/rcu/tiny.c +++ b/kernel/rcu/tiny.c @@ -257,6 +257,20 @@ void kvfree_call_rcu(struct rcu_head *head, void *ptr) EXPORT_SYMBOL_GPL(kvfree_call_rcu); #endif +#if IS_ENABLED(CONFIG_RCU_TORTURE_TEST) +unsigned long rcutorture_gather_gp_seqs(void) +{ + return READ_ONCE(rcu_ctrlblk.gp_seq) & 0xff; +} +EXPORT_SYMBOL_GPL(rcutorture_gather_gp_seqs); + +void rcutorture_format_gp_seqs(unsigned long seqs, char *cp) +{ + snprintf(cp, 8, "g%02lx", seqs & 0xff); +} +EXPORT_SYMBOL_GPL(rcutorture_format_gp_seqs); +#endif + void __init rcu_init(void) { open_softirq(RCU_SOFTIRQ, rcu_process_callbacks); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 475f31deed14..e40c4b5c3267 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -538,6 +538,26 @@ void rcutorture_get_gp_data(int *flags, unsigned long *gp_seq) } EXPORT_SYMBOL_GPL(rcutorture_get_gp_data); +/* Gather grace-period sequence numbers for rcutorture diagnostics. */ +unsigned long rcutorture_gather_gp_seqs(void) +{ + return ((READ_ONCE(rcu_state.gp_seq) & 0xff) << 16) | + ((READ_ONCE(rcu_state.expedited_sequence) & 0xff) << 8) | + (READ_ONCE(rcu_state.gp_seq_polled) & 0xff); +} +EXPORT_SYMBOL_GPL(rcutorture_gather_gp_seqs); + +/* Format grace-period sequence numbers for rcutorture diagnostics. */ +void rcutorture_format_gp_seqs(unsigned long seqs, char *cp) +{ + unsigned int egp = (seqs >> 8) & 0xff; + unsigned int ggp = (seqs >> 16) & 0xff; + unsigned int pgp = seqs & 0xff; + + snprintf(cp, 16, "g%02x:e%02x:p%02x", ggp, egp, pgp); +} +EXPORT_SYMBOL_GPL(rcutorture_format_gp_seqs); + #if defined(CONFIG_NO_HZ_FULL) && (!defined(CONFIG_GENERIC_ENTRY) || !defined(CONFIG_KVM_XFER_TO_GUEST_WORK)) /* * An empty function that will trigger a reschedule on From patchwork Wed Feb 19 15:39:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866570 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B5761FECAF; Wed, 19 Feb 2025 15:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979593; cv=none; b=AVAU/RqMkH2ZdZsX+ZifdUkPWK3RHJg4UgLhrdllEL5TsH4o7QtRkVVOf9ao6LzHtpltj98y9hT0pH+0TuVcZYfza3bLKoNcB7/8M6wcH46kP/4yqqlK94W9fhlCmvdwVs28aH36CsIEXQ0w7PTsKns/NZ2JsUHMJCofSR+nJMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979593; c=relaxed/simple; bh=tMCs17sY5bbPnvle/eomw45/1sQVLJD085rrA9fStgU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bQsqYS8RQwzPhAFZjFykfOeG7X7a0AWzIz5tAY8VtMjVwn64n9vZUKY1ENecGdCpvw8zXihGbhy9oUS0ju/944+s2qo5l7hVs0cvG5QA9K9S9yJRhtqfWcALyd1oyoXA2r0qpkjzeZDnU21USOIpRFLtDynwMNa1DIrgyCNLIS8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Pb6BVlWv; arc=none smtp.client-ip=209.85.160.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Pb6BVlWv" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-471f88518c8so16752191cf.0; Wed, 19 Feb 2025 07:39:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979591; x=1740584391; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=sC5BbHzn6YW2uGJuRqqxqybW7SYKYinnzIpochKMS8c=; b=Pb6BVlWvP2adWBwEgrR5jGA0rrl47SuEV7cxxntBm4HRB3YZFaMmBNs+GfyhDgECo3 QeqmK+Z8p0eYBQSOM3O80DkKF+lQLvsDi1DZrv5Srf4ru+AF+uWdVvtEKMzGNaUcS9kj /w3LyD3q6sXVWBm2kzKuZczLS29znTwhbjTldhRIMeiqKv8VuuYTDSW1JyjkSDdMViwe sEfkt6Gq1dsZYJ1o6HC/NW6cf6Vw1t3YRnb8kxH05kqhE1Km6gU1a8vr21vSkCc1X1tR 06mzO8PQhR/GFJiLhMEfOvr3yQe2wdRXm2QRHz+gaSafMWYMbC5nji+jIjJRCJMrCkcX Hvyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979591; x=1740584391; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sC5BbHzn6YW2uGJuRqqxqybW7SYKYinnzIpochKMS8c=; b=tq90tID6Iev1IoeqVa/s2sexpBiK/8Zi9JJ5mqiuc/to3I0cxpZuzByfzM4aiGa0fs OsOhWr6A9TpQd0FJG/ZCwHL6R9B6d+PZZyj+76VVAysH53B99HuUUXGSADFBgD7ThQ+M C5J1du+DZJFlzS0AMn867uqQAhhQf569hcJyI+ELmqCSMYUxJPYKiukNmzy9zo7kuHux biaYFqZ/5lGxeuL7u4WzQIgsC3Ll3T8Cb3Zf1C8C/ZtTOy2ga06O7VgFvsJrQwSntJhe EPHpKe6rmpuB/xztQAxe9WXXHrv+wENdGAqi2wMOIruUcI2zKfToVAHpopOLBiTMJXEP 0Pnw== X-Forwarded-Encrypted: i=1; AJvYcCUJLUL5YsME7uy2XQ6EA4t1Ztsw0+wYU8/yS/mDfPcu4+kIS40M7MadbJrqCfggsXezWbKpsy07R0k=@vger.kernel.org, AJvYcCVLhkZMtD1y7CPpAQ2k1ro0Mt0VbELpWDFQ2NjwAK93TAD+jpQt5uAHALXl/x5tqBPHQuHSPuDGbi1Kv1hL@vger.kernel.org, AJvYcCVhGGiKR+ZEyY2w1SAywrF4HraVnYlzTPM220Jb7ECMe8WU/2XR0MQwIBiC6vqsgkZwXRxkMh9807URrmm0ZtAc2ovj@vger.kernel.org, AJvYcCWeQv3q9DlUq+yGQEQqLAdIKU3N/hSqHQYEI52Gtfj1uns2addGtKUb1l/PdADh6taHyg2sWOucMsFXfVYBru69@vger.kernel.org X-Gm-Message-State: AOJu0YwjuT8hk6/6pzXOvYA52FNKhHP6uNjmV5SUiI9K42BVjg1x1QT0 cHTAha2esYLbTTsd088UGsb/V486bK0A77ePMSZGq+CV+a1SMHYv X-Gm-Gg: ASbGnctW2kLf+6WZ93fwATkFt1z0yjEgnMgawQjexrXmFxrZ4ryef0B6lRiRp5qGApO LDJX2iBFY5rNiJcES/eWSHQDq1AYihtbqF19fh7D0igt9hS5F6tzbIIHG+HlkBRcFJWqkYnNcsv wW/WQ/G8+83yvdYmVwTf19lK1tbhwWQzNObYcisEAWBNiKKTzYi6VJbeFVH5ISESWTVwMB/r4Hl KrOFqEnFKBZNd8o2vG0tVzzrkHpVk75M47KKfyGvr1B/KBdpuTf+mno6caAMnp07trrWGkAK0gw WdsP6V5HW9WhWxA9gHVN0+rU3kzmbJmAAnibGcwPCLZeGLAPos1QtibPrSDcvyDNNy9KAkVPY/O Icz58fg== X-Google-Smtp-Source: AGHT+IHOQ8rJgLbOtCxMBXY2CRBZH+xkRfbgJC65UZTMCbSoyhPA8Qt2GrxJ23iijSbZM9KbEk1Eaw== X-Received: by 2002:a05:6214:4002:b0:6d4:254f:1c8e with SMTP id 6a1803df08f44-6e6975bd097mr65389446d6.37.1739979591229; Wed, 19 Feb 2025 07:39:51 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471f69cc6b7sm28952231cf.46.2025.02.19.07.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:39:50 -0800 (PST) Received: from phl-compute-13.internal (phl-compute-13.phl.internal [10.202.2.53]) by mailfauth.phl.internal (Postfix) with ESMTP id 248551200043; Wed, 19 Feb 2025 10:39:50 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-13.internal (MEProxy); Wed, 19 Feb 2025 10:39:50 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeifecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvkedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:49 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH rcu 05/11] rcu: Trace expedited grace-period numbers in hexadecimal Date: Wed, 19 Feb 2025 07:39:32 -0800 Message-Id: <20250219153938.24966-6-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" This commit reformats the expedited grace-period numbers into hexadecimal for easier decoding and comparison. The normal grace-period numbers remain in decimal for the time being. Signed-off-by: Paul E. McKenney Signed-off-by: Boqun Feng --- include/trace/events/rcu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index e81431deaa50..63fd8aa99af7 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h @@ -207,7 +207,7 @@ TRACE_EVENT_RCU(rcu_exp_grace_period, __entry->gpevent = gpevent; ), - TP_printk("%s %ld %s", + TP_printk("%s %#lx %s", __entry->rcuname, __entry->gpseq, __entry->gpevent) ); From patchwork Wed Feb 19 15:39:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866569 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B204E1FFC43; Wed, 19 Feb 2025 15:39:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979597; cv=none; b=nvg0BmZt0K091lAtYQy0uOUoKafz22DhiaSisaHG/lVKTyiNnXCt9ivKJPU9DedfD4iBsbUj5FxE7CuaFvYzUf/iocnyj8U2tDpfl+Kw+w1FXeRvuixrV2R3rgTvYA0RBFeZoRPcq70CeifPNhNmhhSViyIolrsJqDlGUzSBxZc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979597; c=relaxed/simple; bh=dDCvWADub8vz25X0BZtP3Yy9sXvTWzxxML17DcgW9WQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FgcppvWqCr6V8nCd9MaUuto8HuAmBlTC8Vi0vechHC7SIdI1YoWMbcbeuqcMfYiR2v+RVRdVhwtsCTvthuL4zN9NKPzR76kW574tp25Qko8FUxPUwUj6HSodCLGTcfVS0hSxgIM52uQJFfxPx5pXziTf9MeSvCI7CSOklryUEIc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=f2RxTsnz; arc=none smtp.client-ip=209.85.219.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f2RxTsnz" Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6e65be7d86fso9453096d6.1; Wed, 19 Feb 2025 07:39:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979594; x=1740584394; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=Yk2VtTast1e1Qfnv8qhEYqo3m40LX7S6X3YLKhVYCYg=; b=f2RxTsnzn46oHRz5niG8UFJPBTx39pxlet0TWhMqnNQ4zuf9X5t9KX4pG6od5eRzzJ Iq5vq8E/fZHl9lCTeZwAymLalRJCM3OovGoo+tktHQsTPecXzBnduFW0Yy8UPkKjytIU uuguPhqMhg1SqSgxKHG7X5WnfaBOkN6cYk3owNngwSGAbXOfRTHp/B6zWJo8y2GWOBKM bgw2rcRkzx+6VAi+jzfsKIWE/YLA2z7m44/K3hThBuoSJ4Zeru2fWvG9E0CcENPEgfNS en+4kwStTQ6kJXCWfNzhiLVViokgcd+7BXGzAxIQH4WKanFUKVQ6A1xPqxzRPweyyBqr NfYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979594; x=1740584394; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Yk2VtTast1e1Qfnv8qhEYqo3m40LX7S6X3YLKhVYCYg=; b=bD6TWH2iOGO6krkZv2h/ayV+0NTHvFS/b2IGuVyktuOE0U4RYMXoiPWGUtRBMexxpd 1ML/P/1FTWrET2CUfR9K66Cz+Kc+n8LeRYlxOxILbgwkkUioBrsvRHqQcG1Og27PbzZI KrVgA6+DttR2IF3sKF+rROSNlEqKHKLRgP6eKved+6pTBInWr+usnJDe+KoIaL0SfrvQ 6mPZZ9b2p5rMSAobpk3IbSTiQYU4Y2QvHJvd1FyaPvbgtNY/WI/tw4WZ4yGGAHDsEZcY sIj6ph0BCn90g78avANcPUwXPO1V49Ei/Eedi14Wml2JxPJEWjZvMiPKpUkUUK1RAdO/ /mjQ== X-Forwarded-Encrypted: i=1; AJvYcCVM5/AxibyELEcAyq8qvqlXZDYqymPcBnoDSyz23FoubuSmjdcNyvUhBBWwkot3832nlmE0vePkWb+t676COLwqUgXY@vger.kernel.org, AJvYcCVisl2iWbcwjztgyKAhz5MjKCI0UppoOSm8X4ATkWAC2AWBFQGw+XIxl55OyrhjxHEoM7Y7EUW4lpw=@vger.kernel.org, AJvYcCWyZqdCh4DwAhECc1MLot85hyLiZKaq6FWMCXCZZ4VFtizf3PDnx+aF8zsfyye7cjsascNp0TBr5VH5lMMh6UVP@vger.kernel.org, AJvYcCXulqdJnTm35GB4WP+kX+FtcPrmKsVI+Od/mR2C3MBbC5/LojLJyTbCaCuJbBeGBfr5RwZjgfrAoQWXR8ev@vger.kernel.org X-Gm-Message-State: AOJu0YzVuoxWWV6stdIsJcHSlfy8aoRnTSFlBEDFf70MKR4BDpeei2q5 97dLfsoB0g8D6WmsCuTM1qYrEyztG4ppU+EYr1g8OIvflV0t5KRS X-Gm-Gg: ASbGncvbjJSY8hg7+AG5Vdy6sKwOSLaIbMZMu2lv6i35do1qTM1ZetpwZqdpdSmULZj kHxIFLBHnDt5PTHLtiepMQKddmw5fE9Nxvp+rjY/qNzxEmu8vZGJXN8DuZhhVDhp7oXaNklLnfj X7+Z3Z/B13VwqnnXrHdLmP+JxGgKR8CoRzUXJKIdDZleEwMG0AZq3jjRjRT6CoSfSWSBfGXN0SR XTcbzIzWA6lG9QheyliskiAUI4CLxOI/R91miqqpnydja17LiEqTJNv4OIbGTsU3byxfCzEczAT 7bhCNMuHHBRBKGCZC8l6qgbDsGke/vfADsWPM6V2c2TTKHNbO7MC2+oYOMZDWdPE080o3ZF5BCf W6lozsA== X-Google-Smtp-Source: AGHT+IGlAQQcARDOhRF4J4fxczgN4lJdTcz+w5fjOOSEpzAt8XbbLEHDj5VJ2wA/BKyp9zk8kG27og== X-Received: by 2002:a05:6214:21a9:b0:6e6:646d:7550 with SMTP id 6a1803df08f44-6e6972dd3c1mr70432026d6.19.1739979594596; Wed, 19 Feb 2025 07:39:54 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6e65daffd71sm75693076d6.101.2025.02.19.07.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:39:54 -0800 (PST) Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id 82B571200043; Wed, 19 Feb 2025 10:39:53 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Wed, 19 Feb 2025 10:39:53 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeigecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvkedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:52 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH rcu 07/11] rcutorture: Make cur_ops->format_gp_seqs take buffer length Date: Wed, 19 Feb 2025 07:39:34 -0800 Message-Id: <20250219153938.24966-8-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" The Tree and Tiny implementations of rcutorture_format_gp_seqs() use hard-coded constants for the length of the buffer that they format into. This is of course an accident waiting to happen, so this commit therefore makes them take a length argument. The rcutorture calling code uses ARRAY_SIZE() to safely compute this new argument. Signed-off-by: Paul E. McKenney Signed-off-by: Boqun Feng --- kernel/rcu/rcu.h | 2 +- kernel/rcu/rcutorture.c | 8 +++++--- kernel/rcu/tiny.c | 4 ++-- kernel/rcu/tree.c | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index 705fcbe6f500..82d8b494cc30 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@ -591,7 +591,7 @@ void do_trace_rcu_torture_read(const char *rcutorturename, static inline void rcu_gp_set_torture_wait(int duration) { } #endif unsigned long long rcutorture_gather_gp_seqs(void); -void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp); +void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp, size_t len); #ifdef CONFIG_TINY_SRCU diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 1fdadc1df9ad..9c9a349b9c7f 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -411,7 +411,7 @@ struct rcu_torture_ops { void (*gp_slow_unregister)(atomic_t *rgssp); bool (*reader_blocked)(void); unsigned long long (*gather_gp_seqs)(void); - void (*format_gp_seqs)(unsigned long long seqs, char *cp); + void (*format_gp_seqs)(unsigned long long seqs, char *cp, size_t len); long cbflood_max; int irq_capable; int can_boost; @@ -3688,8 +3688,10 @@ rcu_torture_cleanup(void) char buf2[20+1]; char sepchar = '-'; - cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq, buf1); - cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq_end, buf2); + cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq, + buf1, ARRAY_SIZE(buf1)); + cur_ops->format_gp_seqs(err_segs[i].rt_gp_seq_end, + buf2, ARRAY_SIZE(buf2)); if (err_segs[i].rt_gp_seq == err_segs[i].rt_gp_seq_end) { if (buf2[0]) { for (j = 0; buf2[j]; j++) diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c index 8cbec3401184..8a52aca686a5 100644 --- a/kernel/rcu/tiny.c +++ b/kernel/rcu/tiny.c @@ -264,9 +264,9 @@ unsigned long long rcutorture_gather_gp_seqs(void) } EXPORT_SYMBOL_GPL(rcutorture_gather_gp_seqs); -void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp) +void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp, size_t len) { - snprintf(cp, 8, "g%04llx", seqs & 0xffffULL); + snprintf(cp, len, "g%04llx", seqs & 0xffffULL); } EXPORT_SYMBOL_GPL(rcutorture_format_gp_seqs); #endif diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 83cba3d2cc48..bb061e5870c3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -548,13 +548,13 @@ unsigned long long rcutorture_gather_gp_seqs(void) EXPORT_SYMBOL_GPL(rcutorture_gather_gp_seqs); /* Format grace-period sequence numbers for rcutorture diagnostics. */ -void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp) +void rcutorture_format_gp_seqs(unsigned long long seqs, char *cp, size_t len) { unsigned int egp = (seqs >> 16) & 0xffffffULL; unsigned int ggp = (seqs >> 40) & 0xffffULL; unsigned int pgp = seqs & 0xffffULL; - snprintf(cp, 20, "g%04x:e%06x:p%04x", ggp, egp, pgp); + snprintf(cp, len, "g%04x:e%06x:p%04x", ggp, egp, pgp); } EXPORT_SYMBOL_GPL(rcutorture_format_gp_seqs); From patchwork Wed Feb 19 15:39:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866568 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80C2720CCC3; Wed, 19 Feb 2025 15:39:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979601; cv=none; b=gQzxIbBfhRiij7PeCpQS32liZhlstSvhgu1DHD9REvqNcCsnz5ZpInnEb5aVBPqnzyC1QpYdxwMu+OrM+9t3aP4hdscqtCpjmpQFF8MeyNlxkgoqBuKd1yt24jNJGEY3nZZg86wmmqS6cHC7jSUi5nhHK4xaEO9bZ/u+5c/ALPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979601; c=relaxed/simple; bh=Sxbh7eyLhcLoR0do4P0OJfKFlD3IeVj7tyXLSdMhHaM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FQF15gGRq4E/H6EBBoDv/7fLTMubt/Rie4ASnIMnz+iKg+YHsGbXjPpWfFU5TCELGIsjSrgXYbUNItU1pKii2ofQdggnKJuXMVjgdoo4gGjviEIXWI0zVaN3NZD4mhM2SCIG0Ur8S4emmVbaNBdOwN1FHgv/PxNEqT74hDneTdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ktjY2zhE; arc=none smtp.client-ip=209.85.160.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ktjY2zhE" Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-471ede4b8e5so17780681cf.2; Wed, 19 Feb 2025 07:39:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979598; x=1740584398; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=DXUUfkV9OQ+11WK+rSlNV17A2B0TJ7HDdrMLEvcLdnU=; b=ktjY2zhE4h9Ls1bCpc/lDAGQWVTvBsN8OlwuBJAEJh2FoaM1gYA2f2ndStWnm1/MRw ckgTU27GK2di+6JmuX5y9wtrrOeJy9wGsl8gH94CJNOh7/tw7vCNf0CKGZp8HIuzPPbI LeAxxJ/iITXRILUD4FlDrMV8bXbdr4/bJSYwTpnCZ+T0I2jc9BpmWNDHRIb+HKvVouZQ 6+3D1pXTEhPfYsANafUuVhyr10fopPUsoanD8h20T8WK7AUsIGfeZap4cIIui9OzBK6I PsFeHyvZZ1uiNUk4XIYEO9OiderjJ0ZU9KDrx/0vseK9BhG7BKA+vike8iRNJLD+zrLL lgZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979598; x=1740584398; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DXUUfkV9OQ+11WK+rSlNV17A2B0TJ7HDdrMLEvcLdnU=; b=lDrInSVywxXUheYawUPBK7tPZuiMsYdP1W5xz9xggqqRCjkvM0/HJHvFOdcjMH1kRd JuMYQ14OMgelsPRtG2vNw+2nyvrcaT6Gx79lTLy2biNlkWG9FFHr6RqUtF+Gg5FL+Z3M 9UmevSOOGpIz7LYYZnIic08qZZwQCNcZjFhFgUT2xtzdTC+hzqazXw5kkUjf+MtdURmY 5REB4ch6paVsFhnRnGVkP1Shxi6zwOKmx8eIehnZSw/RwMQpPEm1LSld6sZ+iRbpvBM3 PxTiuM5k1Lz256x48IFMmKGH/Z+MMNeJ1eexdXYOyxdeHxDww/2uvIeOwcpXXEaCHjJ8 t/hA== X-Forwarded-Encrypted: i=1; AJvYcCUGrGMn4wWIPUJDtDb6aWQ7gIgSMEybE5c2FMYTuCezXUkJZseE/LNdltBqOfYm0fzNSD1hCY8PdXGqwEvuOrBY@vger.kernel.org, AJvYcCUIW7ug10SDaXiOyVq+k/2sjivLbiZe5cUzwn5pxxxGndf1GaPhZSiX7DusjGisWTeZjX8fau2Vx5/jz9ud@vger.kernel.org, AJvYcCV4qzKxqIXQQqefCSuffitpv/lo0hrkzKh8UgPopd2lTQs0pMlPK4BqTMVskwk1wzdmBslJrjnPfaA=@vger.kernel.org, AJvYcCX/imZFjIE0DdxmlLm3LdfpKE3r74Yb56LG6/+JIq2NdLBg6xdAqRiMJDYFlAkjvKQVLwZKp5zoiBqdIOMYEIn9/zXV@vger.kernel.org X-Gm-Message-State: AOJu0YzCT5JzKnwcjiQaTXBitvijnMiF+unkXC2OmNv2a5mDTZ4EPj4v oQXeK44wbHHEBo5vQT+c0JrCWZgl7DB2T3Y94pMQKtRNX1zw1UsR X-Gm-Gg: ASbGncv19FxFMd/ManjPIyaIyFI0aTxb/2HiyciOmIr+zQ3P8X5BUYrWjQcnvyqq4BY m2cl+1txndoa2crKhY43Dgm46VubdZiW0I9XTS/+YE5gLDe9w5BwUMJJ+aKB6oxrOakRF9cg5sr dbCcoekLV1OCNlGOuOjzHJolT641tr07pySSiq+kHl9UQrB0TTZA9yVSLumlWKISnPlGjeoEA8s tpACkjnfDrmabMj8M4aepwr9QH0+szcUf+5hA+b/u7bAFZf/afO1RbG12ZfuMd7Qy/5yTQV3U8J prn3DUcCxDWspnPFe2bRwm4Uu3k+MSM3NKDReNtJrFEE4+nrMS62h4HDfrN2yUghHFn7SRqsuih Md2o9PQ== X-Google-Smtp-Source: AGHT+IEKVGX1xe4HQTxqbHjyHiTEUAiHRxEucuEWlFLTF3zsPBgPXOjlAW6jCHbtS39NSIH0H2tY4w== X-Received: by 2002:a05:622a:14a:b0:471:d14e:ed28 with SMTP id d75a77b69052e-4720825eb5bmr58844001cf.4.1739979598048; Wed, 19 Feb 2025 07:39:58 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-471f52e39c7sm29970201cf.3.2025.02.19.07.39.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:39:57 -0800 (PST) Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfauth.phl.internal (Postfix) with ESMTP id DBDE41200043; Wed, 19 Feb 2025 10:39:56 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Wed, 19 Feb 2025 10:39:56 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeigecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgepvdenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvkedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:56 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH rcu 09/11] rcutorture: Complain when invalid SRCU reader_flavor is specified Date: Wed, 19 Feb 2025 07:39:36 -0800 Message-Id: <20250219153938.24966-10-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" Currently, rcutorture ignores reader_flavor bits that are not in the SRCU_READ_FLAVOR_ALL bitmask, which could confuse rcutorture users into believing buggy patches had been fully tested. This commit therefore produces a splat in this case. Signed-off-by: Paul E. McKenney Signed-off-by: Boqun Feng --- kernel/rcu/rcutorture.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 9c9a349b9c7f..be4e3c6b912f 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -689,6 +689,8 @@ static int srcu_torture_read_lock(void) int idx; int ret = 0; + WARN_ON_ONCE(reader_flavor & ~SRCU_READ_FLAVOR_ALL); + if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || !(reader_flavor & SRCU_READ_FLAVOR_ALL)) { idx = srcu_read_lock(srcu_ctlp); WARN_ON_ONCE(idx & ~0x1); From patchwork Wed Feb 19 15:39:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 866567 Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68A5820FA98; Wed, 19 Feb 2025 15:40:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979604; cv=none; b=QdcIKM0TmpJJxfO/uXdpJUgd0uVIK/jdzqUBGpbaZz+DoGYE3vYdYfCHzuA+UnzhYgcAqB+9SSx9bLda682xClDRthec9ESw8MVWeUAFKjmqSwwpodx5YmIWlfyiEOQQujXjsKMv89G50i6D06JwLrCUKKpHmT78OSHPd/J8wlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739979604; c=relaxed/simple; bh=D4UAwGRV/rLGXDfFkq1T0zDIPu8VapGkWiAaTWgA+wQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Lag333xMu1HpUvEF6vXRkG881JJxYYh0/lPgWttASMJNmj7J3cfkMYei32V/lVN7BoeEVxLE9GGpV9XC9+985GzI56Oo/dxFMWR96tQw15IwgXUpjR1EHHMkEH8cvQNrKzcwpnYMXCG1KqAgPqPR40beTAUxeIjuZyqUggkiQTo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MWRBiEiG; arc=none smtp.client-ip=209.85.219.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MWRBiEiG" Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6e65e0a3f7eso30644656d6.0; Wed, 19 Feb 2025 07:40:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739979601; x=1740584401; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:from:to:cc:subject :date:message-id:reply-to; bh=g49jKhUh2JPVCZHODS61I1a/EiyeOU7HVFqD+UrZfhs=; b=MWRBiEiGyhXfTs/Gd5F1c+SgB3OscvNAAdh1A8LU3AOyTJfhAXlNwbEWEoL7tw4lnN W/YE+XiEV+kje4PaDFDKs/8qq0TMyd9ofgC/jbA4qByqs+3C/5TTfX/9EkyDOBsL4tvy /8IrCD5YX8+Ka1TTyI0O20VVlrDqUhML3Kx7eMoJyduFu0O5OcKEnesiqiGvSbi33fVY GXHB3JXwtyRYwzHC+vEWr0oEBFinp2mAWS9k+pwGxTth94eN6xp7g1Oja/JAMeZISy3Y JsNpCYE14ld87i6M8C7h8qqyNKebXWdJXZNh8TmesMaNkQN1WSA68Lk0LZefJZI1978l ZghA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739979601; x=1740584401; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:feedback-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=g49jKhUh2JPVCZHODS61I1a/EiyeOU7HVFqD+UrZfhs=; b=EWw9GV2nUO922c5Wi82L58Ao9RztQW81v6BuQzA4JJHtVyoOVLfmcfUzelgwiIbKun QH+C/85xXFmjlvk2gyUWsm869exGre8Yu3OECvbFyGBJtaN/UGqCJKHg7/y2fsyCmv67 OTeowqR0VtQlXWdUTh2sIgr7te5sQCGng0F0JIDEe0P6UWEr+e0R9y6NYJ/YMvuMMDwj m9hEqmD96mPCYtmjDCmzR6IZxuDHhB1Y4qZEhEfr7JnrP3H0QjsZ974pX30Vo320VGbb njR81WoKb1BT7aw9BPWwfv812QaVeCiYSQhl4sQ+dPNa07bgczGTmyYeNql2m5pRN8He As+Q== X-Forwarded-Encrypted: i=1; AJvYcCU2LnrF5ax5aW5eTviqGPxKyfFqwwgyIkNDXzQplwW1rNmNx4aUl9sALi8QA7SnzZSMa8jVTs/6UjOdedvv@vger.kernel.org, AJvYcCVYO/UBxwBc9q1M5HUGtK5k/Puu1c/NJkwDMJUW5WIF8vg2iw+Ns1YW1qohsrkQtHpdZCHqsfVAuUd6jv8mNuVn@vger.kernel.org, AJvYcCW4WnbWdayRlLAeABE05BSzuiAQ+sEsacXMtM1+4KK4nzsl2ns2tLClxPdDqTCskOmMnYUSmli2UE2Mk/bUTBjN4j1q@vger.kernel.org, AJvYcCXMz7vuuYeYeS+aor8GRipOJQttEEP+fqnLTQ165w26ZMYE9mzB8mABhiznMZc4O/JlIhTbfwsQ5E8=@vger.kernel.org X-Gm-Message-State: AOJu0YyiQv/cKXkVQDE9Wc+qWflDL78PJuEuWih9RJvJkRrJ/JQEu0mU M10eLIkQmdLlgDHo4kJ/Hj22p1bC6XfC6guvlQWB38ZUUA3hlFIP X-Gm-Gg: ASbGncs07XcGHIHtIe1O3IJRux8WLth8YsFV/dhuEiLIi9nX+Kp/oAyWAm0Vq+EH84c nb40oUO2AmLUkwZoifM+sIt/vmL33u1zlhn+COS/89+jDF+nLUOnjvuLlRZpWQHuhI7lcpfVpJl l9WqZlSe4GpxoZWsT2DOGoSGpDp9eoWHkIeloseJ/QbM/VPhrJ00oHKvDqjddUFUnmiBlEPJpc+ A99WkW0QW6MVhoZjSS4r1BLgrYEyBjIXI2AVpMOArsyWFmC9bx8byt5qPR130aAT0rZxsYWvNU4 e7QTadt/r6v4wa2bucSuLlsOqyD/EI8GWKEbfN2VR6NwJtb/r0Mw9AHsjFTq474KZGO4bv+Fylf W8J7cJg== X-Google-Smtp-Source: AGHT+IGKJnxieMFJEOFo52+HKtndsK/DmeEtF5DMpKHp0PX0Qx4rfm4qgOAj21WgLMdNp0LJ8LEQ9Q== X-Received: by 2002:a05:6214:2269:b0:6e1:c77d:db8f with SMTP id 6a1803df08f44-6e6975bd12emr39188566d6.41.1739979601245; Wed, 19 Feb 2025 07:40:01 -0800 (PST) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6e65db006efsm75685036d6.106.2025.02.19.07.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Feb 2025 07:40:00 -0800 (PST) Received: from phl-compute-07.internal (phl-compute-07.phl.internal [10.202.2.47]) by mailfauth.phl.internal (Postfix) with ESMTP id 3BB3D1200043; Wed, 19 Feb 2025 10:40:00 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-07.internal (MEProxy); Wed, 19 Feb 2025 10:40:00 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeigeeifecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddt necuhfhrohhmpeeuohhquhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepgeeljeeitdehvdehgefgjeevfeejjeekgfev ffeiueejhfeuiefggeeuheeggefgnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrg hmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghl ihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepgh hmrghilhdrtghomhesfhhigihmvgdrnhgrmhgvpdhnsggprhgtphhtthhopedvkedpmhho uggvpehsmhhtphhouhhtpdhrtghpthhtoheprhgtuhesvhhgvghrrdhkvghrnhgvlhdroh hrghdprhgtphhtthhopegtohhrsggvtheslhifnhdrnhgvthdprhgtphhtthhopehrohhs thgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepmhhhihhrrghmrghtsehkvg hrnhgvlhdrohhrghdprhgtphhtthhopehmrghthhhivghurdguvghsnhhohigvrhhssegv fhhfihgtihhoshdrtghomhdprhgtphhtthhopehprghulhhmtghksehkvghrnhgvlhdroh hrghdprhgtphhtthhopehfrhgvuggvrhhitgeskhgvrhhnvghlrdhorhhgpdhrtghpthht ohepnhgvvghrrghjrdhuphgrughhhigrhieskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh epjhhovghlsehjohgvlhhfvghrnhgrnhguvghsrdhorhhg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 Feb 2025 10:39:59 -0500 (EST) From: Boqun Feng To: rcu@vger.kernel.org Cc: Jonathan Corbet , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Lai Jiangshan , Zqiang , Davidlohr Bueso , Shuah Khan , Andrew Morton , Thomas Huth , "Borislav Petkov (AMD)" , Ard Biesheuvel , Greg Kroah-Hartman , Josh Poimboeuf , Yury Norov , Valentin Schneider , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH rcu 11/11] torture: Make SRCU lockdep testing use srcu_read_lock_nmisafe() Date: Wed, 19 Feb 2025 07:39:38 -0800 Message-Id: <20250219153938.24966-12-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250219153938.24966-1-boqun.feng@gmail.com> References: <20250219153938.24966-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: "Paul E. McKenney" Recent experience shows that the srcu_read_lock_nmisafe() and srcu_read_unlock_nmisafe() functions are not sufficiently tested. This commit therefore causes the torture.sh script's SRCU lockdep testing to use these two functions. This will cause these two functions to be regularly tested by several developers (myself included) who use torture.sh as an RCU acceptance test. Signed-off-by: Paul E. McKenney Signed-off-by: Boqun Feng --- tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh index 2e63ef009d59..2db12c5cad9c 100755 --- a/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh +++ b/tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh @@ -49,7 +49,7 @@ do do err= val=$((d*1000+t*10+c)) - tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s --configs "SRCU-P" --bootargs "rcutorture.test_srcu_lockdep=$val" --trust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1 + tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --duration 5s --configs "SRCU-P" --kconfig "CONFIG_FORCE_NEED_SRCU_NMI_SAFE=y" --bootargs "rcutorture.test_srcu_lockdep=$val rcutorture.reader_flavor=0x2" --trust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1 ret=$? mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val" if test "$d" -ne 0 && test "$ret" -eq 0