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 143D0C61DA4 for ; Mon, 6 Feb 2023 12:20:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 856A86B0072; Mon, 6 Feb 2023 07:20:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DFC96B0073; Mon, 6 Feb 2023 07:20:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 632916B0074; Mon, 6 Feb 2023 07:20:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 507F46B0072 for ; Mon, 6 Feb 2023 07:20:03 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id ABB881A01E7 for ; Mon, 6 Feb 2023 12:20:02 +0000 (UTC) X-FDA: 80436773844.07.BBFA2AB Received: from new4-smtp.messagingengine.com (new4-smtp.messagingengine.com [66.111.4.230]) by imf23.hostedemail.com (Postfix) with ESMTP id 9397514001D for ; Mon, 6 Feb 2023 12:20:00 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm3 header.b=maQtG7CX; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=HbjcZlBH; spf=pass (imf23.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.230 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675686000; 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=EttWCI1bpeAjhBiaJSAzg8VXO8QdUkkL5lYBTi6kKQM=; b=6bwNL5O7hOil0UXMQtkfyDof07LjOCdkCUjfM0pG2FXsZZRqSffQW/HuCnGNn8Ai2XaRvS g8767cmQzhR7o4FMZTkfw4sQx7od+ZxGfd4Ni530ql/Z+71C2AgCXStMklpJqCQ7vsS/Qs wHE7lm0wZbDijILQ3h+Y8suXmxCVrBg= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm3 header.b=maQtG7CX; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=HbjcZlBH; spf=pass (imf23.hostedemail.com: domain of arnd@arndb.de designates 66.111.4.230 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675686000; a=rsa-sha256; cv=none; b=AHRHHocX6XluICFluUx8bu7zrVCSmM2MA8u/4h7u5e+QOryDbyz2tgV9e8D4bxA5+MaP69 jmv4ybogHk8jTzfpXTBSSuvxIx3SfhXSVzktsZ0XzUjnWa332qVsE5yvM9Bp7yzgOdzEyg sz+C1POmFejE1gi/jG/VnwRxUxEqnPE= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailnew.nyi.internal (Postfix) with ESMTP id BEDE0581F89; Mon, 6 Feb 2023 07:19:59 -0500 (EST) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Mon, 06 Feb 2023 07:19:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm3; t=1675685999; x=1675693199; bh=EttWCI1bpe AjhBiaJSAzg8VXO8QdUkkL5lYBTi6kKQM=; b=maQtG7CXW2j0vs9LdTv/Far0Kj r+JQ8DrPxOijBj5u/M26nfyCBg3LxOaSsoSj863bQj93nOQt4obnx4yBCRfGWoom VPyhj9PwipzQQmE41f2irREabq1vHc4ubDRvewHR1SzZChLeVlrXH0nfIHWBleeE RO/tfMb77+jVXkYb4Td8o9TS+Fr/9JaIPlh0TKo/wohxWZnBLwn8PUfeH7QVBtCx Wqrq8iqLfP/yc8jgZ0wd6C+KZi1EkperQDi+XjIq/+qyBj282AOUruNzvU+apOiU UrBvkzmnKoxYB2gQP5BM2fjtXoNWI0Wg0pjpuL7zBhyE5qlhjYETNv+Ld2Ng== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1675685999; x=1675693199; bh=EttWCI1bpeAjhBiaJSAzg8VXO8Qd UkkL5lYBTi6kKQM=; b=HbjcZlBHM73FLUMGEg7g7Txy3GkpYltTnf/zta3DkBCu vVtq6kehTsHtsjC4kcAls1wCwzA/hPgTf1m7qcEXHGNxri+4cilSJgq7EUXgwqnZ 9Cx7AO3RuNKm8gvh57qoAZI+7DiggrksU0tGQKZGsndoxp5VyChBY2/2dNuQOI0+ 7/I/NfA9CM7eDn8EDMmm6HSPztcSgzps4TzOuFyVR8pJYEmd0YxAuc1qjpMy8mcR l8QbPS2Vwyc8TV/DerYXjwbRgpCWytjcTigKukYttUCDZVEH1rzWDdbNeUYTx6VU EZWD42Z2YdEcJHF4ltoafp7TQFLVqoWipL0uxiVVQQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudegiedgfeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehttdertderredtnecuhfhrohhmpedftehr nhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnuggsrdguvgeqnecuggftrfgrth htvghrnhepffehueegteeihfegtefhjefgtdeugfegjeelheejueethfefgeeghfektdek teffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hrnhgusegrrhhnuggsrdguvg X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id D47B2B60086; Mon, 6 Feb 2023 07:19:56 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-108-ge995779fee-fm-20230203.001-ge995779f Mime-Version: 1.0 Message-Id: <30e43e0b-4d16-433f-845d-dd026adfb252@app.fastmail.com> In-Reply-To: References: <20230202145030.223740842@infradead.org> <20230202152655.494373332@infradead.org> <24007667-1ff3-4c86-9c17-a361c3f9f072@app.fastmail.com> Date: Mon, 06 Feb 2023 13:19:38 +0100 From: "Arnd Bergmann" To: "Peter Zijlstra" Cc: "Linus Torvalds" , "Jonathan Corbet" , "Will Deacon" , "Boqun Feng" , "Mark Rutland" , "Catalin Marinas" , dennis@kernel.org, "Tejun Heo" , "Christoph Lameter" , "Heiko Carstens" , gor@linux.ibm.com, "Alexander Gordeev" , borntraeger@linux.ibm.com, "Sven Schnelle" , "Thomas Gleixner" , "Ingo Molnar" , "Borislav Petkov" , "Dave Hansen" , x86@kernel.org, "H. Peter Anvin" , "Joerg Roedel" , suravee.suthikulpanit@amd.com, "Robin Murphy" , dwmw2@infradead.org, "Baolu Lu" , "Herbert Xu" , "David S . Miller" , "Pekka Enberg" , "David Rientjes" , "Joonsoo Kim" , "Andrew Morton" , "Vlastimil Babka" , "Roman Gushchin" , "Hyeonggon Yoo" <42.hyeyoo@gmail.com>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, iommu@lists.linux.dev, Linux-Arch , linux-crypto@vger.kernel.org Subject: Re: [PATCH v2 05/10] percpu: Wire up cmpxchg128 Content-Type: text/plain X-Stat-Signature: hfd4yjpid1ammku5yozid8azc74cfob8 X-Rspam-User: X-Rspamd-Queue-Id: 9397514001D X-Rspamd-Server: rspam06 X-HE-Tag: 1675686000-238307 X-HE-Meta: U2FsdGVkX1/C+g8yk61HpfS1X1cLPIYtjKZ+f8RN8Gon7dYi3rlaX8f98zlUR8/ORLRGx5EqpagJAmUpU7Ph9sXZfNPzshlkKMc3MxZNBghT58iQpS3AKWWRi9g3DkGfTrVbK6h5E3elQSqjfI8CL15LgZusDmtlOZ6YI6nggwPAvxBo2kA6lZ36ubDnqm6axQrJDth6vA6cu3BLbPsEdI2ZxlwE5L5X5FfGhpSSLjtpuQgy6V1j/FZQukNe3dC7gGCaZxOiXlDkJe9P5nseJuyb2kiOFSA2x4gCIRJNsADquI49P6Xq3tQ0JgE0QKHvUkdXJIes6y8bxHt5I84W0b7mqNw/+Wtmm+IA6ekKdqdAMa7Y1cyi7dJR8uFiRa4lqLGW9uUAwVsbg3G0ADy09WlJYCGNxEq3/Ydw6aQ+ZFIA76B8Ay6RUjNGUKj185crPlWB3z0gOzyAchWjU1dzxgvJcMxUpCyMzQjD4PVFybxgzi3ETdnyoHxT4Gi2BJHRnbQRcMmXtayODa+CEcEJXNU4E9wwlbx9x/Gpfsz1vvb211RaN7Jyo9x3F8+okaIKo8OKqO9iZR+XskUERMuErWVQLtscPas30N6pbWSgdImmRhBr5PO89x5neDfahtGZmj9CnwiQzcm6+EOx26bOv3/MR9d8vHeqR9t9RJ2VYMXM3z8jO1mhZnshrtmLWtpySCyXcXFJoWxlg1EGHJg87gdRme2gYn74dKOFKulhqLOH2TmpbmsrUPYv5DHn/1i3Ko7uAawPg4voVlkOlslt++HZMoZQ8UMm6U4ECDoa36wT3Lvv3d7wJ0AsxoDQytpy7z9JSx0VuIRcZnzyLZOv3YGRGZX+9fLNs9M6hQk6SKLdlGx8NjBFze8tkTkhGh+ykK3dro88RFHmUQPnm8pX45CR+YIuPbQLnNtFd0u2xIPQ6bmkpHn0Kq8TQtrHD7V989PC2UuDJ1ZtZQK69D2 nWwNJ7wa KOr7wGPepYHLiilI6c9CtkM+oDOjGKFkztn1Ymj3/CISyfiJItdBxjpaWOzHxQwreeoMKL5JvUjyyjpnpcE3fNP0XMO4tNgX3sKdX4/F47kG1swT1+eUdbS62hUrzwbVLTGk7DFWM0lZMViSpuIva9+zZDxknPZfcpcghw109NB3maYa9M2qfSSEN0QVelrv1H+Kx7rOgYN+w6a13Vrm+zX1UtB02PYC5kK5f 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 Mon, Feb 6, 2023, at 12:24, Peter Zijlstra wrote: > On Fri, Feb 03, 2023 at 06:25:04PM +0100, Arnd Bergmann wrote: >> Unless I have misunderstood what you are doing, my concerns are >> still the same: >> >> > #define this_cpu_cmpxchg(pcp, oval, nval) \ >> > - __pcpu_size_call_return2(this_cpu_cmpxchg_, pcp, oval, nval) >> > + __pcpu_size16_call_return2(this_cpu_cmpxchg_, pcp, oval, nval) >> > #define this_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, >> > nval2) \ >> > __pcpu_double_call_return_bool(this_cpu_cmpxchg_double_, pcp1, pcp2, >> > oval1, oval2, nval1, nval2) >> >> Having a variable-length this_cpu_cmpxchg() that turns into cmpxchg128() >> and cmpxchg64() even on CPUs where this traps (!X86_FEATURE_CX16) seems >> like a bad design to me. >> >> I would much prefer fixed-length this_cpu_cmpxchg64()/this_cpu_cmpxchg128() >> calls that never trap but fall back to the generic version on CPUs that >> are lacking the atomics. > > You're thinking acidental usage etc..? Lemme see what I can do. I wouldn't even call it accidental when the dependency is so subtle: Having to call system_has_cmpxchg64() beforce calling cmpxchg64() is already somewhat awkward but has some logic to it. Having to call system_has_cmpxchg64()/system_has_cmpxchg128() before calling this_cpu_cmpxchg() depending on the argument size on architectures that sometimes have cmpxchg128 but not on architectures that always have it or that never have it makes it useless as an abstraction. Arnd