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 A1E5BC54EBD for ; Tue, 10 Jan 2023 02:09:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0BE658E0002; Mon, 9 Jan 2023 21:09:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 06F098E0001; Mon, 9 Jan 2023 21:09:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E78DB8E0002; Mon, 9 Jan 2023 21:09:57 -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 D7FC58E0001 for ; Mon, 9 Jan 2023 21:09:57 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 93489425E7 for ; Tue, 10 Jan 2023 02:09:57 +0000 (UTC) X-FDA: 80337258834.15.A593E99 Received: from mail.zytor.com (terminus.zytor.com [198.137.202.136]) by imf28.hostedemail.com (Postfix) with ESMTP id 6600EC0005 for ; Tue, 10 Jan 2023 02:09:55 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=zytor.com header.s=2023010601 header.b=Ua3iPSxb; spf=pass (imf28.hostedemail.com: domain of hpa@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=hpa@zytor.com; dmarc=pass (policy=none) header.from=zytor.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673316596; 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=kYuTxVGdJeZQ71LtcvKU+xibL3tZdH1q8UEMIgJzYL8=; b=Xs9X/I+M+Sey29M7JAR9nj2x6N6P3GHRMIG4mDyrFNJSfJ/JHZ1N0yG5zfqKCUjZyT1RoY +fOiM2VLixr0EotfPHi0fSKhiA9+lu5IchKXacVUxPvZ3HigHNfrOYNwqFc9irrPG9kHpY ipZcZJj8GovvSX6rvF50xeK1hle+2KI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=zytor.com header.s=2023010601 header.b=Ua3iPSxb; spf=pass (imf28.hostedemail.com: domain of hpa@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=hpa@zytor.com; dmarc=pass (policy=none) header.from=zytor.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673316596; a=rsa-sha256; cv=none; b=GgFd58V/oAu+2LyKTBcbpcSTY+dMSQUkeL9ry53iTuKyWbesEJZdjKc+0QnnqF1Uugpn/k ag075wM8OO5zDEuqjbf9i+aqsbw0AWc8S35f+P7xH0RNp/YHZu1DN4vLgDoMaN1x4G7Qjj E00TtXDN4bGEG+5culzxwlu/yb+FC5o= Received: from [IPV6:2601:646:8600:40c1:c1a6:29dc:ac72:b87b] ([IPv6:2601:646:8600:40c1:c1a6:29dc:ac72:b87b]) (authenticated bits=0) by mail.zytor.com (8.17.1/8.17.1) with ESMTPSA id 30A29A831162371 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Mon, 9 Jan 2023 18:09:11 -0800 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 30A29A831162371 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2023010601; t=1673316565; bh=kYuTxVGdJeZQ71LtcvKU+xibL3tZdH1q8UEMIgJzYL8=; h=Date:Subject:From:To:Cc:References:In-Reply-To:From; b=Ua3iPSxblNvQokL81qPCOUC/5E5qPA5nHglOBrh0afmZlsyriW80nKnpEOFV38Gw8 2a1i+XBNAtW0vbK8rhzrNz1Qr47ANVjBmZBUkV7u6GBj/A/sA4zV5D0pPhCUu+NZ49 tb5dMmJ0usiuqsYVjaqkurWbWjsWLur1JbX6N5ge81qBaGVbgnm1PnElMb6RTlPnWZ w9+GkyyQceF+0d679wgf4DzuSdLBxU1uatTBCjGvHkPyn/1/GgCqg8BVHVBytI/XSO crfqV5ocmSLZ14MmZa+4JSmgaPl9p5XBEtYWaZaUkorNmvcjjQphvbXtdSK+bYycCQ YlN1xM/i/K23Q== Message-ID: <13ad2c02-c7db-f32f-b085-b92b7dceefa4@zytor.com> Date: Mon, 9 Jan 2023 18:09:05 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [RFC][PATCH 11/12] slub: Replace cmpxchg_double() From: "H. Peter Anvin" To: Linus Torvalds , Peter Zijlstra Cc: Heiko Carstens , corbet@lwn.net, will@kernel.org, boqun.feng@gmail.com, mark.rutland@arm.com, catalin.marinas@arm.com, dennis@kernel.org, tj@kernel.org, cl@linux.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, Herbert Xu , davem@davemloft.net, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, joro@8bytes.org, suravee.suthikulpanit@amd.com, robin.murphy@arm.com, dwmw2@infradead.org, baolu.lu@linux.intel.com, Arnd Bergmann , penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, Andrew Morton , vbabka@suse.cz, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-crypto@vger.kernel.org, iommu@lists.linux.dev, linux-arch@vger.kernel.org References: <20221219153525.632521981@infradead.org> <20221219154119.550996611@infradead.org> <3C179EF2-0B8A-47F0-8FE6-3BF97A4442BA@zytor.com> Content-Language: en-US In-Reply-To: <3C179EF2-0B8A-47F0-8FE6-3BF97A4442BA@zytor.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 6600EC0005 X-Stat-Signature: mcqxz58hs9bqhj9xrrfnfra5em3fip6j X-Rspam-User: X-HE-Tag: 1673316595-583857 X-HE-Meta: U2FsdGVkX18hXYtHDhc4Z9Goj6sznjmAY5ZXNnugzkwS3SEdCBd4L7MMRvxrkQUFVhHXUACciq47/qZ6KPo65dPGQ981Dkm35YJtjILL19XJhzUsIA/2DDGWRWYn78aYNoW7zCKHLoi0XKW53gKnwmRJnlWXkODOFZgVHa+1Ja/teO1xAsCXvByYErOLz+jnigPVueTEXnV5sd6+Z2BPemx00qNotb83MFZoQm8GwIJDLIxeAYEd9knbdI+HRmBZcvCSlTRCW3pBdmkcARh35z750NpQGnhcOuz7uryaU3Y7jDOCSnf7bRCaXKD7gCPAGIcC6wrEJUoIsHuMYna2U7JYr2k8oCLm0kq9kKTtn2UB/fEXyJPkPfQOpe2rpyRpfcAX4yheTP46pv1eedQCcmRlAjnDGAZUgByK3A1zSTyfuubNSXj5yNQOOO1VmH1b3vKdGAt5lq4NifNYtVKC5tJPj75QtY25Cf1qlQY2voOqKFpa1dfn+Dkim4H7X8get4IVjxv25UA5zgLPLXVnWniHWeEtT+mKYb/CJ5io+1bPT2ua7OVwzp/QLJSDFi67PsVI2iMd8SW9cRTywCLw7pZJZa5m0t9eBfLt4GJzBpBnQ8iAD6DhVIc30ppQU/giPwe+6QCpm5O0GAY/15rmN6Tr5hhS4xiqRtechV0iHr9/fYZbijASRI9JzlUitfGMiIw3i+oVD6yqmeh5SyhdiQ3f+G9pxPd89uDfu8edYI6/ztcFrVN6sM6D1+w4rqvY6/qjjTEerD4Lt5FdvumPYBkvSQk2/h/VLs1NMA/bPSfwOWngkxoBSXHNVi3eEV9muQlUvXhg25ZWqsuS97W+LE+eR/LCFGuq3p2hE12OxA1vtWErFgKxkZX1LT+AajHMJ8TMxBNN1LzcMv1L9pL6jPaN1tGIQFEdJF8RcQEC4/Ayi3zY4sj3nf4zIi3rYbg7n51DLgdx+IxomIWKNWP JDarf5RN BjYvfztoV3GKNusY7aTEbgf42EBFDDBJXKpkYazexb3VRR9w= 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: On 1/9/23 14:22, H. Peter Anvin wrote: >> >> Another alternative is to try to avoid casting to "u64" as long as >> humanly possible, and use only "typeof((*ptr))" everywhere. Then when >> the type actually *is* 128-bit, it all works out fine, because it >> won't be a pointer. That's the approach the uaccess macros tend to >> take, and then they hit the reverse issue on clang, where using the >> "byte register" constraints would cause warnings for non-byte >> accesses, and we had to do >> >> unsigned char x_u8__; >> __get_user_asm(x_u8__, ptr, "b", "=q", label); >> (x) = x_u8__; >> >> because using '(x)' directly would then warn when 'x' wasn't a >> char-sized thing - even if that asm case never actually was _used_ for >> that case, since it was all inside a "switch (sizeof) case 1:" >> statement. >> >> Linus > > I wrote a crazy macro for dealing with exactly this at one point, > basically producing the "right type" to cast to. It would need to > have 128-bit support added to it, but that should be trivial. It is > called something like int_type() ... not in front of a computer right > now so can't double check. Right, it is called __inttype and is defined in arch/x86/include/asm/uaccess.h (and, apparently, a few other architectures; probably should be centralized.) It has been rewritten since my first version using a nice little macro called __typefits, also would we worth centralizing. -hpa