From mboxrd@z Thu Jan 1 00:00:00 1970 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 02A5FE77182 for ; Thu, 12 Dec 2024 07:10:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8BDC46B007B; Thu, 12 Dec 2024 02:10:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8463E6B0082; Thu, 12 Dec 2024 02:10:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6E67A6B0083; Thu, 12 Dec 2024 02:10:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4D7D66B007B for ; Thu, 12 Dec 2024 02:10:13 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D88C6A10BF for ; Thu, 12 Dec 2024 07:10:12 +0000 (UTC) X-FDA: 82885432308.21.184ED5E Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by imf08.hostedemail.com (Postfix) with ESMTP id 1858A160007 for ; Thu, 12 Dec 2024 07:09:54 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Vrp3P7vH; spf=pass (imf08.hostedemail.com: domain of surenb@google.com designates 209.85.160.180 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733987394; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MSwCXQ5wEcG34n6FNAmRCNPsG3IEf6YvAYA+YW6hhoo=; b=uQyDEThCQhyl8fRcI2RR3Tp8RUdmqK6lpXLIEWejyMFPg4HbCiyUpQliyzeROpvfa2Fce3 lLP5hwp7bdcpNoIAMu1cL7PlDPPwJbSEAgIF1YkB1BqGwl5YEHtuJsfk74vnHlBBZWkgwk WwPZGTubGmS2TdxW1n0kWV5dC36pmtE= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Vrp3P7vH; spf=pass (imf08.hostedemail.com: domain of surenb@google.com designates 209.85.160.180 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733987394; a=rsa-sha256; cv=none; b=YNTpj7oM3g4yXrSYgo2Za/V5V4+41ns+Tj2KODVrCPpmIBTaB8XWkzSgS+jrocfxkWTnMn fxGN2NfRUjVE8iq52kXFSWLcmn79VwrMwPBaHR58AeZ3URcIw+Aruv/Ghn92tv/T4z3tB6 jHEsDlQx8ziDIhVhhXOfOAoWpZlcwFg= Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-4675936f333so111291cf.0 for ; Wed, 11 Dec 2024 23:10:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733987410; x=1734592210; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=MSwCXQ5wEcG34n6FNAmRCNPsG3IEf6YvAYA+YW6hhoo=; b=Vrp3P7vHbNIZxQ19J8U0qG5e35kdeQ/YFEglXtdIhV0utUUuuMtwY5yjbhsxUo7RKR Uel4iDN5XbD3BU0KatLTAbIUFEcDh2lMGvawb9jrP+DtgXGbfJ7sSWwTGUC6mX0P15cf P91t+KUl2ZVZsFm38XXApXLOmsdMITJazOzW7FF3rmKwP3jb/yQiuEi0CAf5OPvMPpdm Hv9e9Y8VOpya76llinZP1iU+TlJtTm6uAfjFdz+r9iMOMb99/GS607Gbz53LA/zFt0Pr cxeFM0l17k+PQqHJUShzPNhPRs8k4LkMxMu+Igohl3O9eV2JLZsO+rtk6NBdVRAVn/9w HfKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733987410; x=1734592210; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MSwCXQ5wEcG34n6FNAmRCNPsG3IEf6YvAYA+YW6hhoo=; b=i3VYgMPYzRJT1ZFRJqeNMwBldljp8hjNEmTe+Jnu2miwzS2fOvmRtZuj52cifn9dyo tG448yBnK0LeRF2CuJYE0+wHZYfsFzUYvleeDOhG3OpVi2aJBxTrCS1gWQZIUho1xavk +yry0w78AdKhYC6A5KWMDcdU+1YnAGEuAMdP9NHYyJZuiNMI0M8wWkAdQ8JGBXd+9hyC UKCROPMGYHfzT092Nd62pawh4hDDVSDEoQwXxmD7wDPiQQdfsivVyvMqV5zbzQEDECvN +qWjNRZLaWnRkLp4rtNfCxlKe0440hXWLBee/NIk0VSwe65MGtSiWXZE84W7ciKa6kYK SXzg== X-Forwarded-Encrypted: i=1; AJvYcCW74qTgl1+KJTEEx2hdojVP+YfGv6d42Ex5LZEOz79OMSIrUaNrZjFPXbqlzVQ2rW9NnCVkiaeFqw==@kvack.org X-Gm-Message-State: AOJu0YwSKPMY/B6WueZV2v62r5G5fDnDxQp9caeWFjpa/lcd7ZWXXYaV ZIzeENEpLRWfZ32lmsAvcqrkBfQW1SrDfRPcOhDtPALCZttX6etSQAUeot1KMGNr89PZNg6atKD UnKJP/nrtA7iYBLlWiOfd/l5vp4/AHC4sJWiA X-Gm-Gg: ASbGnct4pLj9jDoyJpDWahGhdVvSTQltVy72BBYg06fZJPjGS7M2g9AePXcAk32VN9e qOPcOXnpKLiNoyyb7NYxBNjaLdvnSwJI/GXjrlcchkB9lSlgQvIP1/4fiw2YdJdibwOpg X-Google-Smtp-Source: AGHT+IEZrdSuhp9JcuQTIIQJZBkbpF0vMp40RBneVKA9c4WUVk9y6M0BTQ1rdOkrhr1FEK5rG9fO8zodIjUEBJLN8nw= X-Received: by 2002:a05:622a:4c12:b0:466:a22a:6590 with SMTP id d75a77b69052e-467981bb57emr1778861cf.9.1733987409934; Wed, 11 Dec 2024 23:10:09 -0800 (PST) MIME-Version: 1.0 References: <202412112227.df61ebb-lkp@intel.com> <20241212040104.507310-1-00107082@163.com> In-Reply-To: <20241212040104.507310-1-00107082@163.com> From: Suren Baghdasaryan Date: Wed, 11 Dec 2024 23:09:59 -0800 Message-ID: Subject: Re: [PATCH] mm/codetag: clear tags before swap To: David Wang <00107082@163.com> Cc: kent.overstreet@linux.dev, yuzhao@google.com, oliver.sang@intel.com, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lkp@intel.com, oe-lkp@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Stat-Signature: 4jpqofxt9j34szdw5ic6s737kj5zbxew X-Rspamd-Queue-Id: 1858A160007 X-Rspam-User: X-HE-Tag: 1733987394-980126 X-HE-Meta: U2FsdGVkX19bZHNFId5CE/G7HMp+4XHybGYurBwKjc1nnxv29TA6KqhjkzXu5vwLxO+rNNhiCsBOn9r0yxs1NKIoyN44bYTX9yRIe8LLRni8aNlofS0nlfsdcvbL1UXxdOF0Q3GEy8zusWbCmlCHAtcksIkzFs09X/cyE6KycWexQNMxJx8Igv8xlO3jGi3gX9plBRfMdaZlzE3wmDCrF4EKzb8U01X9wmpC7kA0XWC+5xsbBIuO9aWRN6rxclP9dX20M1iHJI3YfB/MqcGmQZ6oLM2cu4tQavula6pHul1Pxo3AMO9jpPinxpQy+UdkEEBxutcJc8EMH79zDDH+YVQznjWtohWDKVG64fYHFzkRG0Y7wWwvlHHknwZd7AJwqz2RGOzBMh7wPq3wg9pnZbffSiUrjiaxM/CkcYp74003JhvhgJ8SwrSk7eru4XbwLtvUbQI8Hm3oorCv7EtOW145Emy02Sxy2VS9WvHK72hs+y/IAasx19sJ51Sfbb/Ja8kLb4wfMmUlRwvQwjok9G5zCEvaGF0iFDj7DtXCK6MeT+qtshDq1Vz9NeL3Np5EM+fJoyEmfsO74gSXnhZ7ZzMI9nNXUwRUg8wHAUIYLRVzpvXQyraEb1Pp4PEQ95/ugRaZ4dB3C6W18Gc1Zvfg4asHIo4BwWMhCE5FD+HaOwssBI2iePQEhzbfj0JYa1drdBE2tgp2Cz5D0z6sXyr7ZSZPPYwbgqjlXrtRWnDet6AQ/IdvuF5doboibzEXNKwl+lwoYYUWzcCJyv4tL+q6QUF07CPQH1cNVLN0kqcnRZuoyzPy/JMFnDLI/x1Hn/b86vN2dTxRsNRW6w31/p+2ElEeRJMbKqfWLqgELKX8/u0okYKblCxpyUZ2iZ6PzSuSUvwM2wdBCxq7n5+gzwyqw0bRhuf1DqdENkpTyc7dXHwB8oQR4R/cbdkRgCxSYVtPNQV31KmPGuTNDtOrP3r 7FUN+2NI uV+DR/DU0pY2sN3q84Nq/tGdlgq1Vmt2uDC30aMr68zlWaqwaj5bmU/5iVakqnQOodBLVL80/w5R5Ohxfvdp3wO5bcAiV9DX5/KXDW2vd4nBoVbkyIY5ae/+xGoTkVf8PUfSLEd0yRb6IcWog/Wa5Z8lmkm+2Qn5r5OxwwWmr2AskZzCmBtnB3HzzS2Ilrw3LcwahfjO4Xuo6yd5brOP1f9dl7FaMMvG3UPbGGDnMX0hdat0UVbR0shcGqLQzPo1dyyA2l5QaqPO6c4Dn29dV6QCJdSxpMFuxvsrkctGAWr3oQC0Zur0Cl9H7J91UzxKvMfbVqJvIlcOe8N3uGrCi11bFaivZbzeZhh15 X-Bogosity: Ham, tests=bogofilter, spamicity=0.151828, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Dec 11, 2024 at 8:03=E2=80=AFPM David Wang <00107082@163.com> wrote= : > > When CONFIG_MEM_ALLOC_PROFILING_DEBUG is set, kernel WARN would be > triggered when calling __alloc_tag_ref_set() during swap: > > alloc_tag was not cleared (got tag for mm/filemap.c:1951) > WARNING: CPU: 0 PID: 816 at ./include/linux/alloc_tag.h... > > Clear code tags before swap can fix the warning. And this patch also fix > a potential invalid address dereference in alloc_tag_add_check() when > CONFIG_MEM_ALLOC_PROFILING_DEBUG is set and ref->ct is CODETAG_EMPTY, > which is defined as ((void *)1). ^^^ Good catch! > > Signed-off-by: David Wang <00107082@163.com> > Reported-by: kernel test robot > Closes: https://lore.kernel.org/oe-lkp/202412112227.df61ebb-lkp@intel.com > --- > include/linux/alloc_tag.h | 2 +- > lib/alloc_tag.c | 4 ++++ > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/include/linux/alloc_tag.h b/include/linux/alloc_tag.h > index 7c0786bdf9af..cba024bf2db3 100644 > --- a/include/linux/alloc_tag.h > +++ b/include/linux/alloc_tag.h > @@ -135,7 +135,7 @@ static inline struct alloc_tag_counters alloc_tag_rea= d(struct alloc_tag *tag) > #ifdef CONFIG_MEM_ALLOC_PROFILING_DEBUG > static inline void alloc_tag_add_check(union codetag_ref *ref, struct al= loc_tag *tag) > { > - WARN_ONCE(ref && ref->ct, > + WARN_ONCE(ref && ref->ct && !is_codetag_empty(ref), > "alloc_tag was not cleared (got tag for %s:%u)\n", > ref->ct->filename, ref->ct->lineno); > > diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c > index 35f7560a309a..cc5fda9901c2 100644 > --- a/lib/alloc_tag.c > +++ b/lib/alloc_tag.c > @@ -209,6 +209,10 @@ void pgalloc_tag_swap(struct folio *new, struct foli= o *old) > return; > } > > + /* clear tags before swap */ The above comment states what we already know from the code but does not explain why we do this. Better to describe the reason and not what we do. Something like: /* * Clear tag references to avoid debug warning when using * __alloc_tag_ref_set() with non-empty reference. */ > + set_codetag_empty(&ref_old); > + set_codetag_empty(&ref_new); > + > /* swap tags */ > __alloc_tag_ref_set(&ref_old, tag_new); > update_page_tag_ref(handle_old, &ref_old); > -- > 2.39.2 > >