From patchwork Sat Feb 1 20:05:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suren Baghdasaryan X-Patchwork-Id: 13956382 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 DC263C0218A for ; Sat, 1 Feb 2025 20:05:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DCE96B0082; Sat, 1 Feb 2025 15:05:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4661D6B0083; Sat, 1 Feb 2025 15:05:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 306C76B0085; Sat, 1 Feb 2025 15:05:10 -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 0BEFD6B0082 for ; Sat, 1 Feb 2025 15:05:10 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8A20C1C9250 for ; Sat, 1 Feb 2025 20:05:09 +0000 (UTC) X-FDA: 83072454738.02.8F7F5A7 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by imf14.hostedemail.com (Postfix) with ESMTP id CFB5D10000E for ; Sat, 1 Feb 2025 20:05:07 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ZvHTqiHJ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf14.hostedemail.com: domain of 3cn6eZwYKCC0bdaNWKPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--surenb.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3cn6eZwYKCC0bdaNWKPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--surenb.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738440307; a=rsa-sha256; cv=none; b=nn/P3B0YTBdSaosTCi84rvuFr/uA6E4xLkgOs3v+K+lFXhdTdHqmOEuvHUN9Q/2k9y4buE klwa+o4S0U9h6gDUfTR3JXYyyqRTlLXRHkhOlhEfvhgFiXCI1QaaIfpX8H2cB38r1iQ4Kr 8gAOKyQGt7o4IT+378qE4e/sMki+bUE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ZvHTqiHJ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf14.hostedemail.com: domain of 3cn6eZwYKCC0bdaNWKPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--surenb.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3cn6eZwYKCC0bdaNWKPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--surenb.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738440307; 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:in-reply-to: references:dkim-signature; bh=kOeWKowR+d0FbKqQGkN2JbIsBct6786NOgOb18KCO88=; b=cdhEzq8Db5wTe5YqJGJzW5TZeptIIZaDvpOqOpTZ+5n2XUb4ILjijhnjWJmgvwocDORPiV wix26Zp1svIIbN49DhBYeUkmA2KTzOdVZgQw0PMqHbl3+D0o+j8k0Zc4V3MlnS1iNQEJ9v ulKNclupKpB/PGNrEDdkNSDE3ZUQSEQ= Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-216728b170cso64334585ad.2 for ; Sat, 01 Feb 2025 12:05:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738440306; x=1739045106; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=kOeWKowR+d0FbKqQGkN2JbIsBct6786NOgOb18KCO88=; b=ZvHTqiHJgNniuT7bNu6O3g0/kXX6wF6DokZIJPvzNFggZX1INCR/XMxd7bNMWd4ffu 5Be3MJ/5yHcjIOIPYGYZYiNHvG/voIeD/QKO+2uCz0tZ2VWTlmKRt61l2cxVTGyUWEqZ L0tgNSEMoQfc6C53QtltLFoJHQsJaT9V87cxfQ9iOBo5idnRwYEGpB5jfmxEZIL+Bt/Y 92GHryCjDUyC/GAhLABHz1SbAohUSussO+D11q7UkykZOBjoRgtXVmAQmnbs1c7kLVHv EuTw/HS6qk5TxpsIiWz9Xw30kmLKYcCRlI6BPkWtK5KQGZOjiWmAXV6z4v6yDQ1vCBeq nzjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738440306; x=1739045106; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=kOeWKowR+d0FbKqQGkN2JbIsBct6786NOgOb18KCO88=; b=g4xtXeJIKvNAJPZQJsG1ijPqLMzKtCO30BC6ndLJfgcjqBPa6Dy0onVRaSyZbzfByn gAjCuJmPy6hd6B5CzAs3tnTFwyvjJX5BW14vKElh2PyuqQRTIKQjlvnhnCWzF+no5JoT PHS6mWSYTYIvwOa2mIcEuWArhv9aW4Ws9YEFHDTHveis2f9xvX22Vf8Kvt/Hx2R+hQ5I 23MJ7v7qQWdm2U2gp2FpokC8JHVwjAI8LKZSYMlDdBEUP5H2cYpunM7SphXZdgLtoGTa VxbnlqoyDRJ6PAYrHFrz+7cZ3SM5GshBzrMJFHYLjKPLjNag7XfhomiVN3jBYm72h03M s/vw== X-Forwarded-Encrypted: i=1; AJvYcCUz/2CU2GCKWWbd8Ert/CZPJidE8HETFr5aQfiu/B7/BjKcs4pYjRLxFt0ePRbm8hjbppciWgq6cA==@kvack.org X-Gm-Message-State: AOJu0Yz/HWTil4HwrBiHRHX2TLZKaRrA1JXz8Ax4wvYkrHBEJsWarhRM aJHSbrUqQbt6lhDUMoASk9aT/XoulkbfOYkoBwYguSDClPNuWOy9u6fH1ZjthhsEKxJ3ZWJIW3S T9Q== X-Google-Smtp-Source: AGHT+IHqdKzHVyWuGyopMUEnhACkN2OmWbLgtQLpfJfqFKJyJTBYA4ztrAbi9BbJSb42pSmOE0PPXHviSTA= X-Received: from plog2.prod.google.com ([2002:a17:902:8682:b0:215:ac55:d3e1]) (user=surenb job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:dacb:b0:215:7dbf:f3de with SMTP id d9443c01a7336-21dd7d74db1mr277906365ad.28.1738440306355; Sat, 01 Feb 2025 12:05:06 -0800 (PST) Date: Sat, 1 Feb 2025 12:05:03 -0800 Mime-Version: 1.0 X-Mailer: git-send-email 2.48.1.362.g079036d154-goog Message-ID: <20250201200503.2532357-1-surenb@google.com> Subject: [PATCH 1/1] alloc_tag: work around clang-14 issue with __builtin_object_size() From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: kent.overstreet@linux.dev, nathan@kernel.org, ndesaulniers@google.com, keescook@chromium.org, morbo@google.com, justinstitt@google.com, surenb@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, kernel test robot X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: CFB5D10000E X-Stat-Signature: tpcqykr31tx55g3u8gc4xxi9a9yhg9pq X-Rspam-User: X-HE-Tag: 1738440307-738517 X-HE-Meta: U2FsdGVkX19g0hLPON6xaLKYMpKVW9skiH2p2m8Fw3QvdJ3i/pl2NLmXOleQ9SrfzRsbyRFXkJMIQYg37oha/44tH7uPOKKIXbvRInRZnzdkJtTMrY++gyGYcqKsQh3Y3z9JpUdlUloZdiCO6vB0bB9PgGc6dPeVOqkGXZWXZrD+IvHF/wzWyDuM06alJz9vectU0Zfq6aNs6tO0rtstyDgpPuk2jJTr41WU5uFxLJ61GT7pt2FfvItdAn9qpionE27wQBQI2kImvVGmoyyyevnraTjC31daTugzE9r3wjT31rgkaSmKXMT+Ro5s8RYpYgM8Q5+tHQvwOcoz5VbBLSRhKqrjLkHCBlIkUrXNS8zTLilMNCTV9SSsezZofKIsCklIIboPTsVLtNbs8TV8GqcfsoR9fybMU1i+HcdAsM2g/yzstMuPAGKiNXRIK94vSyNCgqwj2ttkdBmBdD2/B0qSENzbyzNYc9wnSyMd1/hRCpEDa3QzhDBotbj8oNMH5dNhZfUhdDOfPHz0QZW0eOCnK+/XeOzwN4P5YTmNYTUS83zDw+QdOjgeDlZnVnJPOBLuGRD1DAV6XDVZbYOZjNYopAshJTCTFLiarzZISbRIudQNduWlPr6+Mg23Hx8wIYql8FHfqS/c28Mk8cTa3KJrK2l0rD22ouZbtvDR0e3rDEfWsOKeHXKAPMsUqrZDMdABlSEplkJb2eu1NsACiF37NpCWclz123L22Qx6stsrUt9NJNYYu7t73VQCkdJq9F1Ey0KljbuRotfQZNs57ZE8ENgy7zfAhLFpLTgfhY03PfesIn8Zqzjl2MaKN31QCCI6xYkU+PLWPQ/0fcYilG/si03Xwzr0pUQ9cS/vPXuDr95bxSemoQH7AP2HYUYVzZbOM719zzmG//8VGAaGeez4wAQd+Vk6ZBZm7Y8cfA21LdJWpz4EQRT1mXl74HIf917+tzc1scByeE3Yau4 NbkHaWKZ rNYbABXorxKal/PGS9rriDHUPgCEsjquC3JBVQEWN2ca0HJV9ETScwkNCNJxFSS7pSUYVGUO7peQ2hOS4FPD6V+b6st0rDGcyCt1pCtholxBpCo9uWZY/O4l+ypXna4hvqTnkCygT/+Z7bifQuU3gC1BIsrrBAuHisIQvIn36ASxMQ1V47j4BUhbrndp5S1chJM6VPsK0eAysfWg+ukwFTHanX1vGV33mYC+8mwWMADDbXptw9fssQPo0O7RouudONc3vqv0dTS9AcuGE8ub2IyE7IQAUUEl7/WNYpPfIwfSaAP3De1ghxIpc1LUtwGI2gOx9xH4zxlYf6U1a5Q72a1II3tf8KiOGqSE/v6wIwN/LKvQjAnAyasyaNwC13jkj0wrF3uYQ8XZU8C5iMSNEk3kINBB9AgdujyEEtH+M51vBuyRn/HGr4OWsamAWbMjETxR+BeczkwlFLIg46Ylz4FQr6LaW983t2lrDsw2/uXmGuWmqJCQXkHVoTacZ/m2ZGG2sWTnK2BTvf/kB9miZJmSbfrg/fsNAjNYm9c114QQypiSAx87fcIg4O+cXVnx6fKO2I68aRFwCz1Ci10bOjYZfhwkeNK2CyAuTZ6g6fcOGNsmo8nA5TZLEt/TfwlJy2U5o 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: Additional condition in the allocation hooks causes Clang version 14 (tested on 14.0.6) to treat the allocated object size as unknown at compile-time (__builtin_object_size(obj, 1) returns -1) even though both branches of that condition yield the same result. Other versions of Clang (tested with 13.0.1, 15.0.7, 16.0.6 and 17.0.6) compile the same code without issues. Add build-time Clang version check which removes this condition and effectively restores the unconditional tag store/restore flow when compiled with clang-14. Fixes: 07438779313c ("alloc_tag: avoid current->alloc_tag manipulations when profiling is disabled") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202501310832.kiAeOt2z-lkp@intel.com/ Signed-off-by: Suren Baghdasaryan --- include/linux/alloc_tag.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) base-commit: 60c828cf80c07394762a1edfaff63bea55cc8e45 diff --git a/include/linux/alloc_tag.h b/include/linux/alloc_tag.h index a946e0203e6d..df432c2c3483 100644 --- a/include/linux/alloc_tag.h +++ b/include/linux/alloc_tag.h @@ -222,10 +222,23 @@ static inline void alloc_tag_sub(union codetag_ref *ref, size_t bytes) {} #endif /* CONFIG_MEM_ALLOC_PROFILING */ +/* See https://lore.kernel.org/all/202501310832.kiAeOt2z-lkp@intel.com/ */ +#if defined(CONFIG_CC_IS_CLANG) && CONFIG_CLANG_VERSION >= 140000 && CONFIG_CLANG_VERSION < 150000 +static inline bool store_current_tag(void) +{ + return true; +} +#else +static inline bool store_current_tag(void) +{ + return mem_alloc_profiling_enabled(); +} +#endif + #define alloc_hooks_tag(_tag, _do_alloc) \ ({ \ typeof(_do_alloc) _res; \ - if (mem_alloc_profiling_enabled()) { \ + if (store_current_tag()) { \ struct alloc_tag * __maybe_unused _old; \ _old = alloc_tag_save(_tag); \ _res = _do_alloc; \