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 A9A7FE77187 for ; Wed, 18 Dec 2024 08:41:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1801F6B0089; Wed, 18 Dec 2024 03:41:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 131316B008A; Wed, 18 Dec 2024 03:41:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F39D36B008C; Wed, 18 Dec 2024 03:41:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D43B26B0089 for ; Wed, 18 Dec 2024 03:41:06 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 908CF120C49 for ; Wed, 18 Dec 2024 08:41:06 +0000 (UTC) X-FDA: 82907434008.22.C84A59E Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by imf15.hostedemail.com (Postfix) with ESMTP id AF98BA0003 for ; Wed, 18 Dec 2024 08:40:18 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=JOA4CCj3; spf=pass (imf15.hostedemail.com: domain of ubizjak@gmail.com designates 209.85.208.177 as permitted sender) smtp.mailfrom=ubizjak@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734511249; 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=9Uth7hzk5WKYEXwnMXWVgZ5kbZA+3ppaKuwLhWTd9os=; b=WY++DQKqBNm2EndXWWOLwVV7fKG5Zi9pTW66MD4Wnw7ngJblnaSsAurNlV5+EeS6QsVCv5 /Gv5hFvorf8xXBdEojX/FIYoW/G4PQs/RnIQLKAWANB1tp9rOnTtUoQUww3+0tnJDxQQaA I5lssjaG8l+nf+bqyhTUFo0Z2Foark0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734511249; a=rsa-sha256; cv=none; b=JTvuYrUmMdI1Pg+ps8yph+oQDOsKaYOgBLQr0ID2cxro3hfHMC6bxOvbI/fPTtJhjQkwKK gIE/MCFmPHMBH7tJjVU03qCLBl/cspjCG4jXSmLsrRXjpaMjvJR6aT7HKGv26NoCAsXf4Q +QEPwL5fXEdLllJyyDR3wZNLzDmzKQU= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=JOA4CCj3; spf=pass (imf15.hostedemail.com: domain of ubizjak@gmail.com designates 209.85.208.177 as permitted sender) smtp.mailfrom=ubizjak@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-30167f4c1e3so68136631fa.3 for ; Wed, 18 Dec 2024 00:41:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734511263; x=1735116063; 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=9Uth7hzk5WKYEXwnMXWVgZ5kbZA+3ppaKuwLhWTd9os=; b=JOA4CCj3YtHTs+EBQ2SYBAuVmW8xHv/lzJeKcHzqsPR876q6y78fiyBXXzbAp/J3Rj r5utzffbMBk+a6q/rtYsxHypdiR/5nXsiffmZ1oGn9nTKIjXJ+53gpgUQjCdZg3WMKmK Y42IXP/Ae8DWd725ghHOLJK9r+46ScZm6BCbOCDy/XWp+8t8hTy33oBdvzz9X6mQR03b y8ypmEP58P2we7WboXrnLPkdMfY42xbtZ5iwgh0j1ZgYxUZjmo+zbc7RsjLPDf/RlZdi ixb4C9s/6KMPVHVV1seDFWt+XYm7jDvcOvhy282K46w1+b/nLnw5GZZXM8CyTzk+7AZL PEmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734511263; x=1735116063; 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=9Uth7hzk5WKYEXwnMXWVgZ5kbZA+3ppaKuwLhWTd9os=; b=ac6hVtLOP68mlTzx9q3AAjkwspyH7XtSMSfrbPcWbI/iaq2784pz3OU1SSt/ZE+Ksr NVBKViTK36wOZUImgJHvZl8uuOYcjCcNkS+ECmH6AVqUOkrSbjeC/Jq53fqxA6qhOpOA 6fzSxA1wwXXaB2FBKtmWmuheLR/hhqNnKxBK/J19zILHh2B5A0WknY2JqXoF2qw9EpvN fllE7nJI8P6KbnifqcE8q+RHansMardziB8nO679ixNYxNBdmZP4feKypvCbq1Dn3xbf xUTn4o7cLGJBgMJbrd84b+hnJYD0qJ0f0XaG5hQ3heBD/Jw2vI/L/tsHr4R+GQ3ff7RT kwuQ== X-Gm-Message-State: AOJu0YyIBBEVcO97NtN2wTJzFdRVO0AhYdJVYvqTDC0Pz8RPMGl8Gx/W yKXJ94g3ud4Y8g0QGoMkHq46FInZPs7kCrgrp8bi3btNS79ChfB6iddZrE1PN62eRqS+Ial4JkP EUNG/9doLVzFZtWppU2U+3mXfgXg= X-Gm-Gg: ASbGncssRkdaCk9+2Ik6+NlWPN5aJPWvrXMe9iFRmQNPdqCO80ZQjAGmcz206hQAiTX tQVzweT9UHGU66qb6G0tJ2iETsIfuil909I9qJw== X-Google-Smtp-Source: AGHT+IHbWGwiqGhsP6zXehmQVddvNfAxD+0ZuLK1J7qM3ySYcwfbNR1Z7kC8GYFO5+f4dcJvuwhfzdMUmo1BSgfc5Cg= X-Received: by 2002:a05:651c:198c:b0:302:1aed:f62a with SMTP id 38308e7fff4ca-3044db05760mr6697331fa.21.1734511262601; Wed, 18 Dec 2024 00:41:02 -0800 (PST) MIME-Version: 1.0 References: <20241021080856.48746-1-ubizjak@gmail.com> <20241021080856.48746-3-ubizjak@gmail.com> <7590f546-4021-4602-9252-0d525de35b52@nvidia.com> In-Reply-To: <7590f546-4021-4602-9252-0d525de35b52@nvidia.com> From: Uros Bizjak Date: Wed, 18 Dec 2024 09:40:50 +0100 Message-ID: Subject: Re: [PATCH 3/3] percpu: Cast percpu pointer in PERCPU_PTR() via unsigned long To: Gal Pressman Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "netdev@vger.kernel.org" , Dennis Zhou , Tejun Heo , Christoph Lameter , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: AF98BA0003 X-Stat-Signature: p78hr1xmzx9gd939jrkned6dzy69w9wx X-Rspam-User: X-HE-Tag: 1734511218-560287 X-HE-Meta: U2FsdGVkX1/zJuXOCBr0u3ctXhW7nMDF2rTqG+uv+1OhDPhcBZ5UtOJKfBG6i3fD1130MLD+Xi9309J1rDBZvdQSlD7f1MEjwm6VyZKq+i8CR1mSnqV4Bjw9vsqpzUxqu5800mK82wCCwr/ODXAwYRUiCxqOD/2sQEs0SGvMjSXixnVdMH+XVlSr7/G06QhTZCYe+d/0bwFgh9vOg8ygvSsd4S1Z+ro+QOFdAYSSSqDXsxweZHohmscpl4mpgckoiuq8kKUMc40EvnnXj5w/yV6Pb2QDAUT95SXe1g+macI4WNeJP01V18W/K8K2Q+lyll7nGnEo5CCcayvsnT7TjAqLS2jVzwvcZ1cp37p087K4xhhKfl8zd6Mm0Ab7hC6k3j67FqNOvAqwMCQ+uxTaP1Z8YkY98azNlkxC/Syk+ZwPVkeKsTWLLXWeR29eOUAFtY52krTLbRNycxbprKeHNtphhaog18C/7EWFKQdOiK4QSiLWHCZroUHm6IODcrZSErZJWCqrKbB+4mq5WpZassgMOO9ko60aHffsMpYS2rN3s6KW7oQ3XUx7V1PkcYnzsRL5lGgQZrI2TRoY9rNiV7wIUKkLaf13Sk/3Hfxc37JaADlLPNpJvLYRjhyl0SZHnu30A9ia72R1RHazJlEGLb2ZI1x9FYeVTAlNnUw/rXYl8vN236I3sHr8TKyX2SXF6a1H32WEJOhCOfbB0yoPUb9NxIIdD+BVV5duMFEfUztLyhUIHEPh+vqNzUlgm14hyWJvGTiNlN+lfItbb1J7Chzvl/lDFsWwX+dli+Cd0vyWdYlS1wPG3GalGIgy+oJ+fD8oqRGyb5jeZ7zqFIcHngFXCo/HkOIQucXGHIfWRHjNikZgPmSz16ZR7yx8U7AMB9qlolHhIOL3jQzpFTAldWG9AjnlqMx9uz9RDp4JYRx7c7Y3Q3PeWah52pUulyliZ30Z9mXmz61YZGPBfX+ MPeiTrOL lpATAhTbaN8TQcqNKBqLOJ16I7QsqpSUh8G0yjO2yYqJe/CF3GWY0h1en0XMWf3edbF+6MuNWfJ0i2mVIx+igP4nvoMxA2WXdWNXtB8sIAS4KxdULxaNF58sim3cYdx7W8rOMZzW4CBeGtTU4ZPnR+inX9mgYfAJcuyJfflFLWxgjF72lX+bA3zGnxDtQ7HtCOATQmobDur/tWf05AlFs5Y8Q8ixBtskx3veo2BBNZQnmfN8UUWZjV5dES4EcF5l1tFK5ipv7qlR1SFra1+Yk1CU8+8Nj3DdFI4qsZm+M5HWzGdcOo2zn2M25WvAhIbqsjGN3c25gf8FY7632lXoHopaa2kMg3K74M71Bw1U2YTaOg7GiOKqUZpr24k37gtJP7S2H0z1uZTnzuIhHbGg1ktfXv2taEsSxvtjXVzg4SUv9d/8j8hv2j8bhHb/ulVdVWLXVthcbPyqawEuHEtNnEEUjlkRSR/Q4gRO5kSzTsS3E+t+SZa1vC/Gf/MxYXH/MwnE6LTibbmqjWGZY5cf7mLZkqIMGanEIRbjUaYazTVMtPhJFV4cuAWgtqvAmLjXd8Bdj+NzfIw+1Z1lkONmF+MN09Z4R4vROJI7xUdAbd+jomAG8JM+uD9VGaHRJrPwe3rpy X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, 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 18, 2024 at 8:54=E2=80=AFAM Gal Pressman wrote= : > > On 21/10/2024 11:07, Uros Bizjak wrote: > > Cast pointer from percpu address space to generic (kernel) address > > space in PERCPU_PTR() macro via unsigned long intermediate cast [1]. > > This intermediate cast is also required to avoid build failure > > when GCC's strict named address space checks for x86 targets [2] > > are enabled. > > > > Found by GCC's named address space checks. > > > > [1] https://sparse.docs.kernel.org/en/latest/annotations.html#address-s= pace-name > > [2] https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html#x86-Na= med-Address-Spaces > > > > Signed-off-by: Uros Bizjak > > Cc: Dennis Zhou > > Cc: Tejun Heo > > Cc: Christoph Lameter > > Cc: Andrew Morton > > --- > > include/linux/percpu-defs.h | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h > > index e1cf7982424f..35842d1e3879 100644 > > --- a/include/linux/percpu-defs.h > > +++ b/include/linux/percpu-defs.h > > @@ -221,7 +221,10 @@ do { = \ > > } while (0) > > > > #define PERCPU_PTR(__p) = \ > > - (typeof(*(__p)) __force __kernel *)(__p); > > +({ \ > > + unsigned long __pcpu_ptr =3D (__force unsigned long)(__p); = \ > > + (typeof(*(__p)) __force __kernel *)(__pcpu_ptr); \ > > +}) > > > > #ifdef CONFIG_SMP > > > > Hello Uros, > > We've encountered a kernel panic on boot [1] bisected to this patch. > I believe the patch is fine and the issue is caused by a compiler bug. > The panic reproduces when compiling the kernel with gcc 11.3.1, but does > not reproduce with latest gcc/clang. > > I have a patch that workarounds the issue by ditching the intermediate > variable and does the casting in a single line. Will that be enough to > solve the sparse/build issues? Yes, single line like: (typeof(*(__p)) __force __kernel *)(__force unsigned long)(__pcpu_ptr); should be OK. Thanks, Uros.