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 64B27E77180 for ; Tue, 10 Dec 2024 16:37:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9B8D8D000C; Tue, 10 Dec 2024 11:37:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E4B678D000B; Tue, 10 Dec 2024 11:37:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D14028D000C; Tue, 10 Dec 2024 11:37:26 -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 B303D8D000B for ; Tue, 10 Dec 2024 11:37:26 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 57275C0C56 for ; Tue, 10 Dec 2024 16:37:26 +0000 (UTC) X-FDA: 82879604346.15.311DC6A Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by imf12.hostedemail.com (Postfix) with ESMTP id CB34E40018 for ; Tue, 10 Dec 2024 16:37:14 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iF1XU5X4; spf=pass (imf12.hostedemail.com: domain of ubizjak@gmail.com designates 209.85.208.174 as permitted sender) smtp.mailfrom=ubizjak@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733848623; a=rsa-sha256; cv=none; b=dCRLkkC2wiaGULrOiumx7ReBpwFUV0M+LtS7begFIk/lfAf0UQzLCJK7BmcPjlc6REeEp6 X5fHx/Bny1xzFIU4bQKDzjZhokIPfPcIvEqL/xC05VDt76U3w3I1vO/fHnWyCu9bnj7yfh YSNTwN/Yo0asquYwoDMpYo6L+RHB1G8= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iF1XU5X4; spf=pass (imf12.hostedemail.com: domain of ubizjak@gmail.com designates 209.85.208.174 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=1733848623; 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:in-reply-to:references:references:dkim-signature; bh=mMr2qVhA4J2Ksp2znQVcePx2ayh49sbpV9PFu6+5bZw=; b=tip8qy6OUTaW/jXO4/N9Nh2k1CGwBq8xIv83RXtv9LGyonBsl7VAQQX8vt2ovXZDb+H7AT Kr/yH/+uzOU93icnCAP3pVBUBqNk7Z99rVyt9EvUCR4tOGdMmnDEsjj31XnJ5WwvvkQG1S u2Kfjkuwt1vub79hpm19tfptGVRAHfI= Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-3002c324e7eso43474891fa.3 for ; Tue, 10 Dec 2024 08:37:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733848642; x=1734453442; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=mMr2qVhA4J2Ksp2znQVcePx2ayh49sbpV9PFu6+5bZw=; b=iF1XU5X4rTSea/AwOLcLaQ/K8/hUWNWiOZ/0q9NBWCzXS9LAepqNrL25HPNdsX+w+Q 9CflvbhSBijo+V493wRSA+MJN9vSSfUM0jaEM435lijqgyhlxlEOCy5Hys1ujtSHQk5i vOuCgwhbZ2NvPkGLdpPIkzI8OLQq+6mhiDwfMkFvY51znupUT8WWbxeMijPD1SwGtVe5 RHwjNDN1upeLTdTAc6CLaRB8XZNSWNSL2GAhNKUOUyOy7m6VVElE4lGSqVUxlU6wuAeW fc0FglXMuNFyXPGrPRm5518cvW8E2adsNqxSCn3gonHJAk7mYVHl78gDut4GB3cINP+5 cRGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733848642; x=1734453442; h=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=mMr2qVhA4J2Ksp2znQVcePx2ayh49sbpV9PFu6+5bZw=; b=VB0tAr0z2sTqqYLMV3qLNg+nN+h4OIAg66JCzAqI88fXu+rHSdTUk5K5BNPo+b0equ weAeJRynykQKG+qqBejA1I6W826KE3rXdFHjuszCMqXuj1WiCmaJm92tiNDJRIwonp6w 0rphyKxLZC+Eia6G+NJa0CcW9vIzTTv5tsjhDWbigX6NV+qZsldQXzuP8oQDSEoHXs3+ A2os1P7uZf8lr2y5aiQ4kYgFPvnmUP90FoOs+doyKevXiXiOXs/R/mqMIlTtMgsLeKUS /E8OPhDc9AkN4eixbbcKW5OuZzqA9cqTNNorNRM2C9psKgO6QaQ7esJpDgSnZLIrZWWn kUoQ== X-Forwarded-Encrypted: i=1; AJvYcCWlHYpYlXBO8iWRdJZCDRPA95hrW2n+hLEdXiiAceF9KkJQabDcnI3RDzAmAQ1IA1/7Dx+t6Lv1sQ==@kvack.org X-Gm-Message-State: AOJu0YwG6kFfW0vfntoygtHPTscBcuaDrNwhidcNLH4hKMsZG5r0M4Bi YR1ARZHciWeqZkU5IIdlfPiDPdUDiPTAR+1exsIQhTRkDEr7xulgtoqm4DExJfItu15/xXub4b6 0/GK1jmbJVoHdLlMyyEhGZ4EJJDw= X-Gm-Gg: ASbGncuksQKUO0c++HX/P4MUA26f+IoNjaniw1qwBS6zJ4psa005mopcKc6YdRPXcJE qjIO7KF4pSaVP5s1jnmxRa78D9Y5/gozJSHk= X-Google-Smtp-Source: AGHT+IHiGI51RueWOS5PEJQEG+4Gh2nJXRo4OsJkgCK1jqR6c9JsfhkuPRwhfJ6Gu9P1fz4wuUEMdL6zMVunaz4Mo1A= X-Received: by 2002:a05:651c:150c:b0:300:41a8:125b with SMTP id 38308e7fff4ca-30041a813f7mr47506931fa.37.1733848642191; Tue, 10 Dec 2024 08:37:22 -0800 (PST) MIME-Version: 1.0 References: <20241208204708.3742696-1-ubizjak@gmail.com> <20241208204708.3742696-3-ubizjak@gmail.com> <20241209113039.GN21636@noisy.programming.kicks-ass.net> In-Reply-To: <20241209113039.GN21636@noisy.programming.kicks-ass.net> From: Uros Bizjak Date: Tue, 10 Dec 2024 17:37:10 +0100 Message-ID: Subject: Re: [PATCH v3 2/6] compiler.h: Introduce TYPEOF_UNQUAL() macro To: Peter Zijlstra Cc: x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, Nadav Amit , Thomas Gleixner , Dennis Zhou , Tejun Heo , Christoph Lameter , Linus Torvalds , Andy Lutomirski , Ingo Molnar , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Nathan Chancellor Content-Type: multipart/mixed; boundary="00000000000069a3ca0628ed186b" X-Rspamd-Queue-Id: CB34E40018 X-Stat-Signature: ooynit8r6ftpxw8h5op8d74zuhkx8nui X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1733848634-912274 X-HE-Meta: U2FsdGVkX18xbnh9Aq9PJ9bp5qD8L+DmtnpeT3H+iAbH5DNiusWUHLMTUHM4/hN6ed0aat2cwOtDJ6BVamkZvmUxn7p26b7IagiBThLBprzS5VVHqFSw3B8JqF6GzNPW2/x5Q0hujS2vttlVDq0VdsbLzsX/PJYxmi8bWHhbFEUes83+XRPDqV65+EmZhvAnmk0Cos+eJUAPBCM1jQcxmW88idkHl9kKYlQcureXHg05j4BOKxdQ48cACZdnojiag9tTRmv+VDXhP5Li3c4HE39K3woTDT5d1kH4F8dYw5xLEj/DmRagFuFp+2jljrhhxkrnfsC+dlhptCXNpbRF/j5kdD+9xlTVSaAZACNwUKGXlf13OYXYX+I8mLrFZ0W4MHuzQd/RJmFw7rP68fAVZGqzRwqNJnrmE+/Y/P+sxepEHJTDpA0CoqyK2Mhmc9YE2ti2fbQQrpJURTiPT11PR4ertCwN5Ngst70pNqNaXRsFWNmRz+SLlPnTzKpg9KuZPlhej/uIMGKmSLVr4LEVtT0ZVg/L27HVL1tuU7XhEwLwuqUp6KzOFG9vNzFyre6PnVV5KG7IxZCJG6QnOg6HFB0+0XqPudMEI6QH06Prt1emQieWl05JwAwGnALlLf2Eewkm0cxPTTvinbah1JU2UUpRjzZ0IzjcVsyuqNkqVHU37a6A7ucAkYH1zPy83IpgSIjiUtsYulIyhpWqXuIvxg0hM5iQavnY/efsi/ewcBbYh7DniazRYl8SyWKJl2w3sTUbZNWh0IWkgwWGuF6bvFF4q6NlrkNXZt15oLLo5B7altBF+sJn1s9CGv180TT1PnvBWgU53dcSPHmZZekBo8sL0n1tJnp142dVwVoGxQictPiJoTG5lu4fp4w2XIW1bwZaLnxEHjauZ/dWMExemiU+TG71LmwlBdP6TEX4s5ZdDvJF8uvMATY8OV++lj1YlK1GeD5CCRJnw2a/7cq LVwS+gjF BI62Pir90w0+GWvnQOYF0zg3u8ppTG3GqNkOA2UcpdZ8yF9X8yBqXQeaqbdQK23dcE/juX+BgRU30oitFb8/wuVpjY+LLzE6fngMA6J2vpaxLRy542Tv5FlVrdOQKk8vgojIt6HtqJ7IVHzj6323N9ps9DQKjyBX9R0+vWHyyz+Tcg3pY6Pon776igTbBWaaNqHnFt2JmBck+hd2HdYxtvwrh7tekv48gFgTpLCW482xHuuJW8h7tFBkP1eNAS4CXtHl3n0APpNI6a2FrNAFaPDHr2xIxpxZpXtdDWtU9aoboNaF5OG98gDgDJJC6exhmNTAG9rsG9xWikaVhh+4FnTNSlnnxmd5s3VJ0q973EBsw6Repbf5C3S+YWRg3b0QjjJrsCUIm69WlDSQHfRW9l/T5IP8ZEdiVJZCIx7Gl09Au0ZFsZkfzM/YVMga4Bv9N6XaUABRpDb0DwPSMDDRjYwCKfl8S4M3GQaDRyWC5y1hiUegpPL3Bfp9Tv/YgLXaI0oFvFmblcTh2v1NWUSX+EVQvAq1nCzqtwGo++LvLROAhU9t95UfO4ptjafn0vyqpqRZ4Z/QPDBfaG/BZUgxacKA5cpHq7rpPaS3JUIfHJLFKR5H6MYkRIzT1FJxOGQ9XmBBRlHu+oTFx3yOckuFkSf5AaKKg2yOqII6VEO7NTyOb9EU= 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: --00000000000069a3ca0628ed186b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Dec 9, 2024 at 12:30=E2=80=AFPM Peter Zijlstra wrote: > > On Sun, Dec 08, 2024 at 09:45:17PM +0100, Uros Bizjak wrote: > > Define TYPEOF_UNQUAL() to use __typeof_unqual__() as typeof operator > > when available, to return unqualified type of the expression. > > > > Current version of sparse doesn't know anything about __typeof_unqual__= () > > operator. Avoid the usage of __typeof_unqual__() when sparse checking > > is active to prevent sparse errors with unknowing keyword. > > Ooooh, new toys. > > I suppose __unqual_scalar_typeof() wants to be using this when > available? Not only that, the new toy enables clang to check kernel's address spaces in a generic way using address_space attribute. Please find attached a follow-up patch that enables __percpu checks for all targets, supported by clang. Clang is a little bit pickier than gcc about named address space declarations (it warns for use of duplicated address space attribute), so the patch in addition to the obvious +# define __percpu_qual __attribute__((address_space(3))) also fixes a couple of macros that could result in a duplicated address space attribute. The patch, applied as a follow-up to the series, survives allyesconfig compilation with clang-19 and produces a bootable kernel. The patch was tested only for x86_64 target, for other targets a couple of trivial fixes would be necessary (a cast or a substitution of typeof() with TYPEOF_UNQUAL()). AFAICS, the same approach using clang's address_space attribute can be implemented to also check other address spaces: __user, __iommu and __rcu. Uros. --00000000000069a3ca0628ed186b Content-Type: text/plain; charset="US-ASCII"; name="percpu-clang.diff.txt" Content-Disposition: attachment; filename="percpu-clang.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4iomhgl0 ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmggYi9pbmNsdWRlL2FzbS1n ZW5lcmljL3BlcmNwdS5oCmluZGV4IDAyYWVjYTIxNDc5YS4uNDEwOWQ4MjhhNTY0IDEwMDY0NAot LS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVy aWMvcGVyY3B1LmgKQEAgLTE2LDcgKzE2LDEyIEBACiAgKiBzcGFjZSBxdWFsaWZpZXIpLgogICov CiAjaWZuZGVmIF9fcGVyY3B1X3F1YWwKLSMgZGVmaW5lIF9fcGVyY3B1X3F1YWwKKyMgaWYgX19o YXNfYXR0cmlidXRlKGFkZHJlc3Nfc3BhY2UpICYmIFwKKyAgICAgZGVmaW5lZChDT05GSUdfQ0Nf SEFTX1RZUEVPRl9VTlFVQUwpICYmICFkZWZpbmVkKF9fQ0hFQ0tFUl9fKQorIyAgZGVmaW5lIF9f cGVyY3B1X3F1YWwJCV9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMykpKQorIyBlbHNlCisj ICBkZWZpbmUgX19wZXJjcHVfcXVhbAorIyBlbmRpZgogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdf U01QCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9k ZXZpY2UuaAppbmRleCA2NjdjYjZkYjkwMTkuLjFkNmE1NWQ1MjUwYSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9kZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RldmljZS5oCkBAIC00MzEs OSArNDMxLDkgQEAgc3RhdGljIGlubGluZSBpbnQgX19kZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQo c3RydWN0IGRldmljZSAqZGV2LCB2b2lkICgqYWN0aW9uKSgKICAqIFJFVFVSTlM6CiAgKiBQb2lu dGVyIHRvIGFsbG9jYXRlZCBtZW1vcnkgb24gc3VjY2VzcywgTlVMTCBvbiBmYWlsdXJlLgogICov Ci0jZGVmaW5lIGRldm1fYWxsb2NfcGVyY3B1KGRldiwgdHlwZSkgICAgICBcCi0JKCh0eXBlb2Yo dHlwZSkgX19wZXJjcHUgKilfX2Rldm1fYWxsb2NfcGVyY3B1KChkZXYpLCBzaXplb2YodHlwZSks IFwKLQkJCQkJCSAgICAgIF9fYWxpZ25vZl9fKHR5cGUpKSkKKyNkZWZpbmUgZGV2bV9hbGxvY19w ZXJjcHUoZGV2LCB0eXBlKQkJCQkgICAgXAorCSgoVFlQRU9GX1VOUVVBTCh0eXBlKSBfX3BlcmNw dSAqKV9fZGV2bV9hbGxvY19wZXJjcHUoKGRldiksIFwKKwkJCQlzaXplb2YodHlwZSksIF9fYWxp Z25vZl9fKHR5cGUpKSkKIAogdm9pZCBfX3BlcmNwdSAqX19kZXZtX2FsbG9jX3BlcmNwdShzdHJ1 Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQkJCSAgIHNpemVfdCBhbGlnbik7CmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L3BlcmNwdS5oIGIvaW5jbHVkZS9saW51eC9wZXJjcHUuaApp bmRleCA1MmI1ZWE2NjNiOWYuLmMzYmYwNDBhYmE2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9wZXJjcHUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BlcmNwdS5oCkBAIC0xNDgsMTMgKzE0OCwx MyBAQCBleHRlcm4gdm9pZCBfX3BlcmNwdSAqcGNwdV9hbGxvY19ub3Byb2Yoc2l6ZV90IHNpemUs IHNpemVfdCBhbGlnbiwgYm9vbCByZXNlcnZlZAogCWFsbG9jX2hvb2tzKHBjcHVfYWxsb2Nfbm9w cm9mKF9zaXplLCBfYWxpZ24sIHRydWUsIEdGUF9LRVJORUwpKQogCiAjZGVmaW5lIGFsbG9jX3Bl cmNwdV9nZnAodHlwZSwgZ2ZwKQkJCQkJXAotCSh0eXBlb2YodHlwZSkgX19wZXJjcHUgKilfX2Fs bG9jX3BlcmNwdV9nZnAoc2l6ZW9mKHR5cGUpLAlcCisJKFRZUEVPRl9VTlFVQUwodHlwZSkgX19w ZXJjcHUgKilfX2FsbG9jX3BlcmNwdV9nZnAoc2l6ZW9mKHR5cGUpLCBcCiAJCQkJCQlfX2FsaWdu b2ZfXyh0eXBlKSwgZ2ZwKQogI2RlZmluZSBhbGxvY19wZXJjcHUodHlwZSkJCQkJCQlcCi0JKHR5 cGVvZih0eXBlKSBfX3BlcmNwdSAqKV9fYWxsb2NfcGVyY3B1KHNpemVvZih0eXBlKSwJCVwKKwko VFlQRU9GX1VOUVVBTCh0eXBlKSBfX3BlcmNwdSAqKV9fYWxsb2NfcGVyY3B1KHNpemVvZih0eXBl KSwJXAogCQkJCQkJX19hbGlnbm9mX18odHlwZSkpCiAjZGVmaW5lIGFsbG9jX3BlcmNwdV9ub3By b2YodHlwZSkJCQkJCVwKLQkoKHR5cGVvZih0eXBlKSBfX3BlcmNwdSAqKXBjcHVfYWxsb2Nfbm9w cm9mKHNpemVvZih0eXBlKSwJXAorCSgoVFlQRU9GX1VOUVVBTCh0eXBlKSBfX3BlcmNwdSAqKXBj cHVfYWxsb2Nfbm9wcm9mKHNpemVvZih0eXBlKSwgXAogCQkJCQlfX2FsaWdub2ZfXyh0eXBlKSwg ZmFsc2UsIEdGUF9LRVJORUwpKQogCiBleHRlcm4gdm9pZCBmcmVlX3BlcmNwdSh2b2lkIF9fcGVy Y3B1ICpfX3BkYXRhKTsK --00000000000069a3ca0628ed186b--