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 866E3C3600C for ; Tue, 8 Apr 2025 11:03:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C4156B0007; Tue, 8 Apr 2025 07:03:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 473E46B0008; Tue, 8 Apr 2025 07:03:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 33A486B000A; Tue, 8 Apr 2025 07:03:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0DE4B6B0007 for ; Tue, 8 Apr 2025 07:03:19 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id B9E75590E1 for ; Tue, 8 Apr 2025 11:03:18 +0000 (UTC) X-FDA: 83310590076.28.9A89239 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf05.hostedemail.com (Postfix) with ESMTP id D1B81100005 for ; Tue, 8 Apr 2025 11:03:16 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=txcWFvsl; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf05.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.128.41 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744110197; a=rsa-sha256; cv=none; b=7hz4DBcEyypmANpjDWlZ2e4y7uJaRGFFu/KNyH+Z1N4Bsikm9H3M/0RCkd4fAxLSk/Fhcy 6wB/sqqbfEqApjW2M3ge0jymGIrJ4Zrg7ZrE+liUiVXb4/j22yAOTuQnsqQL/eQ0Wi/zvC CQcYQvZNu/SKCl/wE/vGDfGuFzpyRC0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=txcWFvsl; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf05.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.128.41 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744110197; 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=a3yMkw0kHO6KAHAbbi+MQuVMJ/e8bnrwZhTznJuJN2s=; b=qUYTN3aD5n3XTjsuQbNFTfkU/eJSqQX0p7pWGRe2V/q9s6rGLWFgdSz9ebU4CguVCwANIc N6ThZfJHYpnAJnK136WnwuzrR4vYiNcK9LRTJMfYQM/yg1PK4Pf0IeLEjI0ESxJ3R6Ebbt SsrHUaakHnGabU1tFE8Jqrg7IZsxo3E= Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43cf034d4abso58303725e9.3 for ; Tue, 08 Apr 2025 04:03:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744110195; x=1744714995; darn=kvack.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=a3yMkw0kHO6KAHAbbi+MQuVMJ/e8bnrwZhTznJuJN2s=; b=txcWFvslemykIu6Mht7Aw8A+TXx2fc5EwSocqd52NsAWk6PPsxuMzgQTU6a+dj8Nng z/5Su7nQjn4I1+4KJh9NVSaVkKgJ+fyTsnGDNYfNOl8pdtVICclcF8JWr0/8X8Dr/V9U n7ScLwtHtyX4SOagu0TGOzoLXOs5zh5lDhvXfzHbDTwFfJG9uwpHFwENykqJ8xRYHpWs gzcatE0c+eovENBEylBEzWQRdObCGw27+R5YYLd/XeelrYENQ7aaJoTc/xd6HmUkao4O IrCyNar96MdosLX2eAJgAEAxC6LZqZvdlI7YmulVpdTR7d/r0lydotKM3cVOvYKFA1gG ahTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744110195; x=1744714995; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=a3yMkw0kHO6KAHAbbi+MQuVMJ/e8bnrwZhTznJuJN2s=; b=mnRTpXN6aarhCjKajPwA1SehXS6/1MH+m6t8MLz/arrKW3+T03O7MBkqhZXFDIzU0W DhbXRXGQ+ImQrIRZLdktZGFjS99F8spOVT+xSlv4dTnqb7tT3x/5WBwzgklg4LPiVQzh LoTkthzY+Vr3noFxd38QVPavCI0HPVqd5gtO3N7b0c6iHgHdDJIB/JeCJ3Xbr5Qn0I/E 54bbvaw8M8Qna1HclNZOWq7up19RoEY9SnaDD7f4fqwnTYcEsJftpu5GvpSSwrUkN1h7 xSX7YdiD6fmwqidrHIN4Oag9tgj4xv7OWar3Fu2alh2l/emX55t/5KNhPl02TmZdICTD wQDw== X-Gm-Message-State: AOJu0Yymtt+bYozFwH0krTEx7fQGN0WhZxrPX0KmD6KDUskLfRk6FSJx EjHADjrdLV9kKOtUbLEIc3+d0PzbnQfdqoBBhIy6WCLO7IJPkBs47jUvZa8mz6o= X-Gm-Gg: ASbGncuxN52TSkfryCelIoRlwIwK+K4kWXYhW7+gXCRj8td5vv5wXvlpu0e0ojvd/Q2 0dfXaFhE1QZaZlGSFw8defd006rfaxqFTWaEngjCTMvECx2xCPD/F7RRSVP6b0WYmbu1wup4pAl 6xV+MP78L5JUQDeIy5Egn8cHEk7gMK/N4qvbZDcDhkOuufK8xVnDtNDwqtLlIu7o07vkZC952ya 3KNMCYkuHmWg5l6x8seS02n736LhfTXyECbh1q+Uv2nB/+eEwB3Rpx960KivNCt/G6Cd1wO2kHA Io2EDMCvNt0rmUaVE3geIHgkjKDVtqrzHAnUI1OSTWBbITKA7w== X-Google-Smtp-Source: AGHT+IG+oHyUJHByAYesyq68+LGRwKyWvbf3NSdaDt0xKVeCSMeflLh3NK4Je/m2F1ncmXZESYX6NQ== X-Received: by 2002:a05:600c:3d0c:b0:43b:c284:5bc2 with SMTP id 5b1f17b1804b1-43ee047ca70mr125402675e9.0.1744110195115; Tue, 08 Apr 2025 04:03:15 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-43ec1692ba4sm159041385e9.16.2025.04.08.04.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 04:03:14 -0700 (PDT) Date: Tue, 8 Apr 2025 14:03:11 +0300 From: Dan Carpenter To: Peter Zijlstra Cc: linux-mm@kvack.org Subject: [bug report] percpu: Wire up cmpxchg128 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: D1B81100005 X-Stat-Signature: sy7q5cqtt3wgtrtrcx36wqzdj5opfd9u X-Rspam-User: X-HE-Tag: 1744110196-214153 X-HE-Meta: U2FsdGVkX1962yJK4obDZhmF+44vVLYBUPaybe76kFONBx6tOCL6e1cY7o+iIAKZGHTY2u1LhMh42OVtpHro6mwNqk2fXjKz0Ow8YuF8NqHJI7ifXDoA2hwziFPpASYn1+Vh1YcksSQehn9+fWGiW3DMuh1tu6ItafTzs0jgZyWddhb1RGM+h0KZ0nINzuDl15OsWd0VuJP0u8YOFoWpbyfWrhTgCpx1xOjic4i6zj6By0P01D2jz2uRr7Qri9aDqJIAypFMzA9xY5n+cKwxdFjLnBHKd9tHL2wPljqe2q6RUwgLrP86Pz2jgeU8AhDhlpXCQglTFtPgSbcmbAgitMo1GUnou2mk0qXQHUOZR89UwWWUE3ZpHzcgqXxZ2q74+52UCMAhbTSlcir9dqg5SpFqGkhhJmGK1/EaBqf5ih1ChQ9kNnHnS6ajfo9m8ECBbfs8Jr5H8mwzmeX3ktt9U66wkaoi3r1Gd2hJsxVESBn6sSt2wEcyR2X0e60v4Y5nrWDXlsqU7oPdDp/oUn1g3F2yZVJPVMfvZndLu40sLl142ZQF1OuJqaUNgozUEJyU1wp/tI5akaV1f8LoB34ruAidl6vNuFy6Jt9qrs3yAQvTHYJ87Ne9bGYr3XcE8IxV/BCRAjHU0Io/zdKLBqQvNd9cr8ahjk9dHxf9sro+k4K/j6UWirz0yNPwjsRmKvfPzmxrF0eWYSqrQNSwj6zoCKhdv+TZXlD1lp7Tclhjtn98InV1z17wM7Ubtynbfyf7ZuskCanMnSLla9MZn1tuwnVY9xVzKGhi+xdiqqx5AOy6vgaaIOx00/XAs6R5nJvvTFLqDzIXRWCtcW6yUa8CW6Xd/WQnF0y8O/RbPR/VuWQe++DEbDlVm5tOGwLXondhke2OXAW6yP/4FrEGjzNPs1gRwQ+2VHLbm0nK9nirO/oJbZYP1LtHZ//HqFJx+tSiAhZCYh8PC5XtktxOtMj lSTPK/D5 e0mDaZql4GTYqa7w7IR/i/BMwusLXmTpU5ULJxDAnKmGVawzfr3DfFGp911G21tnJe63kt9jozDpGlolPTZWELOuxgoSzIJNnTf+J/AlQ7yP3IKj7tuPlpAuEKaIeNoHdGYA04GfK/HibEzCIRlKIZL76U6UbZd9/poVFVQSLm/kpvrTBjZdLnZPC7x93Gqpefc00nmomYyz+fCT5yacSfJSwrliiKQmWsj7kM7kE7jJuTw4S6+u6NWWocnUU5RMg0O8hgvjH1taBrWT/ub0cYDLrQA== 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: Hello Peter Zijlstra, This code is old, and so it must work. I can't explain why the warning is only showing up now. I was just curious what's going on. Commit 6d12c8d308e6 ("percpu: Wire up cmpxchg128") from May 31, 2023 (linux-next), leads to the following Smatch static checker warning: mm/slub.c:3609 __update_cpu_freelist_fast() warn: sizeof(void) mm/slub.c 3599 3600 #ifndef CONFIG_SLUB_TINY 3601 static inline bool 3602 __update_cpu_freelist_fast(struct kmem_cache *s, 3603 void *freelist_old, void *freelist_new, 3604 unsigned long tid) 3605 { 3606 freelist_aba_t old = { .freelist = freelist_old, .counter = tid }; 3607 freelist_aba_t new = { .freelist = freelist_new, .counter = next_tid(tid) }; 3608 --> 3609 return this_cpu_try_cmpxchg_freelist(s->cpu_slab->freelist_tid.full, 3610 &old.full, new.full); 3611 } The problem is: arch/arm64/include/asm/percpu.h 239 #define this_cpu_cmpxchg128(pcp, o, n) \ 240 ({ \ 241 typedef typeof(pcp) pcp_op_T__; \ 242 u128 old__, new__, ret__; \ 243 pcp_op_T__ *ptr__; \ 244 old__ = o; \ 245 new__ = n; \ 246 preempt_disable_notrace(); \ 247 ptr__ = raw_cpu_ptr(&(pcp)); \ 248 ret__ = cmpxchg128_local((void *)ptr__, old__, new__); \ ^^^^^^^^^^^^^^ We're passing a void pointer. 249 preempt_enable_notrace(); \ 250 ret__; \ 251 }) include/linux/atomic/atomic-instrumented.h 5034 #define try_cmpxchg128_local(ptr, oldp, ...) \ 5035 ({ \ 5036 typeof(ptr) __ai_ptr = (ptr); \ 5037 typeof(oldp) __ai_oldp = (oldp); \ 5038 instrument_atomic_read_write(__ai_ptr, sizeof(*__ai_ptr)); \ ^^^^^^^^^^^^^^^^^ Here we're doing a sizeof() of a void pointer which is 1. I think maybe this is just for KASAN so it's not a big deal in terms of affecting runtime? 5039 instrument_read_write(__ai_oldp, sizeof(*__ai_oldp)); \ 5040 raw_try_cmpxchg128_local(__ai_ptr, __ai_oldp, __VA_ARGS__); \ 5041 }) regards, dan carpenter