From nobody Tue Dec 16 22:55:05 2025 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (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 7802B2248BF; Tue, 6 May 2025 04:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507534; cv=none; b=sWfSwewwNFnIIwf7BcuTxEXPfve3O1Z0xPnjEzb7k8/p3jIvksPZdETu+/CRLoNAOq0YySkJMWAhuDrZhY7kW9bq2bGn/QkpaM6gcdBsVzJj0TvNHLdnYjdYk3qf3xHAiQqNNrDMUDv6Ucn6mXg+7sZ1AclqI/0S+feJWJQ3RnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507534; c=relaxed/simple; bh=lEdzcKED8dxibbdj4USCma8xOMOqMEjtizIV39k44XQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NbSEyhuToavrgkDKMuaIjN8IY02yFgSiDmlUi6d8wlIxkvtknA013rCm3VIxR9bfs5JldEv4Y/KQC2nU7CDd6GBxmEvqxXKg+r/qAIefHFF0AqO14fOI2TbhXGTUfpBNFkLLKBwVekGMldsRkSR647hb+dhyxsX1KseZgC728AE= 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=KWv6kmB5; arc=none smtp.client-ip=209.85.219.52 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="KWv6kmB5" Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-6f53c54df75so1653796d6.3; Mon, 05 May 2025 21:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746507531; x=1747112331; 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=7bZLeeq5Dz3WES+/TzaEncqzq5j376rFHhQoBFa1jdI=; b=KWv6kmB5TKXYUDHPkoyzZDajpyk/rsL1aFCf3HRqoT/X+Htq49ha5HZ0EitmCIhNgi Wpxw3wXDZtDZE1EWWl4thHmfZsH5EfQNuiJU+ZMs6iJpr1yA9FZAecUHt9Z0bn81f1sS T1osgvhEWXJj1qBHi2OCeH78dpYBjQFq+uiulAgS1fevvwvPJ0P16UCGmWbh571X9UH6 T0zpwg1kcIcFx7rLalAEtrvAyZJELvntlELwyjn4QTtJCA+Zb4zokz9aqEKZkUrPgtVT SyypqZ0V4qsoMV2EQSG4M0AwUfznWXPKazZNPJAKPupdZKbQKbh3TOLWP8qGN+B3GYxg i/5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746507531; x=1747112331; 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=7bZLeeq5Dz3WES+/TzaEncqzq5j376rFHhQoBFa1jdI=; b=kQctaKkG0auCtLFvaF8a90uYQSEJotvCIo/KH+TwNfoTcWkH5cU2vK1ivOvLXVP0Z2 l4rMkf635PiNYkp6QFzHSYx3SCvpom+YjUWA/HWjDHVVleF2BKYh8bhyONJJtG1BrdKw BUI6J6WRjBqijiFIghNsPAbAJoIfQdPhVyMjA23XfQ0C5yaqk7naGX2lmXVb0kk3CHKy 7+JRuQojB8hadOL5cTtZOkEcSTEWjdsaF3s5CYeYbotIlGhTH434P+JVj5SqgINp9Dh5 cOE3GzIAxIO2ex5spEcBTkraZ8qZNInvum3xOOUdSFOZvDj83yLQKCZbOtgC3OrLfShd /lHQ== X-Forwarded-Encrypted: i=1; AJvYcCVDcGTaTzTYcPZ26ejujFOuVW2SWFZ3GDOPkpZ339D0g/kiv1/gPpTEwDNnlgx8UOEHUmHUbNgr/yM8maI=@vger.kernel.org, AJvYcCWg+y6KCfLNkCldQhRZ3aEHg6qgYQF18rQKpaWkteZ5PlvyEviO5q0prUzU/mdfntwCGO/aEwYfMBjlhmz8feE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4RSeyrr1bwn9W7McDRlvo92Vv7UlNxz+mZtC1dKhlbb9Qp83y hSj/zmBNLLN6JTUoUnWDjdn/8613q4dJ1MV2yKSjK3oufGTFy454 X-Gm-Gg: ASbGncsKHvBKXsdhmbHnyRo5kxE4I5JiAG53LSInK9ySfSzCfZELNHXZ+9JQsiBWM8b tiQfQTj7qc69J2TgCXoOu7IzKts4qC+Kj9sKd19ZuFfek81plTkRil/inQMHvgXcVi6itXS4/BC nJ2FdRlYCWhx8zjhFgqYM0U778V0nOymfwAynoXw2xvuOyxYxPRXs2Ih9twLNdcZ76gVKQQS8tD aiSkstdoE178qam2x1ytF4TDL1C85fg2BeX9agNDJ1CwvwDGP42l/f6Xz5EXxsY/DPPnIJ10WOi EMIuCuu3+NFlxSKv/prCuSx4YX/oQkAK4pqJfKQpek7Ersomw0gNACTTtZekaM7EZJ5zRII9e8g FPdZksNYV3ZXZyYnbi9jUPsVQXKE+fAM= X-Google-Smtp-Source: AGHT+IEjhbTiYOsmtBCisQyZq1Vbn3IcdJP3tHhEgzvRz0gIG9zkwjhO/vqY8tx/UqKV8YNaJ3sFqA== X-Received: by 2002:a05:6214:5016:b0:6e8:f3ec:5406 with SMTP id 6a1803df08f44-6f5353e889fmr43075446d6.19.1746507531269; Mon, 05 May 2025 21:58:51 -0700 (PDT) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f50f49c965sm65061526d6.119.2025.05.05.21.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 21:58:50 -0700 (PDT) Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id E5A421200066; Tue, 6 May 2025 00:58:49 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Tue, 06 May 2025 00:58:49 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeeftdekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt tdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpeekteetjeegudeikedujeefvddvtdeigfei ffffleejfeeiheeiffefvdeffffgteenucffohhmrghinhepghhithhhuhgsrdgtohhmpd hkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpegsohhquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqd eiledvgeehtdeigedqudejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhl rdgtohhmsehfihigmhgvrdhnrghmvgdpnhgspghrtghpthhtohepfeeipdhmohguvgepsh hmthhpohhuthdprhgtphhtthhopehmihhnghhosehkvghrnhgvlhdrohhrghdprhgtphht thhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopehmihhngh hosehrvgguhhgrthdrtghomhdprhgtphhtthhopehjuhhrihdrlhgvlhhlihesrhgvughh rghtrdgtohhmpdhrtghpthhtohepvhhinhgtvghnthdrghhuihhtthhotheslhhinhgrrh hordhorhhgpdhrtghpthhtohepughivghtmhgrrhdrvghgghgvmhgrnhhnsegrrhhmrdgt ohhmpdhrtghpthhtoheprhhoshhtvgguthesghhoohgumhhishdrohhrghdprhgtphhtth hopegsshgvghgrlhhlsehgohhoghhlvgdrtghomhdprhgtphhtthhopehmghhorhhmrghn sehsuhhsvgdruggv X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 6 May 2025 00:58:49 -0400 (EDT) From: Boqun Feng To: Ingo Molnar , Peter Zijlstra Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , FUJITA Tomonori , Tamir Duberstein , Kunwu Chan , Mitchell Levy , Martin Rodriguez Reboredo , Borys Tyran , Christian Brauner , Panagiotis Foliadis , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, Grace Deng Subject: [PATCH 1/5] rust: sync: Mark CondVar::notify_*() inline Date: Mon, 5 May 2025 21:58:39 -0700 Message-Id: <20250506045843.51258-2-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506045843.51258-1-boqun.feng@gmail.com> References: <20250506045843.51258-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kunwu Chan When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=3Darm64, the following symbols are generated: $nm vmlinux | grep ' _R'.*CondVar | rustfilt ... T ::notify_all ... T ::notify_one ... T ::notify_sync ... These notify_*() symbols are trivial wrappers around the C functions __wake_up() and __wake_up_sync(). It doesn't make sense to go through a trivial wrapper for these functions, so mark them inline. [boqun: Reword the commit title for consistency and reformat the commit log.] Suggested-by: Alice Ryhl Link: https://github.com/Rust-for-Linux/linux/issues/1145 Co-developed-by: Grace Deng Signed-off-by: Grace Deng Signed-off-by: Kunwu Chan Reviewed-by: Benno Lossin Reviewed-by: Alice Ryhl Signed-off-by: Boqun Feng Link: https://lore.kernel.org/r/20250324061835.1693125-1-kunwu.chan@linux.d= ev --- rust/kernel/sync/condvar.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rust/kernel/sync/condvar.rs b/rust/kernel/sync/condvar.rs index caebf03f553b..c6ec64295c9f 100644 --- a/rust/kernel/sync/condvar.rs +++ b/rust/kernel/sync/condvar.rs @@ -216,6 +216,7 @@ fn notify(&self, count: c_int) { /// This method behaves like `notify_one`, except that it hints to the= scheduler that the /// current thread is about to go to sleep, so it should schedule the = target thread on the same /// CPU. + #[inline] pub fn notify_sync(&self) { // SAFETY: `wait_queue_head` points to valid memory. unsafe { bindings::__wake_up_sync(self.wait_queue_head.get(), TASK= _NORMAL) }; @@ -225,6 +226,7 @@ pub fn notify_sync(&self) { /// /// This is not 'sticky' in the sense that if no thread is waiting, th= e notification is lost /// completely (as opposed to automatically waking up the next waiter). + #[inline] pub fn notify_one(&self) { self.notify(1); } @@ -233,6 +235,7 @@ pub fn notify_one(&self) { /// /// This is not 'sticky' in the sense that if no thread is waiting, th= e notification is lost /// completely (as opposed to automatically waking up the next waiter). + #[inline] pub fn notify_all(&self) { self.notify(0); } --=20 2.39.5 (Apple Git-154) From nobody Tue Dec 16 22:55:05 2025 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.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 0BF96223DF8; Tue, 6 May 2025 04:58:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507535; cv=none; b=fB9pLthdYaffh/ot68NECLyYhFhPb8ccJH2cNNDBaq3dOT6XCAnve/VjSz9kwOEdqHumPUbDz4eavDCEDrEesau+J/HdcDu4E2/PucrjwnTHajfCxPm9rjoVF4rEEbh0s5r+GEa03IAQ2ZKhEi2IXPsJfZdRotiUosH2zAH7bzk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507535; c=relaxed/simple; bh=DZPx48zTDYNX5AKa48yQp9oTWkNFvmRP5adzWyGYmmQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=de0Cd2TVSwXS/OvZ+u1CAPzEEt+P/pm6PBq7pUp3Fpp3tlkmx8IH3d3brL6awTLeUagjRAx1SDUPNYUACVLLoOWQfYOJMPzt2v6vqLpVl6cfa0azLFWWsenCzFNFOEXL4F/yYMKy+Id8cyN9w2On+BHwIGyFQn8N7U1DxCVvuaU= 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=ET++4/El; arc=none smtp.client-ip=209.85.222.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="ET++4/El" Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-7c9376c4bddso658810485a.3; Mon, 05 May 2025 21:58:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746507533; x=1747112333; 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=x0uhFJxbTknYVv8H2dzluonrWfElV8YvZk9w6Cc8W4w=; b=ET++4/ElitJnpwQQUDzIrIeTzZO5cTAAeq5RZfOFq9rEJ2tR0aDuo0mZgetH75a6uz GSYGVq282SHWF357aZhsNQf4HcCls0PjDZGrAbaSm8R3aTx82yscV/tzv3sklFdnqcbs u+bJdY9Xs8zy4kTulkqgovK3JpcY3E8UINMoQAUXKGK02AKauGpl/GfHk5An+FG3YdmX YCAvuGCRV5IcgLwoMLXdymO16ecppneXgvotL1t4JquVpz8XwB1XuGhbLr0ZWsjDbVNx pkofT7ET+OAyelPgDHtvhcpq8YvYeYqwt7ShtDeNBM+PYkkaQIsth16GcqqQEi1c5I6y H0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746507533; x=1747112333; 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=x0uhFJxbTknYVv8H2dzluonrWfElV8YvZk9w6Cc8W4w=; b=kfK2KWhBQZVmxcrGMUzLhgI20wncnPffH1ZUZhoNzTVxJW9WI1v+k4JCd1XeLCHkjP Iuxch9LKy/sVsoMFc5S+Vcz3i2bBnRSYDxbEAS8NL5Zm2+m0k6fNS6J+6BxceG7Fg/fN dyigSYg5gE+Y7n1Vi8YTnQEQigZhgDnVbznBqOZ1MeIGwPa+luQrenmVerZf5+agWNlR OthffKWsPDtpW9ythVSQ5H6zDtEjZJ1Pu9UZcBQn6sT7yBaemwC4Zoy3HtrwD+ym7+ab bZVLRSblmcJ0LIYwas8aPZFKtzgtBfbT+4hYXBPSaE8Y8++3atzT4gRs2gr1LmBYxjnR yOZg== X-Forwarded-Encrypted: i=1; AJvYcCVJQP0EOfjaB2HY4oAHcHioQG6EC3f8r4+/1hA+yco7gXFupOumkCjt8RWQ8RvrPuF/S5kRsHuzySILOMI=@vger.kernel.org, AJvYcCW03cB1l990Z+grdA5j2N/XmUid1m2RUaO6QR2ve8bh2vkcZyi7RlksNgFtSY/M92pYYFgWqbUmqnPGsNBIqYw=@vger.kernel.org X-Gm-Message-State: AOJu0YzcZxjUXOiWpTtdsFOQ7bBj+S11SFm6eW6Cl+1DngHWBBxALnuj vJXENCcU2GNuPpbEEOiGpUGX+uV0LvJx26H6NbdsQ8EkZHqUpchm X-Gm-Gg: ASbGncvav558hLwFIDKwJQHu9Y3GKAOzMF/ZgdcPZu7S8/tHEOJio/hoytpFRFCfnKP Qg+3kR+CBif4O9F9e5Ckx0tJt49O1cb0bq5wEflJWZ6vPV15siZQTJ21Id6eP7q4J4G+jSfA/gv OjzJAqNHTS4hZF1mYLuR1JjsCq5RfUMBnbcGk/JwRnn0YTOYizP8H7FKD18I3Q1icJy0YzjdPvh fcd00r6UjJKaHtuW4BDdWTzwlaco+dFzIH/P3t8IR+ZrR7xPIJbsnArjTI3TTEABQh3ACJBxxVJ pYtaxIZz3G5zRfxYThrtpQJkkBvCvGHZR7QzA5ab0/ecSor3Lx6wC9HYOvU70VzRjlpVoFdU9a3 4yoRCnNlA1VzkyYg4v5EjdMCPBZnXZYc= X-Google-Smtp-Source: AGHT+IGN3zEftKt67K/xoaMzkYgh96JRnQbI7cLMPphRjpCglGYRvDGswaB/FJEuaLY1BuA6/neAmg== X-Received: by 2002:a05:620a:400c:b0:7c5:6410:3a6 with SMTP id af79cd13be357-7cae3ab386bmr1512267585a.27.1746507532781; Mon, 05 May 2025 21:58:52 -0700 (PDT) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7cad243f46bsm661511285a.91.2025.05.05.21.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 21:58:52 -0700 (PDT) Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfauth.phl.internal (Postfix) with ESMTP id 472A11200043; Tue, 6 May 2025 00:58:51 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Tue, 06 May 2025 00:58:51 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeeftdekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt tdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpeekteetjeegudeikedujeefvddvtdeigfei ffffleejfeeiheeiffefvdeffffgteenucffohhmrghinhepghhithhhuhgsrdgtohhmpd hkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpegsohhquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqd eiledvgeehtdeigedqudejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhl rdgtohhmsehfihigmhgvrdhnrghmvgdpnhgspghrtghpthhtohepfeeipdhmohguvgepsh hmthhpohhuthdprhgtphhtthhopehmihhnghhosehkvghrnhgvlhdrohhrghdprhgtphht thhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopehmihhngh hosehrvgguhhgrthdrtghomhdprhgtphhtthhopehjuhhrihdrlhgvlhhlihesrhgvughh rghtrdgtohhmpdhrtghpthhtohepvhhinhgtvghnthdrghhuihhtthhotheslhhinhgrrh hordhorhhgpdhrtghpthhtohepughivghtmhgrrhdrvghgghgvmhgrnhhnsegrrhhmrdgt ohhmpdhrtghpthhtoheprhhoshhtvgguthesghhoohgumhhishdrohhrghdprhgtphhtth hopegsshgvghgrlhhlsehgohhoghhlvgdrtghomhdprhgtphhtthhopehmghhorhhmrghn sehsuhhsvgdruggv X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 6 May 2025 00:58:50 -0400 (EDT) From: Boqun Feng To: Ingo Molnar , Peter Zijlstra Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , FUJITA Tomonori , Tamir Duberstein , Kunwu Chan , Mitchell Levy , Martin Rodriguez Reboredo , Borys Tyran , Christian Brauner , Panagiotis Foliadis , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, Grace Deng Subject: [PATCH 2/5] rust: sync: Mark PollCondVar::drop() inline Date: Mon, 5 May 2025 21:58:40 -0700 Message-Id: <20250506045843.51258-3-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506045843.51258-1-boqun.feng@gmail.com> References: <20250506045843.51258-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Kunwu Chan When building the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=3Darm64, the following symbols are generated: $nm vmlinux | grep ' _R'.*PollCondVar | rustfilt ... T ::drop ... This Rust symbol is trivial wrappers around the C functions __wake_up_pollfree() and synchronize_rcu(). It doesn't make sense to go through a trivial wrapper for its functions, so mark it inline. [boqun: Reword the commit title and re-format the commit log per tip tree's requirement, remove unnecessary information from "nm vmlinux" result.] Link: https://github.com/Rust-for-Linux/linux/issues/1145 Suggested-by: Alice Ryhl Co-developed-by: Grace Deng Signed-off-by: Grace Deng Signed-off-by: Kunwu Chan Reviewed-by: Alice Ryhl Reviewed-by: Benno Lossin Signed-off-by: Boqun Feng Link: https://lore.kernel.org/r/20250317025205.2366518-1-kunwu.chan@linux.d= ev --- rust/kernel/sync/poll.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/kernel/sync/poll.rs b/rust/kernel/sync/poll.rs index d7e6e59e124b..7b973d72229b 100644 --- a/rust/kernel/sync/poll.rs +++ b/rust/kernel/sync/poll.rs @@ -107,6 +107,7 @@ fn deref(&self) -> &CondVar { =20 #[pinned_drop] impl PinnedDrop for PollCondVar { + #[inline] fn drop(self: Pin<&mut Self>) { // Clear anything registered using `register_wait`. // --=20 2.39.5 (Apple Git-154) From nobody Tue Dec 16 22:55:05 2025 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (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 0C0E0221FD5; Tue, 6 May 2025 04:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507537; cv=none; b=QZbJvqwXtIEQCqzZsUCOyAonbDtOd+GYz1uOFv6/ZaWx5rpvU2q/LvUYRjdXtVqC+5WPxjGjqGUgtNq8Vp8NbeZxfUxTyoaRJRAnyn83gc/9kaNuF0Bb33YILArQ0IhUVUmebn8007Tf+ESdf0YdM/YlRXuokUbpfxlzMZZNXTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507537; c=relaxed/simple; bh=36Nh2klYydSaF1etucQ5T7fKCi92RTp8ELWrFJG81Ks=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=eD9Q3seDnw0nNxKOrOdMtXBsQ842tCYab7VAimLqIlM9sY8WBhGH/owC43DeONMBaJywVdpeLiR0gpwbfm8y/RRNhiEJhSqv8c2bA1o/ByIGBm5twQBNHkSAcWevhfbzJTY3X1K5vDHgOAo+cgtF+XQ4yLK9HmKFN0YWENDUfoU= 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=h9XdHaFE; arc=none smtp.client-ip=209.85.222.182 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="h9XdHaFE" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-7c559b3eb0bso317920085a.1; Mon, 05 May 2025 21:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746507534; x=1747112334; 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=W1AOmIGSmcpEzj8NNVdx1CCoiyiTrBHzIt96cBaZ5Jw=; b=h9XdHaFEWRvEdWwDQnNdy2b2JSrE7EdG+b/bglWxLNqQsC8fsDogNqthoubLdwbBU1 pbRk7jnTJZWBxcMq3WWB252tPZYpi/8QOwBlDqeDf+Q1O6NHDW05VoUCd8GF/pdWn8gO osio/9w9t3R6MsuOSChQiSragjGiNT09fYScPY3AWQqEv2jBoxwO1b/lM/wmj47OHtik jNLb8PltnbVqI0rbRPMXG6ObVHiFWxqxE/3PDtMTwaGwO8ksEnKUkVGWGGpZFeehnUap 6Ha2u2OOpXZ2CCDN7p+tggej/kG0QnC9E9Nc4rFktabYDk3o1OfceH5nr70VbFJsUdQE be0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746507534; x=1747112334; 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=W1AOmIGSmcpEzj8NNVdx1CCoiyiTrBHzIt96cBaZ5Jw=; b=LM4Lw2YXOlkVhbjChwqhd1gY1VO6sof1hm2luFesmGWywHZ7L7XadKU0ydp0xVbLNc oi7eukQz+/S9QpIIZAQXKLJxSkx4Mb1sErPlPtwQgneueHEdSkA9tavnU0mOTIoHly0S oKkP7NBoLTplxjWuRnBok4/H6fpWi63kBCoHoillKYNY/4RJRCmja6uPCUcnRevtKvCN wMk2IralA020BHCeqwiBVA1VUIBsMxEd2ICtkoK2Aj2T5FGVYJ4JsEiBmPzql07RjgnO DhPhWFkNo4ISesLTtY81dX3PxufcLciaqh5AsI52hmmu23aMTLdpKE9QIrdUW26kueur Y26Q== X-Forwarded-Encrypted: i=1; AJvYcCV4kT+0dsUhREiguMvcE4QyG+e04cZdAIOHk/WiwC2+P7onYE5IZU2bkAHALX4YjscKECMc62he64nbXfw=@vger.kernel.org, AJvYcCWl2QazbH8zQsYaaCT1F//WKecHLNZczOtZBkvlRD2AZeKwglMaqSfLSlDLPOdbZn7Sl2pswQVA4xn1Oe2KL28=@vger.kernel.org X-Gm-Message-State: AOJu0YznVbdgcZeniDUEIBhfDzyH/1JGwbxXBp/Muw1mA0RRxWRZcqi9 1mA9uAs0BU3eqsCxZDxuqVm48tC0E2zxfw5CxHKQdBCFBzFsSNdC X-Gm-Gg: ASbGncthRR4eQx0FuS7FnAprOvdfaAe+ULG3n5TBqQS8ZhVtVXmIvbHLuN9+XKp/Wye KX4lLiBO5Y2OvfxRvQ9mZlStwA4qh6gsv1KwBJdC3o8AzJwmbk5yTLTXe/xbUvk3Q5DkGskAS9O XYH0oFh/aK5pd3GlqKxdWyFprrSH8XOHyMm4k1SHS4G2XwLU/2cMHWoCMynG3mFGMEfl8d5smhi PhZM7rjnHfOoYoZMzGZQPVkDLiNxY61DLQNHibTc58XKUmjCreunD7rocfmmDV+dD1acCZWTOPs rqstkXM2SSIM+f5OkEq89tNAPUNo7cHw9SLg4iJgqnQVw6JyTU5gSsjMsVjoy5ncZBgJMB/YZPz OvuzarBJWTtsnlSIpozooYFbhQeh4hbU= X-Google-Smtp-Source: AGHT+IFiAI5riZ5rOB1hBWWRNaW43PgfIcr0N4slt18rdztpZEgQos+K1pQsIKNodZQQdE44hEQ30w== X-Received: by 2002:a05:620a:800b:b0:7ca:cd16:8f52 with SMTP id af79cd13be357-7cae3a88450mr1410067785a.12.1746507533966; Mon, 05 May 2025 21:58:53 -0700 (PDT) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7cad23c48ffsm658912085a.45.2025.05.05.21.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 21:58:53 -0700 (PDT) Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfauth.phl.internal (Postfix) with ESMTP id BCE711200066; Tue, 6 May 2025 00:58:52 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Tue, 06 May 2025 00:58:52 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeeftdekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt tdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpeetjeeuueegfeeihfeihfdtueekgedvkedv ueefvdduheeugeehlefhvdduueegffenucffohhmrghinhepghhithhhuhgsrdgtohhmpd hkvghrnhgvlhdrohhrghdptggrshhtrdgrshenucevlhhushhtvghrufhiiigvpedtnecu rfgrrhgrmhepmhgrihhlfhhrohhmpegsohhquhhnodhmvghsmhhtphgruhhthhhpvghrsh honhgrlhhithihqdeiledvgeehtdeigedqudejjeekheehhedvqdgsohhquhhnrdhfvghn gheppehgmhgrihhlrdgtohhmsehfihigmhgvrdhnrghmvgdpnhgspghrtghpthhtohepfe ejpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmihhnghhosehkvghrnhgvlhdr ohhrghdprhgtphhtthhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtph htthhopehmihhnghhosehrvgguhhgrthdrtghomhdprhgtphhtthhopehjuhhrihdrlhgv lhhlihesrhgvughhrghtrdgtohhmpdhrtghpthhtohepvhhinhgtvghnthdrghhuihhtth hotheslhhinhgrrhhordhorhhgpdhrtghpthhtohepughivghtmhgrrhdrvghgghgvmhgr nhhnsegrrhhmrdgtohhmpdhrtghpthhtoheprhhoshhtvgguthesghhoohgumhhishdroh hrghdprhgtphhtthhopegsshgvghgrlhhlsehgohhoghhlvgdrtghomhdprhgtphhtthho pehmghhorhhmrghnsehsuhhsvgdruggv X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 6 May 2025 00:58:52 -0400 (EDT) From: Boqun Feng To: Ingo Molnar , Peter Zijlstra Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , FUJITA Tomonori , Tamir Duberstein , Kunwu Chan , Mitchell Levy , Martin Rodriguez Reboredo , Borys Tyran , Christian Brauner , Panagiotis Foliadis , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, Christian Schrefl , Charalampos Mitrodimas Subject: [PATCH 3/5] rust: task: Mark Task methods inline Date: Mon, 5 May 2025 21:58:41 -0700 Message-Id: <20250506045843.51258-4-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506045843.51258-1-boqun.feng@gmail.com> References: <20250506045843.51258-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Panagiotis Foliadis When building the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 toolchain provided by kernel.org, the following symbols are generated: $ nm vmlinux | grep ' _R'.*Task | rustfilt ... T ::get_pid_ns ... T ::tgid_nr_ns ... T ::current_pid_ns ... T ::signal_pending ... T ::uid ... T ::euid ... T ::current ... T ::wake_up ... T ::dec_ref ... T ::inc_ref These Rust symbols are trivial wrappers around the C functions. It doesn't make sense to go through a trivial wrapper for these functions, so mark them inline. [boqun: Capitalize the title, reword a bit to avoid listing all the C functions as the code already shows them and remove the addresses of the symbols in the commit log as they are different from build to build.] Link: https://github.com/Rust-for-Linux/linux/issues/1145 Reviewed-by: Benno Lossin Reviewed-by: Christian Schrefl Reviewed-by: Charalampos Mitrodimas Reviewed-by: Alice Ryhl Signed-off-by: Panagiotis Foliadis Signed-off-by: Boqun Feng Link: https://lore.kernel.org/r/20250315-inline-c-wrappers-v3-1-048e43fcef7= d@posteo.net --- rust/kernel/task.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rust/kernel/task.rs b/rust/kernel/task.rs index 9e6f6854948d..0bf5fdf75c37 100644 --- a/rust/kernel/task.rs +++ b/rust/kernel/task.rs @@ -134,6 +134,7 @@ pub fn current_raw() -> *mut bindings::task_struct { /// # Safety /// /// Callers must ensure that the returned object doesn't outlive the c= urrent task/thread. + #[inline] pub unsafe fn current() -> impl Deref { struct TaskRef<'a> { task: &'a Task, @@ -168,6 +169,7 @@ fn deref(&self) -> &Self::Target { /// # Safety /// /// Callers must ensure that the returned object doesn't outlive the c= urrent task/thread. + #[inline] pub unsafe fn current_pid_ns() -> impl Deref { struct PidNamespaceRef<'a> { task: &'a PidNamespace, @@ -275,24 +277,28 @@ pub fn pid(&self) -> Pid { } =20 /// Returns the UID of the given task. + #[inline] pub fn uid(&self) -> Kuid { // SAFETY: It's always safe to call `task_uid` on a valid task. Kuid::from_raw(unsafe { bindings::task_uid(self.as_ptr()) }) } =20 /// Returns the effective UID of the given task. + #[inline] pub fn euid(&self) -> Kuid { // SAFETY: It's always safe to call `task_euid` on a valid task. Kuid::from_raw(unsafe { bindings::task_euid(self.as_ptr()) }) } =20 /// Determines whether the given task has pending signals. + #[inline] pub fn signal_pending(&self) -> bool { // SAFETY: It's always safe to call `signal_pending` on a valid ta= sk. unsafe { bindings::signal_pending(self.as_ptr()) !=3D 0 } } =20 /// Returns task's pid namespace with elevated reference count + #[inline] pub fn get_pid_ns(&self) -> Option> { // SAFETY: By the type invariant, we know that `self.0` is valid. let ptr =3D unsafe { bindings::task_get_pid_ns(self.as_ptr()) }; @@ -308,6 +314,7 @@ pub fn get_pid_ns(&self) -> Option> { =20 /// Returns the given task's pid in the provided pid namespace. #[doc(alias =3D "task_tgid_nr_ns")] + #[inline] pub fn tgid_nr_ns(&self, pidns: Option<&PidNamespace>) -> Pid { let pidns =3D match pidns { Some(pidns) =3D> pidns.as_ptr(), @@ -321,6 +328,7 @@ pub fn tgid_nr_ns(&self, pidns: Option<&PidNamespace>) = -> Pid { } =20 /// Wakes up the task. + #[inline] pub fn wake_up(&self) { // SAFETY: It's always safe to call `wake_up_process` on a valid t= ask, even if the task // running. @@ -330,11 +338,13 @@ pub fn wake_up(&self) { =20 // SAFETY: The type invariants guarantee that `Task` is always refcounted. unsafe impl crate::types::AlwaysRefCounted for Task { + #[inline] fn inc_ref(&self) { // SAFETY: The existence of a shared reference means that the refc= ount is nonzero. unsafe { bindings::get_task_struct(self.as_ptr()) }; } =20 + #[inline] unsafe fn dec_ref(obj: ptr::NonNull) { // SAFETY: The safety requirements guarantee that the refcount is = nonzero. unsafe { bindings::put_task_struct(obj.cast().as_ptr()) } --=20 2.39.5 (Apple Git-154) From nobody Tue Dec 16 22:55:05 2025 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (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 0071D22C35E; Tue, 6 May 2025 04:58:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507538; cv=none; b=WbyhBA6O4RqcsYDBavzPuLtu27SUAyKg1T/ku5wu4+bh9qcldRk7YST7eGBDofuTrmSnKYf/A9wRna/Gyz/nDjoIb2dbmxjzIDgB8j0xhtLTIJpONKv/uvkBa884VCP/9FqI2ZRIToNGQkziu3vFlSEAAuNHHxFK19hOwmZrPkM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507538; c=relaxed/simple; bh=2rKTDohoIZTv364VBRei4ErD52RBTQMB1Pfa9/nE7Qk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hbs5PXQFd5I5DXoUJRcdcyJGSYcXRy4HvMIF28/9bmvdPqUDegeysPStuzeL5F5gDjyMeroPeGNnym3x8bEFg8AKqzUy8VSxzExU4MBx4LTU0OCDQG3y+hvXRNIm70uH65G2gIIrKWr8+UlO9knHvusQJ/tZK4BnyoXwKXPlrH4= 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=cHL0p6R2; arc=none smtp.client-ip=209.85.219.42 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="cHL0p6R2" Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6e900a7ce55so92792166d6.3; Mon, 05 May 2025 21:58:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746507536; x=1747112336; 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=VOzgpOO8eORRFq8I92/Pf3cpq9kLRkLkWGI5a9WKGkQ=; b=cHL0p6R2zQrFo3AU19ijnyifJ/t41l6wu3BlnWIN/OsTgEzmPd+Ndl7ZOxa+OfVitu xPQts8XU9qX5HLBWpaXfu36FaqxHphQNydBvDprPdVZzoeQtAcGlnhN7BY6niRHbDWY7 Iwc+0KgLYNYy9OwHdcBPWU2Xc9GvoMifkWkHUczYkOiyFec7UdVSBEFaY5Sln09KJFTq NFqk+lGo5dS5Eh36tWwmyjuygj5er9FZxDKjC1bo/vPDe2HIOMxJzP2Aw4miH+nY5DGO DgoBzglUpcD7wfmeDbYWxiQnJeK5wi0T0C77M5e9tKk62h87iPQdTKeyKYYaRnYnkgLi 8Cyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746507536; x=1747112336; 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=VOzgpOO8eORRFq8I92/Pf3cpq9kLRkLkWGI5a9WKGkQ=; b=QkRg27I6P/cadhoYdmxT2wq4I+vXL5Gm995+iIijTgzt809CvEL37VFISey4+bnrkp Bkt6v96ZIvwPV7ndRm6q721VKwXDmqrroEJMn0BuGjPv16ttr/juD+ra0AmSgZq4lFdb jiXh2gYrz99VDLzUv0h65NkjEIhDltKeLT4g2Tia3E6aVSlckDl/255lE0OG1aFlzEj4 SjCvoO5y3j3seS67pdJvuljH9Rj38KorQyItawdk6JgLw5oDT7dPMjATuU+Uvga5Ubu+ GcEPDVjV1LNEbrhjFK30olnJWB+LYes3IkaW5VGqeW7iI4+v0PWUddXFV0Ch0pLWI+Pe 1Hhw== X-Forwarded-Encrypted: i=1; AJvYcCWCVoBclFneqoRo1p8m0IE5NZYhpvLKSXQ+A9JTPdg1kku6uAn+hk/jIz+KpRsCbwZmH2jcXg3SZD1G/c5bfTg=@vger.kernel.org, AJvYcCWsV2cm1ybzMFNhEsx4+W/iwdzDvf3IAZPWovolTGBqIe2IxTZIarMdzxgGwah9NJd41iL7chRnbHadFU4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy9yELVGeXrCSpT6Xuuz8622TOMMkP/oy0ljSGDmo6kSTUxB4Pm Oj97v5goHMJv6O2xwDvXOHzZeuhbwYEcsoGlULJ7I29p0IEP/ske X-Gm-Gg: ASbGncsd8P6wSIXfIGWJ+7uioI6uyE8qkW78njj4xv8PLngXd+o06GcIFuuhZoSstwV +Cq7hcNUIPSdBmLmKAPcqyyG7uFPSQ3dm/AjslebWNVDLFLdsODaq159Cyxfq8SzRjV7977Ou/4 tZMYY0lmJijwTRnF1yI/SaKHByS77FWNw96Ev3VOBVGZRCUpjgK2Wr/BFB5TDcUGAMzZ/6MKNQt RyJP9pGflD+TK6YPcHrTUxfJp3eOBXkdqPATY+fSU8HhA+PgHuwSRrZvAUw17wZ5RBjyLgXQ+F7 8rAPYyo64v2XUCpHips+ADHpPMrtJkrpDfU57zW8PbjZMfNEo52T/9cv/hZ+ff7/G/Bvdc2Kwgl 53q/zW+G/PMYU9T17Af7zhYwQYXRSgdE= X-Google-Smtp-Source: AGHT+IFQN30BafUiqDdeBzYv8NLBc7OgLuq4IV6Uz/0rbVOFp3cLcOixfIhpiNw/jdY6LbD/sLR14w== X-Received: by 2002:a05:6214:3001:b0:6f5:d21:cf90 with SMTP id 6a1803df08f44-6f528cecc37mr141978996d6.29.1746507535854; Mon, 05 May 2025 21:58:55 -0700 (PDT) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f50f3c4492sm65288086d6.35.2025.05.05.21.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 21:58:55 -0700 (PDT) Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfauth.phl.internal (Postfix) with ESMTP id 89FBC1200066; Tue, 6 May 2025 00:58:54 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Tue, 06 May 2025 00:58:54 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeeftdelucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt tdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpeekteetjeegudeikedujeefvddvtdeigfei ffffleejfeeiheeiffefvdeffffgteenucffohhmrghinhepghhithhhuhgsrdgtohhmpd hkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpegsohhquhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqd eiledvgeehtdeigedqudejjeekheehhedvqdgsohhquhhnrdhfvghngheppehgmhgrihhl rdgtohhmsehfihigmhgvrdhnrghmvgdpnhgspghrtghpthhtohepfeeipdhmohguvgepsh hmthhpohhuthdprhgtphhtthhopehmihhnghhosehkvghrnhgvlhdrohhrghdprhgtphht thhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopehmihhngh hosehrvgguhhgrthdrtghomhdprhgtphhtthhopehjuhhrihdrlhgvlhhlihesrhgvughh rghtrdgtohhmpdhrtghpthhtohepvhhinhgtvghnthdrghhuihhtthhotheslhhinhgrrh hordhorhhgpdhrtghpthhtohepughivghtmhgrrhdrvghgghgvmhgrnhhnsegrrhhmrdgt ohhmpdhrtghpthhtoheprhhoshhtvgguthesghhoohgumhhishdrohhrghdprhgtphhtth hopegsshgvghgrlhhlsehgohhoghhlvgdrtghomhdprhgtphhtthhopehmghhorhhmrghn sehsuhhsvgdruggv X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 6 May 2025 00:58:53 -0400 (EDT) From: Boqun Feng To: Ingo Molnar , Peter Zijlstra Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , FUJITA Tomonori , Tamir Duberstein , Kunwu Chan , Mitchell Levy , Martin Rodriguez Reboredo , Borys Tyran , Christian Brauner , Panagiotis Foliadis , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev, Daniel Almeida Subject: [PATCH 4/5] sched/core: Add __might_sleep_precision() Date: Mon, 5 May 2025 21:58:42 -0700 Message-Id: <20250506045843.51258-5-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506045843.51258-1-boqun.feng@gmail.com> References: <20250506045843.51258-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: FUJITA Tomonori Add __might_sleep_precision(), Rust friendly version of __might_sleep(), which takes a pointer to a string with the length instead of a null-terminated string. Rust's core::panic::Location::file(), which gives the file name of a caller, doesn't provide a null-terminated string. __might_sleep_precision() uses a precision specifier in the printk format, which specifies the length of a string; a string doesn't need to be a null-terminated. Modify __might_sleep() to call __might_sleep_precision() but the impact should be negligible. When printing the error (sleeping function called from invalid context), the precision string format is used instead of the simple string format; the precision specifies the the maximum length of the displayed string. Note that Location::file() providing a null-terminated string for better C interoperability is under discussion [1]. [1]: https://github.com/rust-lang/libs-team/issues/466 Tested-by: Daniel Almeida Reviewed-by: Alice Ryhl Co-developed-by: Boqun Feng Signed-off-by: Boqun Feng Signed-off-by: FUJITA Tomonori Signed-off-by: Boqun Feng Link: https://lore.kernel.org/r/20250410225623.152616-2-fujita.tomonori@gma= il.com --- include/linux/kernel.h | 2 ++ kernel/sched/core.c | 62 ++++++++++++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index be2e8c0a187e..086ee1dc447e 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -87,6 +87,7 @@ extern int dynamic_might_resched(void); #ifdef CONFIG_DEBUG_ATOMIC_SLEEP extern void __might_resched(const char *file, int line, unsigned int offse= ts); extern void __might_sleep(const char *file, int line); +extern void __might_sleep_precision(const char *file, int len, int line); extern void __cant_sleep(const char *file, int line, int preempt_offset); extern void __cant_migrate(const char *file, int line); =20 @@ -145,6 +146,7 @@ extern void __cant_migrate(const char *file, int line); static inline void __might_resched(const char *file, int line, unsigned int offsets) { } static inline void __might_sleep(const char *file, int line) { } +static inline void __might_sleep_precision(const char *file, int len, int = line) { } # define might_sleep() do { might_resched(); } while (0) # define cant_sleep() do { } while (0) # define cant_migrate() do { } while (0) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 79692f85643f..496bd462d29e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8732,24 +8732,6 @@ void __init sched_init(void) =20 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP =20 -void __might_sleep(const char *file, int line) -{ - unsigned int state =3D get_current_state(); - /* - * Blocking primitives will set (and therefore destroy) current->state, - * since we will exit with TASK_RUNNING make sure we enter with it, - * otherwise we will destroy state. - */ - WARN_ONCE(state !=3D TASK_RUNNING && current->task_state_change, - "do not call blocking ops when !TASK_RUNNING; " - "state=3D%x set at [<%p>] %pS\n", state, - (void *)current->task_state_change, - (void *)current->task_state_change); - - __might_resched(file, line, 0); -} -EXPORT_SYMBOL(__might_sleep); - static void print_preempt_disable_ip(int preempt_offset, unsigned long ip) { if (!IS_ENABLED(CONFIG_DEBUG_PREEMPT)) @@ -8771,7 +8753,8 @@ static inline bool resched_offsets_ok(unsigned int of= fsets) return nested =3D=3D offsets; } =20 -void __might_resched(const char *file, int line, unsigned int offsets) +static void __might_resched_precision(const char *file, int file_len, int = line, + unsigned int offsets) { /* Ratelimiting timestamp: */ static unsigned long prev_jiffy; @@ -8794,8 +8777,8 @@ void __might_resched(const char *file, int line, unsi= gned int offsets) /* Save this before calling printk(), since that will clobber it: */ preempt_disable_ip =3D get_preempt_disable_ip(current); =20 - pr_err("BUG: sleeping function called from invalid context at %s:%d\n", - file, line); + pr_err("BUG: sleeping function called from invalid context at %.*s:%d\n", + file_len, file, line); pr_err("in_atomic(): %d, irqs_disabled(): %d, non_block: %d, pid: %d, nam= e: %s\n", in_atomic(), irqs_disabled(), current->non_block_count, current->pid, current->comm); @@ -8820,8 +8803,45 @@ void __might_resched(const char *file, int line, uns= igned int offsets) dump_stack(); add_taint(TAINT_WARN, LOCKDEP_STILL_OK); } + +/* + * The precision in vsnprintf() specifies the maximum length of the + * displayed string. The precision needs to be larger than the actual + * length of the string, so a sufficiently large value should be used + * for the filename length. + */ +#define MAX_FILENAME_LEN (1<<14) + +void __might_resched(const char *file, int line, unsigned int offsets) +{ + __might_resched_precision(file, MAX_FILENAME_LEN, line, offsets); +} EXPORT_SYMBOL(__might_resched); =20 +void __might_sleep_precision(const char *file, int len, int line) +{ + unsigned int state =3D get_current_state(); + /* + * Blocking primitives will set (and therefore destroy) current->state, + * since we will exit with TASK_RUNNING make sure we enter with it, + * otherwise we will destroy state. + */ + WARN_ONCE(state !=3D TASK_RUNNING && current->task_state_change, + "do not call blocking ops when !TASK_RUNNING; " + "state=3D%x set at [<%p>] %pS\n", state, + (void *)current->task_state_change, + (void *)current->task_state_change); + + __might_resched_precision(file, len, line, 0); +} +EXPORT_SYMBOL_GPL(__might_sleep_precision); + +void __might_sleep(const char *file, int line) +{ + __might_sleep_precision(file, MAX_FILENAME_LEN, line); +} +EXPORT_SYMBOL(__might_sleep); + void __cant_sleep(const char *file, int line, int preempt_offset) { static unsigned long prev_jiffy; --=20 2.39.5 (Apple Git-154) From nobody Tue Dec 16 22:55:05 2025 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (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 8C94422F771; Tue, 6 May 2025 04:58:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507540; cv=none; b=ojScNyNyN3Qi6BI81Lq552B9G51l7ecEzMQGrkq19I5qI6BgXhwFKHS40svBQIGO2RujL5bkdEbTCaHHV8yTwhBVPbVxsIXOeLJ7TsvAhKD9WePzY5CAPvz3CIB3W97eaOri5BP/hsuiynTMexaN2W99lyNCxqgTPmISjinEZZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746507540; c=relaxed/simple; bh=m7vxYgUh8ULPptGn2nd3MYeUmYgn13h75xWsCTIcIOc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PYD8DcjmEFfRqqf2ka/E2U/g1k5pP9FBZ91W61PRF152LcIFIozyBT7Fam0AcDWlc/qJFAJKHweR2NfYPj3wy0LlpJAX3Avg/QSSsFgZhy9hBmhJbxBvsqtPTPbDB2rVqorS/o1NMsePoj1BemMCjjAgXDdtyH2iB3reynXlPG0= 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=CU68XglP; arc=none smtp.client-ip=209.85.222.170 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="CU68XglP" Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-7c5e2fe5f17so581739985a.3; Mon, 05 May 2025 21:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746507537; x=1747112337; 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=1g9tUIclVmuH2ZaBusryyZl8QxSs3+aGqPstryRtHAo=; b=CU68XglPmwFo7hvY09XSuELSgLMFb2F2BwYu/9foGkH+QcL7PxTAnIIFAV+YiveL82 zGFPXa3z2bnhl3FhdHnR0uZTY+BpS9DHCZGHcDX0bn1cNvjn/176iSsUvD8zT5h2ys54 hBoRqy2jQ4dTx4Vn4rUXsH9hbFDgFx1H1UYAvW9GqhNlojYkKGxF7K8uhNrdiHmfzBli YdCzLgQR1gJqO1qKt+OxosQgN/8iwtWWxIHDi0PQshvY0YNi41psL1cbmf4KABRitsQr nadMUY0IYJ+XiC8ECB46aGJKqCgyx+w8nTSqohcHHIp0V1xe0CBVhniHExPrLQ+PJv5o Cb9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746507537; x=1747112337; 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=1g9tUIclVmuH2ZaBusryyZl8QxSs3+aGqPstryRtHAo=; b=ZVJJbnNU/pd0HZMwLB/2GTxPTuW8Dn7ENfJxWML8RUtRPpQk9l5kakBovP8nf0OiVi 4xSMVTh+ql3OkevtK/+Dyp9waANfY/Qqt5/VeIBkN15aDSAIL+KgDBioAy5P1b2wXH4G CrVPYn7F67YS0RNpcRvfk2YgoHBPqYnn3xXCYIPdk6mMifh1hdV7DzbnNLnr0FZEWiPT VfuCOlHo3XbsmVP1/GXzHoJdZU7w9om5t4l6bFMCKIv45MIwTyevQaYQlcalhmis0wNJ MZgkLBFSobmH3/B+8UVNXtuhFes2q5XAdGN+R7mITFlJux/Akwz33T3rl7R5hq34vENn 29Xg== X-Forwarded-Encrypted: i=1; AJvYcCVHjRudYIg06uWdDkYEPeih3MpDqCxuRB+OP6Rx6nPkOltSiNIc21M8OGkGvDRykXC3sMgGIoOwssja8BEWZ/0=@vger.kernel.org, AJvYcCXEpgg97dS2h3SHVe2zV74FBqmPL4xjsYr69UkCNKgZ8jPi3lLTCOzAmgpEYpOJ75p3aokj7BjplFbZ0V0=@vger.kernel.org X-Gm-Message-State: AOJu0YyaxbQ0/xwqmeL/3IwWy97TIuj+S4EMs2h0Ryge41d2AS9sd0V0 w4DS8n25tqvJIM00zPTqKuSmhnOwzju764edwnjcC21hz7y0Ftf8 X-Gm-Gg: ASbGnctIOsRMn2fimODfVqNoHR4xJIzXuOru5RQrLf7CwVCqroN7nwIC5ev7Wf5FdLM zhXkYzzI/qJxwhHwniaye6cdffiHCFxjTZ6PGQ7UTJukr+Mi0+zH3IhTTmjPk1Xd8nd9F46Nb7o qu5HphqDGA9Y1fNd0MwWcVyapZizxkP0i7X21ka8Sqhd1QP36RnDrbB3c/iLDbvkmTKc0gyI6RO 1HojHBddRxuU/I8rrsSjSguQegKlVds2vUyILVOwmuK4jnWTpHt+7iNszGon57COGuVGp5yaeVN H8GU3XsGO1Z5fGpamswGC5u0ilcsU4QWTNevpeDrYhCfqU2OCZllLIV0rrFETFVOuWta3X/Tsig L/YYxohqNo3mvCrgg/DRC6R5X0aVnMiY= X-Google-Smtp-Source: AGHT+IEmn0U41CRqbdqAxigdPC3H0OSYylwKvqCa/ahyGHbsGpn1EVqOpBvXXjgh2ak2ogbN4Y5aZg== X-Received: by 2002:a05:6214:124a:b0:6e4:2dd7:5c88 with SMTP id 6a1803df08f44-6f5358ede5emr31398286d6.38.1746507537275; Mon, 05 May 2025 21:58:57 -0700 (PDT) Received: from fauth-a2-smtp.messagingengine.com (fauth-a2-smtp.messagingengine.com. [103.168.172.201]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f50f3d35e5sm65095526d6.67.2025.05.05.21.58.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 May 2025 21:58:56 -0700 (PDT) Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id 16B831200068; Tue, 6 May 2025 00:58:56 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Tue, 06 May 2025 00:58:56 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvkeeftdekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt tdenucfhrhhomhepuehoqhhunhcuhfgvnhhguceosghoqhhunhdrfhgvnhhgsehgmhgrih hlrdgtohhmqeenucggtffrrghtthgvrhhnpefghfffvefhhfdvgfejgfekvdelgfekgeev ueehlefhiedvgeffjefgteeugfehieenucffohhmrghinhepkhgvrhhnvghlrdhorhhgne cuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsghoqhhu nhdomhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidqieelvdeghedtieegqdduje ejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepghhmrghilhdrtghomhesfhhigihmvgdr nhgrmhgvpdhnsggprhgtphhtthhopeefhedpmhhouggvpehsmhhtphhouhhtpdhrtghpth htohepmhhinhhgoheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepphgvthgvrhiisehi nhhfrhgruggvrggurdhorhhgpdhrtghpthhtohepmhhinhhgohesrhgvughhrghtrdgtoh hmpdhrtghpthhtohepjhhurhhirdhlvghllhhisehrvgguhhgrthdrtghomhdprhgtphht thhopehvihhntggvnhhtrdhguhhithhtohhtsehlihhnrghrohdrohhrghdprhgtphhtth hopeguihgvthhmrghrrdgvghhgvghmrghnnhesrghrmhdrtghomhdprhgtphhtthhopehr ohhsthgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepsghsvghgrghllhesgh hoohhglhgvrdgtohhmpdhrtghpthhtohepmhhgohhrmhgrnhesshhushgvrdguvg X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 6 May 2025 00:58:55 -0400 (EDT) From: Boqun Feng To: Ingo Molnar , Peter Zijlstra Cc: Ingo Molnar , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , FUJITA Tomonori , Tamir Duberstein , Kunwu Chan , Mitchell Levy , Martin Rodriguez Reboredo , Borys Tyran , Christian Brauner , Panagiotis Foliadis , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH 5/5] rust: task: Add Rust version of might_sleep() Date: Mon, 5 May 2025 21:58:43 -0700 Message-Id: <20250506045843.51258-6-boqun.feng@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250506045843.51258-1-boqun.feng@gmail.com> References: <20250506045843.51258-1-boqun.feng@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: FUJITA Tomonori Add a helper function equivalent to the C's might_sleep(), which serves as a debugging aid and a potential scheduling point. Note that this function can only be used in a nonatomic context. This will be used by Rust version of read_poll_timeout(). Signed-off-by: FUJITA Tomonori Reviewed-by: Alice Ryhl Signed-off-by: Boqun Feng Link: https://lore.kernel.org/r/20250410225623.152616-3-fujita.tomonori@gma= il.com --- rust/helpers/task.c | 6 ++++++ rust/kernel/task.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/rust/helpers/task.c b/rust/helpers/task.c index 31c33ea2dce6..2c85bbc2727e 100644 --- a/rust/helpers/task.c +++ b/rust/helpers/task.c @@ -1,7 +1,13 @@ // SPDX-License-Identifier: GPL-2.0 =20 +#include #include =20 +void rust_helper_might_resched(void) +{ + might_resched(); +} + struct task_struct *rust_helper_get_current(void) { return current; diff --git a/rust/kernel/task.rs b/rust/kernel/task.rs index 0bf5fdf75c37..067546754939 100644 --- a/rust/kernel/task.rs +++ b/rust/kernel/task.rs @@ -390,3 +390,31 @@ fn eq(&self, other: &Kuid) -> bool { } =20 impl Eq for Kuid {} + +/// Annotation for functions that can sleep. +/// +/// Equivalent to the C side [`might_sleep()`], this function serves as +/// a debugging aid and a potential scheduling point. +/// +/// This function can only be used in a nonatomic context. +#[track_caller] +#[inline] +pub fn might_sleep() { + #[cfg(CONFIG_DEBUG_ATOMIC_SLEEP)] + { + let loc =3D core::panic::Location::caller(); + let file =3D loc.file(); + + // SAFETY: `file.as_ptr()` is valid for reading for `file.len()` b= ytes. + unsafe { + crate::bindings::__might_sleep_precision( + file.as_ptr().cast(), + file.len() as i32, + loc.line() as i32, + ) + } + } + + // SAFETY: Always safe to call. + unsafe { crate::bindings::might_resched() } +} --=20 2.39.5 (Apple Git-154)