From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5035C270542; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=AuqHuQ+hIWdz1W+EB02CECFkKXfgAW7Tru97Pb4DYgGh288bLevYkc7d5Y1jrOgEXKT9xchNUut91x2W3JrOd5WTHroTMMLOWdUMF/o5motsaDjCS+oSAEvxgKqCKQ4vqy8Bzf9zflnunyhoK7Gcgi/YAszUjJnZlsp3IdUcKUk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=94UzipiV219n1Nsds3GgUffrYhVWmSEuqNwCotvgHTg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=okXwicw6ow8u2UYaSZrYe2r6zQjlfc2gqpKa7Tf86rp0b5mj88GP7vChJaLcmSMO5Y5ceySaRStFAtbzHsGj5r1XkoF1ftMB9QIZK0Llea2q0K9IyaVrpbXLqYw/2IRWuevD73VHziHSEOmpEp/hWfvybJMWfTULDKjK4TnFgiY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=umnHgPjx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="umnHgPjx" Received: by smtp.kernel.org (Postfix) with ESMTPS id BF675C4CEEE; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899576; bh=94UzipiV219n1Nsds3GgUffrYhVWmSEuqNwCotvgHTg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=umnHgPjx/uswvCkSmQAtfNXwh0J1RgCPXPtU15EJ3BJrGMr9TeAkv+02Hx8/aJrZP B9pids9hDCCRiksaveqMrCaUIPjjT40xeYtCj3KLeve1mYRGk57NEeo0YsYHn7kloJ Wb5lXlJ1ICFfjMDI7QXO7ihYek6tuetYOzZNrzvuaGAxSxtzS6wFaDjCD1KHmLlOpd mGs+bcfHf0EcMQwc5GWPCv3Q+hydECGq09BD3DqCK5uZZKY6iXbfQpCANImiozP2H4 ry6PlbZas22d5KF1Q/sW5U8JGsO3qzDZZJpJ9Sos51pOgukjAw6CGW4cOv/pPGGvJh 2wpUI2Qi0eYHg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC846C369D1; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:05 +0800 Subject: [PATCH RFC v3 1/8] nvme: add __always_inline for nvme_pci_npages_prp Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-1-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2975; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=Z0QiTYLHzEeebaywUqCSW16Ny4EMqCsjjX+KS5KBMNU=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAukhIgTV0U3xfinuIjd2L0FB1AExqdCchlv A3ri9QFLWiJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQLgAKCRB2HuYUOZmu i9PbD/0bxMLZB/tZ4Ta8gMq1WIv38DYhUP3aWnHRrfHrBmcZmF3pYKgj7U3bQhz1rGgW21/5jLf O6iQHC8JkszMXt7z43locXuD3D2XLaMzfIjJ4SYSBJJCUhLDwTO0hXO+SgM8VdRdhmjZUc1WhnK MotrwNb7+YScOJV7UKO27QZ4mEX9QtP1og5KDtG4fX2A4elJ/oUz5VyPu1ZVWaZIPGpR6UfQu2W 3V96onZcmtcYOTu7m+Q4YYn57iocabwdiYGXp9u6+muG1V36fqjgCWLFdJ87b10fBGpqSdLd78K Np/ZrE3r79VyFTS10nLQwcH5emDVtRsUooPidOTFB5RbtCiWZVwNXbzPXeUAOlpo1fud6r4VWu6 qQumY8DgxrRS5yYkJuqNuYsyMje5EqNF0cT9ACHUWaiTx2mc4D4GMZxmlK0Gb/i6H6b5Nn2r2Xj wAaoImxclHPRalFdhXU+KjoIiAQ+6sz9E+8WePUUrBdVGKfCKQPnIoZrmz83bxpZtjB8fQ0tEQM iAAaovwAWgBfxfbUHIa8VeSzTs5I5aHhO+aY/5Sd1k2ttkBswHZJumET7aNiQoPsJoewmJYilGQ jL21aH2TLLnbAvvZ8tf8QpXJtxzRSYrmcdb8wsQqvI0rVPoHUhioggOtX3jm+SKC+ApmPIpQr8u b//ZkECSNX3jkKQ== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Winston Wen On x86_64 with gcc version 13.3.0, I build drivers/nvme/host/pci.c with: make defconfig ./scripts/kconfig/merge_config.sh .config <( echo CONFIG_BLK_DEV_NVME=3Dm ) make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" \ drivers/nvme/host/pci.o Then I get a compile error: CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC drivers/nvme/host/pci.o In file included from : drivers/nvme/host/pci.c: In function 'nvme_init': ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_= assert_878' declared with attribute error: BUILD_BUG_ON failed: nvme_pci_np= ages_prp() > NVME_MAX_NR_ALLOCATIONS 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^ ././include/linux/compiler_types.h:538:25: note: in definition of macro '= __compiletime_assert' 538 | prefix ## suffix(); = \ | ^~~~~~ ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_c= ompiletime_assert' 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compileti= me_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), m= sg) | ^~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_= ON_MSG' 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #cond= ition) | ^~~~~~~~~~~~~~~~ drivers/nvme/host/pci.c:3804:9: note: in expansion of macro 'BUILD_BUG_ON' 3804 | BUILD_BUG_ON(nvme_pci_npages_prp() > NVME_MAX_NR_ALLOCATI= ONS); | ^~~~~~~~~~~~ Mark nvme_pci_npages_prp() with __always_inline make it can be computed at compile time. Co-developed-by: Chen Linxuan Signed-off-by: Chen Linxuan Signed-off-by: Winston Wen --- drivers/nvme/host/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index b178d52eac1b7f7286e217226b9b3686d07b7b6c..9ab070a9f0372bc6595c29a884e= e9f2ffe5ae8e9 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -390,7 +390,7 @@ static bool nvme_dbbuf_update_and_check_event(u16 value= , __le32 *dbbuf_db, * as it only leads to a small amount of wasted memory for the lifetime of * the I/O. */ -static int nvme_pci_npages_prp(void) +static __always_inline int nvme_pci_npages_prp(void) { unsigned max_bytes =3D (NVME_MAX_KB_SZ * 1024) + NVME_CTRL_PAGE_SIZE; unsigned nprps =3D DIV_ROUND_UP(max_bytes, NVME_CTRL_PAGE_SIZE); --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5029126FD8D; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=pFwwZyUzNducPm97OFRzIhtLxtxW6b43Tkh0Qowfp2cNBPlU9gir/CzvoegEfQCQKSNf1tlaoWTDxKk1egWKmSo6wLvWE0OENSQ8vSgcUzU5p4R/CLahwwPhNSyIwtu34ciMuZ9ippRZHoSGZ6Rzsp0aAdDMdawKi4v4pALUDcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=pJ9VpLz2vL2PDt7J0K2cXMYeDKnStbQajileR/wxzK8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CMwpHyCugxficVLcWNaGT+zUJwhXfiCeJU9tdOe6AkRXOZ68lf1K5ADU85r46ErihKvjDPNbdotSMxMN4jEUCvzpMEJ3ENvSNxFg5IXpcOQ7GCvJ8OQ7w6yyNtT4qPxsW0Hn9u1MoivrHRUCXt4rEFhQc1krrwiUR2PYKqrh3Ug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FyUVqYls; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FyUVqYls" Received: by smtp.kernel.org (Postfix) with ESMTPS id CD555C4CEF1; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899576; bh=pJ9VpLz2vL2PDt7J0K2cXMYeDKnStbQajileR/wxzK8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=FyUVqYls/+KqU5DpInz9ZWqZ/4CAAzIPkLtTAq2+9vTbtkfDvRR2CjebexTY9QBGl a18CtmbbDxF0tvb3AcYhTkIyRG0rGmIkJvOQyXGZmREvsxGc9clSCgXVDMI44bfCOB RwUBZ5vLAptbw96/QZcz10zYj2Ww1cjxiuhaCIV1kmi57bliowHPSI7urlxZe9vKEG oDldZTQDIsI86OtD5RmJoGS5Kqw98y9Y2hrIZWtmhbDW+Op3bNrJJxNcoQ6l/9xD1A sZMVPjVE+TJH9Zf+qU8izf83pAhbghYD3h20CeX6p7lBgVhUV7G4DchS76qQNbjUfj iEE1ouz0ZXZDA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD4A1C3ABA6; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:06 +0800 Subject: [PATCH RFC v3 2/8] mm: add __always_inline for page_contains_unaccepted Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-2-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2614; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=+y8wKlsn55GLtsirs4Essnozl8lVGDb1RUHKRb3UGRw=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAvQHTkSNXJxyOgEHVD9PhzBBGToDo54ToKB JTzQ3Bt13uJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQLwAKCRB2HuYUOZmu i2wDD/94Tikof0KqTbmGNltSJN0BkZfS5swTBN23SRIvCigAsJMsSAEE8+hsOfF5ug0IHuwNOI/ 1Qnd48PesFnCihU7hm3JfucE304u3ikq3JpHS8byjD3Iq2171RsPQwl30uxz+vEZ8hzs0TpTQBL tbOgvO5HS5tVi2N8UEoiRrD/AIGE1AKJx646BKh7BWEfqlVn8Piwh3FS7UZcthV+4LqoV/TILJ5 CqwIUJDj8ZerV5DorB5SDBkZEPqwYLdujwzVjj9cp8vZwKMj+w/cFPS+07AzMtQNZybB8QumHsU DHQmASWQEn05ggN/6NnlkKJvxaDxaREGdoSN4rVPnwenoh7XG44AwW+NWt2oRVUae7CdZaTJ02f UozQggCd6pQA5H1c2SG9aalj7diOg0zrkq7srXqL9aVnJGeGkbSHAIxpmoG3bA+uXmBJSKWtr2+ 7DF6eO6UhF2ql4ur4skO7HIRADaqOFdEcIXMoQ8iutz4ml3kKwVIMhsOOAXwoXgNTZw6dPFvTUK oOGrXVNKLy/fJX/0x7AiWVUMQSMsG/Kuios2R+atYaJYgzNmP+h2IF2Il+UfCg1zti1vGWy17fO jFSai1Av+dm6o4iuFeMJx4Tgo52MAnqfyksIfcNlB+/tDcM4IwZn3C7WTQp9uxdiHyZV0edPtRS Z2AKjqx+hU/5gsw== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Winston Wen On x86_64 with gcc version 13.3.0, I compile mm/page_alloc.c with: make defconfig make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" \ mm/page_alloc.o Then I get a compile error: CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC mm/page_alloc.o In file included from : mm/page_alloc.c: In function '__free_unaccepted.isra': ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_= assert_1013' declared with attribute error: BUILD_BUG failed 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^ ././include/linux/compiler_types.h:538:25: note: in definition of macro '= __compiletime_assert' 538 | prefix ## suffix(); = \ | ^~~~~~ ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_c= ompiletime_assert' 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compileti= me_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), m= sg) | ^~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG= _ON_MSG' 59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed") | ^~~~~~~~~~~~~~~~ mm/page_alloc.c:7301:9: note: in expansion of macro 'BUILD_BUG' 7301 | BUILD_BUG(); | ^~~~~~~~~ Marking page_contains_unaccepted with __always_inline and let dead code elimination remove reference to __free_unaccepted() here. Co-developed-by: Chen Linxuan Signed-off-by: Chen Linxuan Signed-off-by: Winston Wen --- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5669baf2a6fea75c17b2be426443a6cf29051f52..433dc1936114469a323c8f36597= 30747965b2c3d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7346,7 +7346,7 @@ static bool __free_unaccepted(struct page *page) =20 #else =20 -static bool page_contains_unaccepted(struct page *page, unsigned int order) +static __always_inline bool page_contains_unaccepted(struct page *page, un= signed int order) { return false; } --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 845C2270566; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=PNhMf0wP+4X7TvesCoy/RB74NCQ+6GGgOLioXCooKIhdNIai/PxvAv7PRUFW0Tok6n/kG6w0B9Fpp5C/sEb9WbqnHYzsEtnZl/VXtBx1uq1I5d9ghTKG5Yojvidd2vDjmPTSNHQk5T0LwL5mbuN44iSEwfm3aTdqFraGNAvgIe8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=/prxRR17A4AUb6KENZNu6wyfYJfvM5OCsGMmrdX+6/8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Hna0yWEEbf/us2NLbbkX0ZoJOw0KN0jqCHELjH/Ct9JMYuyGitVf+su9sMSneC3LMuWxHKPTp07OKu3NDE1wHnyu2tvJXaPN7GkrR4/b+Zz2jCTYjJd9/uRc2sw0m2LAeA/dOTkcIAWfMJose6LtfC2aUzv78p4JWO5NdylnpJk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lG9VsAzy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lG9VsAzy" Received: by smtp.kernel.org (Postfix) with ESMTPS id EE095C4CEF8; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=/prxRR17A4AUb6KENZNu6wyfYJfvM5OCsGMmrdX+6/8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=lG9VsAzybNMbTnUEEHKSZoytPudEOxylRsU+yA6SDAHUs3Vk7juqULDjS6C9O5LhB floTcFwObWWgd9Qy9P+MsJCS+3gFOAKzAAOH7m0u/4KWl+qdSjhZU9WQHFKvNXdN8W BSe3ulfFjmdzCAMY/eCXZehkexHdlwS5pZrZjTrqFgqJT72FDN8uZXwL8SBxJ7riwk AI428EO6T1lPUaWRb0VGqUy9vaGQ4WcwBN3SKW2NraiH6KEL9CXGwiRwCQCvt5x0qw YvgmY7X/yDpGTRvRh8Zxgu/GQZGWWwyBUifBfdMWpSe5cOyf5FDSzF4WkOsKwik//K Pr92s9YBYEgyA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E278EC369CB; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:07 +0800 Subject: [PATCH RFC v3 3/8] vfio/virtio: add __always_inline for virtiovf_get_device_config_size Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-3-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3264; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=xG7js8JRxRjbFUIGcKi60xVgk95Kd+hLnEeuvHk0cSk=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAwmuPV3ACiHfIboeRqguBq0EhDlCeY2gJxc awVBFVX6dWJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMAAKCRB2HuYUOZmu i/7eD/9hIYexsn7L7GF/snRnakoE8V20CWkBNi/mt9lRdndsCiW2OdR1Ihha5YAXqecwmxRnfIk Emq8Rre/zUQpqoY7eJyR2xDIWhTnkwkCyfEyTsfGHJLEwQpKTt6VJJ194lzRgNJrsRGkdhoJgPI YVf5pd6n5+4vBUJ/2hfI/Wqt3KqqPR6vu9hUhNnSvGaEfJr67namCj1dKTEwipm+iyXGN7sYjwk snpKKFC8f1CyrsuOK1huwKroAFyXxK4bO9wRbSoE6Gt/WzfA3AIzffrZ/aMgOYpKOZs6Ing6PD3 JJtFMLXppoFpuxaeXTedKMV2BuZ+QBRT8o4qDbJfIlRShfkM7nmkNgwKfyWdeXJVC/xO2NpbaXw oP4yE1mGjdBOkSpdcza79ucV0LSYANd8QnYJp5U0wRF5sJzj2Nll37E/9/W1L6yc4KSM3WdsvwP RsV1dnU8iFNZu61T95iCwa1GRo9dBbiQkjhkOvrBKEnM4ASeS1O0D2PdUlpWE7vO5rmS4F+3XCa Y/P1rp+j9DMaFuEPisA/6hp+L1E2HvBW5Md/Z6qu10+dwT1kPXvMWF0HUIgHhAppENa897twV7b 6F9KYT4mFmdKNtZU6HSx6NzlGP2GxiJ1qZQP6mSPk+y5h2cOxYVABAdoN0CT/1P2jyc5Gq7LZo4 ETnYNoxJgZ1iw4Q== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Winston Wen Presume that kernel is compiled for x86_64 with gcc version 13.3.0: make defconfig ./scripts/kconfig/merge_config.sh .config <( echo CONFIG_VFIO=3Dm echo CONFIG_VIRTIO_PCI=3Dy echo CONFIG_VIRTIO_PCI_LIB_LEGACY=3Dy echo CONFIG_VIRTIO_VFIO_PCI=3Dm echo CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY=3Dy ) make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" \ drivers/vfio/pci/virtio/legacy_io.o This results a compile error: CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC drivers/vfio/pci/virtio/legacy_io.o In file included from : drivers/vfio/pci/virtio/legacy_io.c: In function 'virtiovf_init_legacy_io= ': ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_= assert_889' declared with attribute error: BUILD_BUG_ON failed: !is_power_o= f_2(virtvdev->bar0_virtual_buf_size) 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^ ././include/linux/compiler_types.h:538:25: note: in definition of macro '= __compiletime_assert' 538 | prefix ## suffix(); = \ | ^~~~~~ ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_c= ompiletime_assert' 557 | _compiletime_assert(condition, msg, __compiletime_assert_= , __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compileti= me_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), m= sg) | ^~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_= ON_MSG' 50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #cond= ition) | ^~~~~~~~~~~~~~~~ drivers/vfio/pci/virtio/legacy_io.c:401:9: note: in expansion of macro 'B= UILD_BUG_ON' 401 | BUILD_BUG_ON(!is_power_of_2(virtvdev->bar0_virtual_buf_si= ze)); | ^~~~~~~~~~~~ BUILD_BUG_ON needs virtvdev->bar0_virtual_buf_size to be computed at compile time. So we should mark virtiovf_get_device_config_size() with __always_inline here. Co-developed-by: Chen Linxuan Signed-off-by: Chen Linxuan Signed-off-by: Winston Wen --- drivers/vfio/pci/virtio/legacy_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vfio/pci/virtio/legacy_io.c b/drivers/vfio/pci/virtio/= legacy_io.c index 832af5ba267c49a079009cfe0fa93c15ba7a490f..b6871d50b9f9e278ef3c49a9cb2= baf474b8271c6 100644 --- a/drivers/vfio/pci/virtio/legacy_io.c +++ b/drivers/vfio/pci/virtio/legacy_io.c @@ -350,7 +350,7 @@ int virtiovf_open_legacy_io(struct virtiovf_pci_core_de= vice *virtvdev) return virtiovf_set_notify_addr(virtvdev); } =20 -static int virtiovf_get_device_config_size(unsigned short device) +static __always_inline int virtiovf_get_device_config_size(unsigned short = device) { /* Network card */ return offsetofend(struct virtio_net_config, status); --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A2CDF270EAF; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=F7I9BfC8eFgmq2qjxKKEzpzT6q89K/BVVEn9+1g6KGfMPHPxt+M+LyxUMnXZV4oN5gzt9y9FKkMA71iQMKn22qBAX+A80KSjoV9Rbmi2M9yYfTAB7V0GcOjUSruVgmN5FVjmWyG/xjHjj6nZMlmrBKM6saOevCRsaCKGm1wtDvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=3PdF33JBq1nyxsd62zvfFmuPbfAnSnsdpa3r3ouJFOo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tv7Nbvw519jroQ0WkJLA4Z1CGpkLtnDTGTDEGbjcugf3RAjkbnAcduA6YD21XB1+/Q7XQN6O9QbdSVn9+d90RdY4p6B23dmoxXbq9+Es8QkP4Ko1ghc7wAyPPRfXTLNzsNdc8mIV0ylW3ImHD2NQkqxraIpB1oEN6NBWFKhTQqk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ImSxOheg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ImSxOheg" Received: by smtp.kernel.org (Postfix) with ESMTPS id 0B92EC113CF; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=3PdF33JBq1nyxsd62zvfFmuPbfAnSnsdpa3r3ouJFOo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ImSxOhegHftYhReRG8oW+oM6LY5yoKLWrzrGW2V//kVusiY4KJ6C0HKApYqiV/umZ jZDui8NpjNYOGK5MqF5aClgT+4pvtjZWMb3AgQxuqqCOAz00C0Lpow4dLS8fVmD8AE Ew5h7vn3uiwE1AvsN5M2//c/5JyZpQKKbX7Q2uuKJzjHODfOAkvLYlkfv/lDyfol63 jo+QK5Rd1p+0TMQoBTMEsNJWU3r3jcXOzCGrBtNYQaJBhwRFYH8Og+3Yvb56e+MIWk lrqdTOn18f4raKMikcfbZmVYGUzYJPzipTeU+RQml6v6GlEpxvCZhUZyn6fyKdVLbn 3BOR5syl/U+lg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id F4210C369D1; Tue, 29 Apr 2025 04:06:16 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:08 +0800 Subject: [PATCH RFC v3 4/8] tpm: add __always_inline for tpm_is_hwrng_enabled Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-4-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3942; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=kxFAxUbcgxKFCXw3/ErTxJwPqpRyvp2FJuqCBA7VzuY=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAxPbGcLXiOi/dV/SoVEXm3HRnbi5/8nSvZh +e82+25uS6JAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMQAKCRB2HuYUOZmu i+71D/9hbbS4WFdBy9iBvtGFu5uSk9QxvEUgVVEszHz05+5HiG4ksE8wbutqqbHRzodOZ4fTRqw FBgWQudMTfmZ9Fzj2OyQSpBDCrM8FsKFEp555qc9ICcP/+NEGCSsRMIq6JHxaZziOrAUiqsMpl7 PDahCNl1FroL8m5qLyTgyojpMOANxIr1af/VNJ8bPL6C+kt3UbvxE1BQxJaGaFWwu4tuA6W2H6P 99dM27ARBneT1Ci6a8VKJuN083PUS0DxYveGnH1FdDIjWVzoNOuccgzNF0F8v4/nl2tP84KxlLQ oPDVasKXAZJN0tEcMKQIwEAC+r1bcpKYHpMRVEYDYmBa264Q5nFxMISnjvLEJCKf83yqHDECcUe tggtJisUCNA23s3fRH1vFO5aVh1wasktvWFK0rezqWKiiSOynNsUWjQButCpUZofWo4wTHmJihb Ia2GiI8yLBpkdorp4xsf4SL4zvcLOzgirApNORHtHhkb9txKJ20L2WHS1VhiW7xpl3ejCcR9CpP YW9L2nkVmlDG0qngRaNtWv3EZCV/wN9/811wqZzwMQLNekcn/t8lq9fv9RB/bPjq7aCVZESyGER OBAzAGQDg3kym5GaVrbjje99pIap2zj0QwO9eZHif/0av9uHNFusDMAZGbKPHCqaEevUMehhBGq Eom+AMw7eNH7lTQ== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Winston Wen Presume that kernel is compiled for x86_64 with gcc version 13.3.0: make defconfig ./scripts/kconfig/merge_config.sh .config <( echo CONFIG_TCG_TPM=3Dy echo CONFIG_HW_RANDOM=3Dm ) make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" This results a link error: ld: vmlinux.o: in function `tpm_add_hwrng': tpm-chip.c:(.text+0x6c5924): undefined reference to `hwrng_register' ld: vmlinux.o: in function `tpm_chip_unregister': (.text+0x6c5bc9): undefined reference to `hwrng_unregister' ld: vmlinux.o: in function `tpm_chip_register': (.text+0x6c5c9b): undefined reference to `hwrng_unregister' With `CONFIG_TCG_TPM=3Dy` and `CONFIG_HW_RANDOM=3Dm`, the functions `tpm_add_hwrng`, `tpm_chip_unregister`, and `tpm_chip_register` are compiled into `vmlinux.o` and reference the symbols `hwrng_register` and `hwrng_unregister`. These symbols, however, are compiled into `rng-core.ko`, which results in the linking error. I am not sure but I think this weird linking error only arises when auto inlining is disabled because of some dead code elimination. `CONFIG_TCG_TPM=3Dy` and `CONFIG_HW_RANDOM=3Dm` set `CONFIG_HW_RANDOM_TPM= =3Dn`. This causes the function `tpm_is_hwrng_enabled` to always return `false`, as shown below: static bool tpm_is_hwrng_enabled(struct tpm_chip *chip) { if (!IS_ENABLED(CONFIG_HW_RANDOM_TPM)) return false; if (tpm_is_firmware_upgrade(chip)) return false; if (chip->flags & TPM_CHIP_FLAG_HWRNG_DISABLED) return false; return true; } When `tpm_is_hwrng_enabled` is inlined, dead code elimination optimizations are applied and the reference to the `hwrng_*` functions will been removed. For instance, in the `tpm_chip_unregister` function: void tpm_chip_unregister(struct tpm_chip *chip) { #ifdef CONFIG_TCG_TPM2_HMAC int rc; rc =3D tpm_try_get_ops(chip); if (!rc) { tpm2_end_auth_session(chip); tpm_put_ops(chip); } #endif tpm_del_legacy_sysfs(chip); if (tpm_is_hwrng_enabled(chip)) hwrng_unregister(&chip->hwrng); tpm_bios_log_teardown(chip); if (chip->flags & TPM_CHIP_FLAG_TPM2 && !tpm_is_firmware_upgrade(chip= )) tpm_devs_remove(chip); tpm_del_char_device(chip); } When `tpm_is_hwrng_enabled` is inlined and always returns `false`, the call to `hwrng_unregister` is effectively part of a `if (false)` block, which I guess that will be then optimized out. However, when the `-fno-inline-small-functions` and `-fno-inline-functions-called-once` flags are used, tpm_is_hwrng_enabled is not inline. And this optimization some how cannot occur, leading to the undefined reference errors during linking. Adding the `__always_inline` attribute ensures that `tpm_is_hwrng_enabled` is inlined regardless of the compiler flags. This allows the dead code elimination to proceed as expected, resolving the linking issue. Co-developed-by: Chen Linxuan Signed-off-by: Chen Linxuan Signed-off-by: Winston Wen Reviewed-by: Jarkko Sakkinen --- drivers/char/tpm/tpm-chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c index e25daf2396d37bcaeae8a96267764df0861ad1be..48cc74d84247e258a39f2118e03= aa10d0cbb066a 100644 --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -534,7 +534,7 @@ static int tpm_hwrng_read(struct hwrng *rng, void *data= , size_t max, bool wait) return tpm_get_random(chip, data, max); } =20 -static bool tpm_is_hwrng_enabled(struct tpm_chip *chip) +static __always_inline bool tpm_is_hwrng_enabled(struct tpm_chip *chip) { if (!IS_ENABLED(CONFIG_HW_RANDOM_TPM)) return false; --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5C01270ED0; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=pfrHwvliT7+J39elDBuEkcQuuQ31fY9Dcy5SL9A2aRtfOCkl0ymWGJw06SGd8XCE7vm9Tm/pg+uz/HBHkjEtW43cVKFV7FGbTfjc6YmaT9/X/GqjCr78ZxNzAHgSeZMbSkhgt25w/8WgoyuWs49xPXaJZy9yECXLr8jBoRDUecc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=xaBPg6MMzZtyI5BynxGLu2CWzfYAh0y0igpwIukNl4w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RvMsLXax76/pjn56J0aRi+zcCeUSfNOoBzjkWQBjX9zxIPNpSYICxdJ0hDWhlxdqe8e0wTrOZLNrSxRSWntGa5iEe9jsQSlUx+tFkfJ6yBSc8i5uLF218phTcuh+KwlPhTPJSxbLasmBXplmxAqa0VOFRKsVRPldM9xFXjhmwIA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rRQ75lu0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rRQ75lu0" Received: by smtp.kernel.org (Postfix) with ESMTPS id 1D9C1C4CEF4; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=xaBPg6MMzZtyI5BynxGLu2CWzfYAh0y0igpwIukNl4w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rRQ75lu00znvBITjVyrAMVKtCn2AtPLSrSuYcoZf125A63zHSdMhkAi/HFUGNCNeK J7X1yl7r0rN29gdmq5SsHcGn/T7CmDF/ID2Uvi7mvr0PFwvdGJmCpdOIysf5LfRnjC 1w21Gx6IhBsNzjDnYjd6ko75qTravedUuRFoDbjzIS1z9I6hCFuD3mi0z2GXS1i4t6 27AUHJ9cCIxoiAkllQIMQpLiz/s3c9V6KCvxFG9I9FzO5D6fpDGPZSi6DGeJKkmgmX LtIjdVeuyd+wIT4KgskYvFdzQ7diMBplESrWTHBJv/Ah47o30uQF/CA+9DkHa7pT6h 70djD7BzAwDPA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13BE0C3ABA8; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:09 +0800 Subject: [PATCH RFC v3 5/8] rseq: add __always_inline for rseq_kernel_fields Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-5-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1064; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=yuauFI3DVy8k9g1XQ1OrB7eESWm7f+B3/2pt9syGKzM=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAyanc3Cwc7HAg/63YHY6NNSEBN2RhZfPBtP dtxoPOqXNeJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMgAKCRB2HuYUOZmu i7aID/44sv/mzy4WT2GTGw2LDhzFHfM+7rL13wS9xt+G7CMG4l6A0rduPv9Kj1+aTi8eOVMJft5 5TiNxVdcrGKSr3zwVOY/PNRlc66oIZlthPkrupbFv0SD5r0m5xlYv9Q9WAMMOLU1a+CKw7KXlIK zUkQ0dGZaFEhfFS3giTzwyMqJS6nvmjb5iRc4Zz/XOtdtIIBsD6qlLRwQDdV4KuiKgfabOvMbeX C/d2ZrlzN8bw8uBY9bJS4LF4cptR+kay58eEnIn86mc9en18eq/l2Y01BEqmDWaad6N+FJDodwI pMr/+GVr6bsXlGZJ+sULeKleGffl4G1zIhAoz7H8I0oNmr/nSGd3Wn6BKIxuLhtVppnLY1KsvGa yf2RsSmPzJHLCXkfpLhDD/oicoxFl43gpHqaND1YU47v6537LXhTaUC1wslQX7j/d1+ujI4YwtF vOr8GQoQM+gOCkSVJLMdhN73NjDBDQByqvsYdot/uoc2GscYToCLN6G8w6S/yE1iwgbv9J0upsK hCjXyMYy0yLyfeIMCV/s3OTjYIs2fkUTwhR/5ByE/gU+4GGrFSrBbZP1FArrKKo834SUQ98QfUi V+gTyYTxvmL/HMhC3LP7oMkp9BWNsUvbCEi3F0KTEm/YPo52etQ+1LPa6z6VqhkHXnGwZSJcPtW crGc2BctRQzKvsw== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Chen Linxuan Presume that kernel is compiled for x86_64 with gcc version 13.3.0: make allmodconfig make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" This results some objtool warnings: vmlinux.o: warning: objtool: rseq_update_cpu_node_id+0x14c: call to rseq_= kernel_fields() with UACCESS enabled vmlinux.o: warning: objtool: rseq_reset_rseq_cpu_node_id+0xef: call to rs= eq_kernel_fields() with UACCESS enabled Signed-off-by: Chen Linxuan --- kernel/rseq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rseq.c b/kernel/rseq.c index b7a1ec327e8117b47e353cab92d62111dd261520..7a4b6c211359714087a75304758= 1bc8ff0c6c76b 100644 --- a/kernel/rseq.c +++ b/kernel/rseq.c @@ -27,7 +27,7 @@ RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE) =20 #ifdef CONFIG_DEBUG_RSEQ -static struct rseq *rseq_kernel_fields(struct task_struct *t) +static __always_inline struct rseq *rseq_kernel_fields(struct task_struct = *t) { return (struct rseq *) t->rseq_fields; } --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5B9B270ECF; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=j6QX7/RqOaXLlqnZTPmOrSYOHMoKVmJqnhrFJuUEEXszghDupSALo4wH7dD1IH3b/t4fFYSiGRYJqmIjol9wHIujAQpwPUdyrtHc2djr9RErkVQ6pM4onUXmf9WjF4MABIu50zmDwFNCVzvhjEZVhtBIqPtQJyIHoVOZ9myWcQ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=k2PRcTC3BnKrnGtxiZbpr39EydncBfZx8pWBXCBrn+o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=degmuJZKJ/AKIWvmKcc5xHA1W5cOWhbnVaWFVa/70FCGTVcpZHXY3Z0As4TqtjOmpvsSj3Qgs18GELsKkI+ZwfWl/zkS491HHmB+6TuLSz+sP6y8HxRRcZNd3+7hw5piBStKIglw7k3F3vveMZhFcldocTalk90DzTlwR/pEIXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sl1R/QSS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sl1R/QSS" Received: by smtp.kernel.org (Postfix) with ESMTPS id 32BAAC16AAE; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=k2PRcTC3BnKrnGtxiZbpr39EydncBfZx8pWBXCBrn+o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=sl1R/QSSKs05tUYWMQq/uiCadkREGBOU5tVJHGA66P2EkOFGfCC1JLNOssSpJjpfv i1N3YAK7hTIvrT9evYzjPTpMtl9av07WHvpZFrJXHyBHKvQWjn/JhigCD6fkfMAGPH JkY8VguW7fzhxvQAMEhDofx3SSxc7yjIqdbHjB9Zr5KEaqG9hWmkcjzjao55vtZ/NI q8WnG0Bz6jZ+4e+KKoj5E4dzgyIM5z1gqx+F00UJmhuUlydMRP5jx4WNva+ZnwM6YJ EGWX7EYVTkC+hr3arTlEqZN+KPB4ASUlbCDvZNZIqqfe80t6+0KxhgB0ir2HqOqYyq ONp6bMmilIzFA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25755C3ABA5; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:10 +0800 Subject: [PATCH RFC v3 6/8] kcov: add __always_inline for canonicalize_ip Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-6-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=999; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=bu46wuQGrDj6kBvEdZGeSh/hu1kfUprs2xtOHC9YvDM=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAzBVNZPkSl6Omnu5oU34AQK+1mpqi/WLkNr 0NEvxK8dUyJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMwAKCRB2HuYUOZmu i8g1D/40bhkDUMn5ZsiK4TnuOugcii2OnZKhTkti9V/LWWRvgzRyIsQwQx4FtXYSoLWNriV0VjO CyBhHFDEFDn9Qz/M965AcIUUmKLR5grVtMB9zo5zCc6a91HPJy6GMCb7vQWZAzb4+pWGKnhvAMx Ov0wOqEkIfqqFMjOVcO8Vm4hfpv/gUj81gfM3GBjvGd2OHSGu5Pij0pZYLJpk1zPwPTmvDqrsz4 oYuo8iGnQFrGPoCp8bulBU2twHYxidXZqedbEM/1LtFaKcmn/lXQC7zQRnMoVVJw/VWRJEm3H/r ZAZEvQW29nAzq7hH4vvQnts2FtjI834A3qFtxQn63CS2Sfr4r+Cq1EuVsao/7MSVIED9IWykpk7 4zxistnA1wTl+9FGo+ICJdWpP4NFZYJXYzFIo2tProekWZDMySQIIR8PlepBYAhmPBM4brAn4p+ 6EeroMTKyY8ruNjdDNz7d2T4eCWNT79QPnCWQnqqQnu6en7oxsQ2nWq0yCWUgq6PiInxlG1IrOp ws0NDutFTcctb93F/sUKWR8fxwjFNCr2kJf2YNiq9h6vsJ5kJf0v5kwbgfSvV4AJmDUqbWsjulX AA7Pwu8V0FCWq4C/mflHXRlVyt5MBdGeteRJDx/xMeppywk4M4UANlKUX+SDfpwBq2fbdtOztNl do0e6Yl/yQUEHnA== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Chen Linxuan Presume that kernel is compiled for x86_64 with gcc version 13.3.0: make allmodconfig make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" This results a objtool warning: vmlinux.o: warning: objtool: __sanitizer_cov_trace_pc+0xc: call to canoni= calize_ip() with UACCESS enabled Signed-off-by: Chen Linxuan --- kernel/kcov.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/kcov.c b/kernel/kcov.c index 187ba1b80bda169d2f7efead5c6076b8829522ca..a2e2d3c655406b5a1f53e4855c7= 82727b0541935 100644 --- a/kernel/kcov.c +++ b/kernel/kcov.c @@ -194,7 +194,7 @@ static notrace bool check_kcov_mode(enum kcov_mode need= ed_mode, struct task_stru return mode =3D=3D needed_mode; } =20 -static notrace unsigned long canonicalize_ip(unsigned long ip) +static __always_inline notrace unsigned long canonicalize_ip(unsigned long= ip) { #ifdef CONFIG_RANDOMIZE_BASE ip -=3D kaslr_offset(); --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8832B210F59; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; cv=none; b=JilON7LA5nt0tSp9ueYCsCeNYx34VZr650z8Pr9/1rpkOmdCsSATMKUg2lwjuKmGK9DY9FX7SJri8kXl8k8dHNfsJaQ2fVxBavGwOrK4MsBLkJwAkgQIi3Fhb9U5AzGpS2NE8rSUaqD7vrBkjl2xqMVGuTQss2B1m7Qj9ouD234= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899577; c=relaxed/simple; bh=puwaWg0YW0DjsEBEYIoY8x/bLms2MxI/ob3ZfklRDPw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GgZjT7ElXAqxC2kEp9ARElSu871fbQG5E+zbaHTMSGbr+t5ftaIIqfnAV6HnY/Gn7CnXYxYGOCcDfCP15w729UDW9f3J7sX5DE12FKx8L+d5POZ1woyk1xO3PTMrog+bYxhEYq0SDGgInPqu0VmF4XIAtJv8tHGs5krJ6S/Y9Ow= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c0NlFGD/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c0NlFGD/" Received: by smtp.kernel.org (Postfix) with ESMTPS id 469C7C4CEF3; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=puwaWg0YW0DjsEBEYIoY8x/bLms2MxI/ob3ZfklRDPw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=c0NlFGD/nhB9z6/D4xtydBdI9lJs5L3xbB+eo5cTRMg4n9RpEdjaAhdvc2frC/XoC 5Lj5jHazpgfih7eU9Ip8zL87n2W5/Y7Xl7J5MUrNvUFI2sb3RB4BqU5pWTALmAZxrL regj0Ag6HkRUHS3xBvMdE2pb2vrLgesn1qt2AbGY8HXFnjIdmTVcNrNrmloKS1de70 gu28EB9CLlaP68ai4PHXtKJqNUO/eYwYJM4vU8DspesAceo2GgBqak5RBzqxLyJenI KBmESNyXPRuCOOdoZcRlGFtuk67AXj0qsy35tYZK+DJvG69bCPTNEcNR9Ad1mpMaJl Y5LlZLpxc/FHA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A16FC369CB; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:11 +0800 Subject: [PATCH RFC v3 7/8] x86/xen: add __init for xen_pgd_walk Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-7-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1213; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=lLv+eC36iR+BfXD2pJvuB8T7k1wRLfuYuYg6Rtr4yeI=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFA0cu56sCmDMkf/pntxUHuMuekP/XRkxukwU 9g4TyNMqLaJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQNAAKCRB2HuYUOZmu i6oqEACNTdOu+wT9VWzDqaJxYPJzTDzhyaDgOrIaxGP72CExKq84a645B1Jl3TWZN1v4YEQN+Ex U4BBfSuuQ9Yh0TKak7F0oJPgeJp4PeTVBP15tbocmZJmYUHXdJX5kcB6+MgIe90/7/tlKRXQlN5 uY8GMIazOdRrWgafA6k6G+0lJvn3E3R5v7129rFXvHWCYC7Nvp2Vr8gyxE2IYJVHEfZx/+ua0oe z4a0WQgFS0t6W9PacgGnUTntuj/TGKVYb500Jwut0dBDJITdWXpackuvyCzviwumgxcGnbW66J/ sPOW9GIhrql6r3JIF1vU1iTJ1wxWyv8Al2Yy2Y7j9ypL0F07+xTB5euDs2A9h8HHd2x+0MwnqRD 4T62VOpuvuHAy1CMHBv75g1GHhwTGMN1KwfuI0Pf0TXrf9JM01deVHQ7vjI5kZhyeYMl537pJVJ 0itemi/gfnvcGViZ8usYXjp9yKtWO3JsSCn31sNT7BwsAtjyIUQl+DeQyQADc9wUchfIkTRw2AT nXmGd9l2kspY+Bd3KtnokiL1Gm1q49EmDFnwJw+FvsjxRdcZ56x9pI1MXcoOzCJNGSxYn35Witw vt49LNms8G/08qnrm3qBl6k+q0+gMBVS+JCmJst68knEU97MDg5chkLEEiEkEAzZLrlhGHN4eU8 gFY2uFKRqDDEdqA== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Chen Linxuan Presume that kernel is compiled for x86_64 with gcc version 13.3.0: make allmodconfig make KCFLAGS=3D"-fno-inline-small-functions -fno-inline-functions-called-= once" This results a modpost warning: WARNING: modpost: vmlinux: section mismatch in reference: xen_pgd_walk+0x= 42 (section: .text) -> xen_mark_pinned (section: .init.text) As xen_pgd_walk is only referenced in xen_after_bootmem(void) which is also in .init.text, I add __init for xen_pgd_walk to fix this issue. Signed-off-by: Chen Linxuan --- arch/x86/xen/mmu_pv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c index 38971c6dcd4b78b6b14f51bc69c4bf6b70ebd622..53650888be0a7b1dba170a5b7ba= 9c654244b5125 100644 --- a/arch/x86/xen/mmu_pv.c +++ b/arch/x86/xen/mmu_pv.c @@ -696,7 +696,7 @@ static void __xen_pgd_walk(struct mm_struct *mm, pgd_t = *pgd, (*func)(mm, virt_to_page(pgd), PT_PGD); } =20 -static void xen_pgd_walk(struct mm_struct *mm, +static void __init xen_pgd_walk(struct mm_struct *mm, void (*func)(struct mm_struct *mm, struct page *, enum pt_level), unsigned long limit) --=20 2.43.0 From nobody Fri Oct 31 16:05:23 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D86122741C2; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899578; cv=none; b=AD+WZrqWIz73bswLr1jw5ILxq1fqdXD4PSDDlTQ+cdNNNO2KEtv2Xu+Q8y+HNOfRLRt+VnXipYaVCPMjAfgzCUzqXY1IM/9QSnNkw2FfX1JFHcX44rdo+prluvbiG5C8cXyNJav1eeMAnJf9+6OCf/0pJjtEqBE0F1od613QzYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745899578; c=relaxed/simple; bh=I3qZ450wr0Q9CAPbI9DMJdfFZ5c1+02YMYdsGYpKCO4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ue+oEsvHSxwCu+IKP/oQYK+5mqilH1/XxEaP84h++etsYrUvISPnq2RI9gTbvHqbc0ezLejkkeqvCLzp7IIhTzVfGZOYyNanSef6hUSCxkY3OL2RyXQQbJ+e0XETXy/HoZ0tPpJbMZtd/qu+2vzHCiQNRMOMgvyYRrIbm7s+jNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JE0vEjoK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JE0vEjoK" Received: by smtp.kernel.org (Postfix) with ESMTPS id 58FE1C4CEFF; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745899577; bh=I3qZ450wr0Q9CAPbI9DMJdfFZ5c1+02YMYdsGYpKCO4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=JE0vEjoKdI3aoLXySgz46sIqLxGHS10+ctvdryhzIzUS4HhXuF3Tl298hubpjKFM/ w6TK/WAFgLyiSvmTT0C7btzFR8/sJwuEVJ7dvhLp/FopZjfp4F38JZxjFbjWToxx+2 ZOs3hbeOeMzuD9W/l6w5BjAZ2TP8rnJk5mpj6qfsfebVTmp5WeguGbLar2dJg+54Ta BQeBNnkwOGxnWBYdRi+L77qoR8Ib+Sgt4uGR4FMtkCWkIFE7JcS9361sDdnaf8uzpI 5PpYZSpLvvidhBYF+z1LHu2vN47VszMgmkxuY95ZwPxZ0LohS1hnrc8xtucx7pzmvs 64lF44iLXmi+w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C8CFC3ABA8; Tue, 29 Apr 2025 04:06:17 +0000 (UTC) From: Chen Linxuan via B4 Relay Date: Tue, 29 Apr 2025 12:06:12 +0800 Subject: [PATCH RFC v3 8/8] lib/Kconfig.debug: introduce CONFIG_NO_AUTO_INLINE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250429-noautoinline-v3-8-4c49f28ea5b5@uniontech.com> References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com> To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton , Yishai Hadas , Jason Gunthorpe , Shameer Kolothum , Kevin Tian , Alex Williamson , Peter Huewe , Jarkko Sakkinen , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Nick Desaulniers , Bill Wendling , Justin Stitt , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Mathieu Desnoyers , Peter Zijlstra , "Paul E. McKenney" , Boqun Feng , Dmitry Vyukov , Andrey Konovalov , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, Winston Wen , kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, Chen Linxuan , Changbin Du X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4279; i=chenlinxuan@uniontech.com; h=from:subject:message-id; bh=Bd93x7WuEFeV0iOsS3dMjqDGQS+n9awf6aimsKD9UOk=; b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFA1dN0rUHGv15CSgUAacYmKqLp9Xxxon6yon c7TiGmprM+JAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQNQAKCRB2HuYUOZmu i55nD/9Z3vTJGmV0EjUhmeI4qXKmcdAMAq1X/bMvCKKqJb8nDqxr3XzOsrgtlGbWtGbSRpAcMRC kIBZwz/EFrXdSky2mgTEfswE2JzuHKo+Mt434POfvbTmTZzfhinHk2rveNLn14K6QQxOZNTHzoq DY3XtiBsr5/6XiSk58sFs0UB2do+v1RDxbRgPVRbwakBRf2EpGtYK+ZkSVPourJzkqG7PrIvHKY FyKSLRcxh2ehQ+zdjfMyhxbXKMW3rLF6KyReLohSbuPnAZH9vBG07d85cT+hlqayZ2VFrTJWayX ogvHBmQbs0jd6kEOOcqxulI9+HLWeFHpLWXkscXCbtKYFnN3of88CFc5dM1NBfTsa2bE/5c69eS TXaS9CEvSaJLZP2bguKxeYXuKMcX7aCIEmkb5ywt+zXQ2sBHHXVo62B2vH+ZEPTvJ0JBvREoDHA Z07bh3e0yi+U/gCk96uDLgnOmSkQUjen6r/WDp03CqP8r46lIU2aWAN8mPN0/bL6Leb+yx3Y5Gf MfHerWdPEqYeBh6stf8GRI22HdoAjnaigM4iGlYaLrvgjiuVjR2tHFFGtnPEviP7O+74W7AnPTn n9vHmKNe5H9AurNLXL/K7j5eRYSPpaBVROMuUUngVLHw7qljfnSQMwRNYonB6pGCO3WTd5AnIHj tq2/DJ+5MgngDcg== X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp; fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21 X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with auth_id=380 X-Original-From: Chen Linxuan Reply-To: chenlinxuan@uniontech.com From: Chen Linxuan Add a new kernel hacking option CONFIG_NO_AUTO_INLINE that prevents the compiler from auto-inlining functions not explicitly marked with the 'inline' keyword. This enhancement improves function tracer capabilities as it can only trace functions that haven't been inlined by the compiler. Previous discussions: Link: https://lore.kernel.org/all/20181028130945.23581-3-changbin.du@gmail.= com/ This patch is modified from commit 917fad29febd ("kernel hacking: add a config option to disable compiler auto-inlining") which can be founded in linux-next-history: Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next-h= istory.git/commit/?id=3D917fad29febd Cc: Changbin Du Co-developed-by: Winston Wen Signed-off-by: Winston Wen Signed-off-by: Chen Linxuan --- Makefile | 16 ++++++++++++++++ lib/Kconfig.debug | 21 +++++++++++++++++++++ lib/Makefile | 3 +++ 3 files changed, 40 insertions(+) diff --git a/Makefile b/Makefile index 5aa9ee52a765b7aed27f44028cdcc34a90979acb..60dec6c123543150a3332a9a819= fa6933e94db4f 100644 --- a/Makefile +++ b/Makefile @@ -1073,6 +1073,22 @@ endif # Ensure compilers do not transform certain loops into calls to wcslen() KBUILD_CFLAGS +=3D -fno-builtin-wcslen =20 +ifdef CONFIG_NO_AUTO_INLINE +# -fno-inline-functions behaves differently between gcc and clang. +# With gcc, it prevents auto-inlining of functions but still considers fun= ctions +# explicitly marked with "inline" for inlining. However, with clang, the f= lag +# prevents inlining of all functions, including those explicitly marked wi= th +# inline. Clang provides the "-finline-hint-functions" option, which +# specifically allows inlining of functions marked with "inline". +# +# In summary, to achieve equivalent behavior across compilers: +# -fno-inline-functions (gcc) =3D -fno-inline-functions + -finline-hint-fu= nctions (clang) +KBUILD_CFLAGS +=3D -fno-inline-functions \ + $(call cc-option, -finline-hint-functions) \ + $(call cc-option, -fno-inline-small-functions) \ + $(call cc-option, -fno-inline-functions-called-once) +endif + # change __FILE__ to the relative path to the source directory ifdef building_out_of_srctree KBUILD_CPPFLAGS +=3D $(call cc-option,-ffile-prefix-map=3D$(srcroot)/=3D) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f9051ab610d54358b21d61c141b737bb345b4cee..56530f0145c885e9846dae1d2f8= c6125c610d25b 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -436,8 +436,29 @@ config GDB_SCRIPTS instance. See Documentation/process/debugging/gdb-kernel-debugging.rst for further details. =20 + endif # DEBUG_INFO =20 +config NO_AUTO_INLINE + bool "Disable compiler auto-inline optimizations (EXPERIMENTAL)" + default n + help + This will prevent the compiler from optimizing the kernel by + auto-inlining functions not marked with the inline keyword. + With this option, only functions explicitly marked with + "inline" will be inlined. This will allow the function tracer + to trace more functions because it only traces functions that + the compiler has not inlined. + + Note that Clang with -O2 optimization does not fully support + disabling all inline-related optimizations, + as Clang does not support options like + -fno-inline-small-functions and -fno-inline-functions-called-once + that gcc does. + Some functions without the inline keyword may still be inlined. + + If unsure, select N. + config FRAME_WARN int "Warn for stack frames larger than" range 0 8192 diff --git a/lib/Makefile b/lib/Makefile index f07b24ce1b3f8db28796e461db1324d97133fdd5..2ac97f0856a12f66e6c3825af6a= abafa61869262 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -87,6 +87,9 @@ obj-$(CONFIG_TEST_BITMAP) +=3D test_bitmap.o ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_KASAN),yy) # FIXME: Clang breaks test_bitmap_const_eval when KASAN and GCOV are enabl= ed GCOV_PROFILE_test_bitmap.o :=3D n +# FIXME: +# Clang breaks test_bitmap_const_eval when NO_AUTO_INLINE and KASAN are en= abled +CFLAGS_test_bitmap.o +=3D -finline-functions endif =20 obj-$(CONFIG_TEST_UUID) +=3D test_uuid.o --=20 2.43.0