From patchwork Fri Mar 21 20:41:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kees Cook X-Patchwork-Id: 14026036 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F270CC36002 for ; Fri, 21 Mar 2025 20:41:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE640280001; Fri, 21 Mar 2025 16:41:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9CD3A280006; Fri, 21 Mar 2025 16:41:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3671F280006; Fri, 21 Mar 2025 16:41:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E4959280006 for ; Fri, 21 Mar 2025 16:41:10 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 7380CAA8DB for ; Fri, 21 Mar 2025 20:41:12 +0000 (UTC) X-FDA: 83246727984.24.3970AA4 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf11.hostedemail.com (Postfix) with ESMTP id CBE7F40006 for ; Fri, 21 Mar 2025 20:41:10 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CYzyp0aL; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of kees@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=kees@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742589670; a=rsa-sha256; cv=none; b=lsxD3HYmiunWxCHLZZDsg0qK0A/dLfO7cwXJ/e4NNABqjUrY7t4ZHHZHIa1Nd6iZ5OK2Ey LmDqaPry6oqAF228JtXx0JBFDBdyKkCaSAm2ylU50W7fcT2Hum8cCuqM6P2JPJFQdIjdB2 M2+0XWsB03QDFZPTVd3XOBg6joNE1B8= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CYzyp0aL; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of kees@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=kees@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742589670; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=TEUAucJvJj7Eg6WEQwDflDtkEvhO9C1WOkhyR5Lk4C0=; b=vaDw0wm1yJjkD6qmIwNF4SEP97rPIxQjIC8VIDXBtnh3avqnJy8Wo9zd7FBezh2HDKnc2l O9yR+4HQZeo8hFZJzNdf/LO8/w+95FCk7B+968aaem0pg9sMTu/uegwkWnmitrJ2ETPwa3 k/PKNlX4n9oGb7wzwhMckBdyNHYMrxU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id BF00AA495D3; Fri, 21 Mar 2025 20:35:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1762C4CEE3; Fri, 21 Mar 2025 20:41:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742589669; bh=wsCETj06SFFwh38K8EPA2OIG7ZSdRNghUF4foeMZKA0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CYzyp0aLWgDl0chozGbeMXfTMMhk/SOYcfZdkjm35EMrTm3VeBv90LidlrwxCiInT namgg0O/WeBJmRe/N4ulBNHbUwZ8VjE6cjPYe7sBRXlz7qVGFp5eSGKmWw6y2cpxSe qA/8qqMlwf/C1+n12LCV/XaOphvs2/5TPUWIlDSqyiF/hu3aUu+SoMzuqFYYNSxcs4 2MwBQCaqAvzjWPyCkgd95sfobXgphcIaJ9e+cTdtmnpjmBN12zZf2MzS8OAJWd81ty YZj7useSYKYdXG4Par3lBSq4ANcAPOEYyVGD6gPk24uWmvZcKP9HlEu4GBGDm6OkyZ KMUavJYMseCxw== From: Kees Cook To: Vlastimil Babka Cc: Kees Cook , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, Miguel Ojeda , Nathan Chancellor , Marco Elver , Nick Desaulniers , Przemek Kitszel , linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org Subject: [PATCH 5/5] [DEBUG] slab: Report number of NULLings Date: Fri, 21 Mar 2025 13:41:01 -0700 Message-Id: <20250321204105.1898507-5-kees@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250321202620.work.175-kees@kernel.org> References: <20250321202620.work.175-kees@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2271; i=kees@kernel.org; h=from:subject; bh=wsCETj06SFFwh38K8EPA2OIG7ZSdRNghUF4foeMZKA0=; b=owGbwMvMwCVmps19z/KJym7G02pJDOl3z91590rZfsX3/KkRkz2Tr3/lvxS3c+Frkbx/J5+sf qA7OS3+QEcpC4MYF4OsmCJLkJ17nIvH2/Zw97mKMHNYmUCGMHBxCsBEbE0Z/unwiAjKzpU2NTzO nvHlE8OVdfGafqJGd9xSlqZW9TqXOjD8zyla8nTDqfSFWhVxl4Ne67d/+yrb8F3pns91jnMnnb+ 95AcA X-Developer-Key: i=kees@kernel.org; a=openpgp; fpr=A5C3F68F229DD60F723E6E138972F4DFDC6DC026 X-Rspamd-Queue-Id: CBE7F40006 X-Stat-Signature: j3ri433xwsban639rsu4i18qnwyjiu93 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1742589670-230193 X-HE-Meta: U2FsdGVkX19JDyEQFHjf5vnv8w5DQxZM2On7WaZKXTZe04SaAhMUOVyyL0uLbVZns0/+ylfE8RLbnXz4f6S2M99tasiQ27Zy67h8gXLLuh9hVsOFoNroD2U9MddbAI/wMMGy4IawMWZFgagsPVrnhx9siFjTpsssXfp2ik35q+2EyB1c8GtSDsO1Y7bsHU5ayF6Z3d34adLXi5qoQIIMRFWvEonRKcBUBcYMEzKD2nLaXjsOtVz5wAzxv9xU0+8q/AGr4MwmsX8lIch2c2fK+xLxStK44msyeHuexjESo28PYaIFuvpRWFlmTxGJkv4lK8W57sBtSAojwcYffTKAEA1jfcyAVh+s+rz0d106dBt5jg48KzBMd6NUWEDE+U0VkcUmLgNWq3wthngWMk3yBTv+IAjv1jZxT/N3kq9ef9ALIBvBZU2RngCyCYzAYVoWQqh5pPDXydGzil7v+XyKMRUXRstMbdWqU2IXCuY+PhvTmTUt4K/uSacVLSJNQJPOwCEI84VxBPfTUDdlAjIijOcgU0HM0cDd7fEyme/6KXnh90apUjE6fKmDWdjmGNLUhA9O0nntQdEJ3eIKCK7HDltWjfr76oeaPWv/kids55buuPEyqCo28H70L+JdoKaq5/tVbK5TMg9/nIi6QQN4MwFQbxKtHJZ5FiclEI4sVgvO4vll0bs9YhOXG3jLecAfQdsmbwSTnlIBtlkz/OghZ2cJ6sgdUwCZPZe7NX5q4L3h6Z/VuIUh2Vw4Fj1d7ASdAGrOlm5Tf/1NJ2FumhTxTDPRMmDtPISriVVbtuDQcTWqKferX2uLyMpptxe3qOK/MuSb7NU7Nly2lBGAwEAQ6F51128c07GlbTp/AkG/8XobdfijKjOFoxduYP4XSEK+ceUHMMoTxP0MHQEOAfmhh7tkb+q8A7VmlgkhEqPcO0JyWATPQ2+d+weiA0fOdu7GahdzsXtrWsd0EgwocRR yubs/RMa /+ey8rBayJCqhZJSXFv5v6PoSZm2wRdxzC5/XTZlATUgs/lk/V6LGHDlSEhj/HtYaA5Are9x1dIP/83eIDEp0KEqCY6flvtx+FmN4fOHhTexdWr/Ot9q7WBi02xJqpc5NXUCzLxT6C+p8fgV1yA3SkZAd9FdnKPdDoAia6ocHmNOHFGawrFieew0uJkh1DIUz7CLUYM7BivG+u7T2/VA209f55dIJT9gKYRDpwPAEwc3T+bN+QmPK8gZjvKId9TdHQMDtFiasEeTFtqVpTCxL47jMEsEAUMeBVKx+LN/+PucfTyWX+Vk/ttBd2R2KXhsGzZt0gSTPbIxgrDvnUcP1q7lwdO03tTpdQp+wcisZY4gOAr6OvVtgM3ylNDdg76QV5wxYDzhjg8Sgnw56kKZht54lzgUcJ+ADevis3/rQVVig/yozCALz0GRKQkz1YJhuWBhGLc3ZSL3NZ6/u1pGvDzVQo4VVXY7agyZuag3wkptwRIy9OIg/3A8WqkHsyU6kG6k8UMH0iM42pFCWbinvjgEUaowCJA5RKFelltlmXO26CCM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Just to get a sense of what's happening, report the number of NULL assignments that have been done. After booting an otherwise standard Ubuntu image, this shows about 240,000 NULLifications have been performed. Signed-off-by: Kees Cook --- Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Andrew Morton Cc: Vlastimil Babka Cc: Roman Gushchin Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: linux-mm@kvack.org --- include/linux/slab.h | 3 +++ mm/slab_common.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/include/linux/slab.h b/include/linux/slab.h index 2717ad238fa2..a4740c8b6ccb 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h @@ -469,6 +469,8 @@ void __kfree(const void *objp); void __kfree_sensitive(const void *objp); size_t __ksize(const void *objp); +extern atomic_t count_nulled; + static inline void kfree_and_null(void **ptr) { __kfree(*ptr); @@ -487,6 +489,7 @@ static inline void kfree_sensitive_and_null(void **ptr) ({ \ typeof(x) *__ptr = &(x); \ __how ## _and_null((void **)__ptr); \ + atomic_inc(&count_nulled); \ }) #define __free_and_maybe_null(__how, x) \ __builtin_choose_expr(__is_lvalue(x), \ diff --git a/mm/slab_common.c b/mm/slab_common.c index 9a82952ec266..0412cbab81f9 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -42,6 +42,9 @@ LIST_HEAD(slab_caches); DEFINE_MUTEX(slab_mutex); struct kmem_cache *kmem_cache; +atomic_t count_nulled = ATOMIC_INIT(0); +EXPORT_SYMBOL(count_nulled); + /* * Set of flags that will prevent slab merging */ @@ -1084,6 +1087,7 @@ static void print_slabinfo_header(struct seq_file *m) * without _too_ many complaints. */ seq_puts(m, "slabinfo - version: 2.1\n"); + seq_printf(m, "# nulled: %d\n", atomic_read(&count_nulled)); seq_puts(m, "# name "); seq_puts(m, " : tunables "); seq_puts(m, " : slabdata ");