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 6E459C7EE2A for ; Fri, 18 Aug 2023 16:48:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C092B280061; Fri, 18 Aug 2023 12:48:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BB868940012; Fri, 18 Aug 2023 12:48:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A818C280061; Fri, 18 Aug 2023 12:48:52 -0400 (EDT) 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 94DE9940012 for ; Fri, 18 Aug 2023 12:48:52 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 66FADA03B0 for ; Fri, 18 Aug 2023 16:48:52 +0000 (UTC) X-FDA: 81137809704.22.BBF465B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf06.hostedemail.com (Postfix) with ESMTP id 8A102180015 for ; Fri, 18 Aug 2023 16:48:49 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Py5rRtfL; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692377329; 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=veHnm8JIytX/ZN4b89EoSQLoYiAOvTxlrfzT5tPpVw4=; b=qVoIOJgND4s84LwQDls+bzFgHQoMiBHwcu94kJNpB0gRWNdMInvbr2IRTnAvNWrNrpHlfY kOwv+kJT2IlWRVoo2b6HTdCarJdKE8WeXoTCvTMYI4iv1lLHPUCsfSk0ucDcav7JZgRr7J 3rFElVlEoEzJX0nGwMjo8YVOcbhyvsc= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Py5rRtfL; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692377329; a=rsa-sha256; cv=none; b=8rBP4FA7s8djvpLo5VoyyHHMFYs4efFJnNP21RkR9xkQPWb5kYrTKsyWulf0y6+2URtPLs OQ2sAcPzSyb8ghCQi2RHUmBlbaAZhvTskLq4QkLXSHZuaLN7VsLxw2H8znfxLoKGNBrPKM b7dcDQUPLJYFd8GPURzDCK9kzX9Y3iQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692377328; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=veHnm8JIytX/ZN4b89EoSQLoYiAOvTxlrfzT5tPpVw4=; b=Py5rRtfLdO+HrQsu8c5dhkT8XCimQpiI469exNPsWJaqohUu8oK/z3IzbTdjOVp7t+eOIg eMgz37DUPMIeKxBHBK4oCC/PmRrt5T3V8xjDnzonVOId9jy2D05upFUkgtyz0HE0duHUwW oKsdnvcv13GyHo9VazsOcnJFCLwmWgY= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-668-EkqRh9h2M7qdDKIFcGzgWw-1; Fri, 18 Aug 2023 12:48:43 -0400 X-MC-Unique: EkqRh9h2M7qdDKIFcGzgWw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 602E8101A52E; Fri, 18 Aug 2023 16:48:42 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9EE1640C6E8A; Fri, 18 Aug 2023 16:48:40 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: References: <03730b50cebb4a349ad8667373bb8127@AcuMS.aculab.com> <20230816120741.534415-1-dhowells@redhat.com> <20230816120741.534415-3-dhowells@redhat.com> <608853.1692190847@warthog.procyon.org.uk> <3dabec5643b24534a1c1c51894798047@AcuMS.aculab.com> <665724.1692218114@warthog.procyon.org.uk> <2058762.1692371971@warthog.procyon.org.uk> To: David Laight Cc: dhowells@redhat.com, Linus Torvalds , Al Viro , Jens Axboe , "Christoph Hellwig" , Christian Brauner , "Matthew Wilcox" , Jeff Layton , "linux-fsdevel@vger.kernel.org" , "linux-block@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v3 2/2] iov_iter: Don't deal with iter->copy_mc in memcpy_from_iter_mc() MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <2093412.1692377320.1@warthog.procyon.org.uk> Date: Fri, 18 Aug 2023 17:48:40 +0100 Message-ID: <2093413.1692377320@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 X-Rspamd-Queue-Id: 8A102180015 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5c3ecumo8114tarhasdt4s8fb1m58qop X-HE-Tag: 1692377329-926250 X-HE-Meta: U2FsdGVkX1/FDQv7naEj4fsoG5/teUItaX5HMYyl9+xYrY/3dEAWtXP1DWoXqnJe3ktW8YJ2mKufgiDax7waQ0s9YOiiVWGxhf47ha4sAm//OaoJ9cGs9mGmSIV5vSX1PzbC14H/LWMhsCzP3i3mnudjMYqPpIkiGFnIRbc66FAvkBNLui8cypXjqUq0DE3Wm/ztakvNZr0i4vmyWCXpj03bGBqPe4rssmOgAlek/jUqkAvzeaBE64FOwX1Wy0P7EzKsj4YFeHmfWsTxQZjAelxRXz2sn2fFBSpA4g9UhL3mwskulOcLDtauu2fJU/tRTVg+dQRjOJNdtrtui2Sx/ArwDx9oT+SpCiaZl/brl6x/2LJ29kvv/a6P8uY+fyCcKzjXupBJfpSCc/z5Koly5h0FAjkjkEbtXRo/6ixlueDktAtN92138p2TvsN+xARb7d5KyDVmphLW6iXlV9Io7QNwWfcpbUA1SHYiW7hqQ6s/yhdS83ywRAGD0Hf1vR6fQvJtKnBFCuRbv1yU1UThojElJdgZkSZaV0G4lVpj/KEHIwn2rtY7Ot0fH/FVkdNoj8w4rgQmXqOdZDnHrCWYXX+KRfbZN2kvb4oRdHEAlESToJXTpEOOTXVwnXrnkzHAWAeA64fHoUydvrA59YyjgZOoOV0jX/9ODqTrWnFUTQzwM4sWXjmXIvddRsZuJiM0fFmIz08UuivzWrj/NErzY670lHJvMYl3vss+OoEBSftNJMI5HHoJ4UCJgW9cs/d1bxZ9D549saYvTmRg5OSv3ze9AGO1Fs8jKzJ4RgCdAlzWYP2TbG+EaJeUsoOolpuP45vS2pXi74hyyRpbekvZzBWFMaPbJDMQvrayQB5jKMP2aZXmsAaKdafr78LOZ/QEysyq1mquqUxZ2U5cSGW08hN04D9xSNn8CUmodExJb8nGAil3S0F4T6mDdMz7NtEZGnrjKCBm8TfyMFM8GQ+ S2GKrZiQ ptHNooNsgWiDyG11xnRZim99XS4/k2Vo+gyTilNSTsGR5cEVHoLtUgEaURNf3iecq/vMf+bfgovTvba/RRg7u4dGNPq1tVQdzVt0eeZXrDci4qyURuyfPF5yoqOAOE+qN/AeEbnjjSPtXHX3bcKtW5GKaNkyd3hxbuAVWCjCNIPHsRW/dLlaYgyZMpThc6/SWEKyw2bIsY4TdxUz8pHzlWGWN9vEpo2SSZZXw9kKy3bdXxCwld+/dMIIVQTu4DJPHnfP9LM74ZqmxAX5dESdgWkFgqfVYk8HZ7Op/UM+GOlPDga+rARqulwV3wtrI5YRxVmo8TrAEoZ48QXt4AD6D3EjJ6Q== 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: David Laight wrote: > > iov_iter_init inc 0x27 -> 0x31 +0xa > > Are you hitting the gcc bug that loads the constant from memory? I'm not sure what that looks like. For your perusal, here's a disassembly of the use-switch-on-enum variant: 0xffffffff8177726c <+0>: cmp $0x1,%esi 0xffffffff8177726f <+3>: jbe 0xffffffff81777273 0xffffffff81777271 <+5>: ud2 0xffffffff81777273 <+7>: test %esi,%esi 0xffffffff81777275 <+9>: movw $0x1,(%rdi) 0xffffffff8177727a <+14>: setne 0x3(%rdi) 0xffffffff8177727e <+18>: xor %eax,%eax 0xffffffff81777280 <+20>: movb $0x0,0x2(%rdi) 0xffffffff81777284 <+24>: movb $0x1,0x4(%rdi) 0xffffffff81777288 <+28>: mov %rax,0x8(%rdi) 0xffffffff8177728c <+32>: mov %rdx,0x10(%rdi) 0xffffffff81777290 <+36>: mov %r8,0x18(%rdi) 0xffffffff81777294 <+40>: mov %rcx,0x20(%rdi) 0xffffffff81777298 <+44>: jmp 0xffffffff81d728a0 <__x86_return_thunk> versus the use-bitmap variant: 0xffffffff81777311 <+0>: cmp $0x1,%esi 0xffffffff81777314 <+3>: jbe 0xffffffff81777318 0xffffffff81777316 <+5>: ud2 0xffffffff81777318 <+7>: test %esi,%esi 0xffffffff8177731a <+9>: movb $0x2,(%rdi) 0xffffffff8177731d <+12>: setne 0x1(%rdi) 0xffffffff81777321 <+16>: xor %eax,%eax 0xffffffff81777323 <+18>: mov %rdx,0x10(%rdi) 0xffffffff81777327 <+22>: mov %rax,0x8(%rdi) 0xffffffff8177732b <+26>: mov %r8,0x18(%rdi) 0xffffffff8177732f <+30>: mov %rcx,0x20(%rdi) 0xffffffff81777333 <+34>: jmp 0xffffffff81d72960 <__x86_return_thunk> It seems to be that the former is loading byte constants individually, whereas Linus combined all those fields into a single byte and eliminated one of them. David