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 20520C7EE2C for ; Thu, 25 May 2023 22:35:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8880F900005; Thu, 25 May 2023 18:35:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8110E900002; Thu, 25 May 2023 18:35:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B16A900005; Thu, 25 May 2023 18:35:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 57ABF900002 for ; Thu, 25 May 2023 18:35:27 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 280DA1A08CC for ; Thu, 25 May 2023 22:35:27 +0000 (UTC) X-FDA: 80830235094.19.937F55D Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by imf17.hostedemail.com (Postfix) with ESMTP id A40C640008 for ; Thu, 25 May 2023 22:35:24 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=CKvE0O04; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of hughd@google.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685054125; 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=X1I0dDz7r+tt8jOu6t9oxl74u0KdPClVC8LiG257Y3o=; b=OyNMxUJLrj55GHruO+MGpFMfxBZb2rhTuQOyzMMf3tpy13e6IfT82YpPgj0YDX59wElOiE /2BS+ByVA+bW3+Yv/mRf33HRwHyCCrbml7U3/yxEBWthtEjWzYJlIU7cDyY7Snki7Sw/Xz Ef4nzX/KQD2ZToLt7qpuCwvcyut/KvI= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=CKvE0O04; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of hughd@google.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685054125; a=rsa-sha256; cv=none; b=3DPZWDGCVvlqtOFsYOaa62lFs5MPtpf32Inmu8+RtACCVhj9Jhsr1M2ilirzRWcMEMEWff /dQzdSiGU0V4hnnb73EkCqK/x9xPhGr8djbn37t76E8L0WLHcbvXR1YOIsBm0ZPXxaQklh L+M42sWIfJ83vd5fLfyP42xv3DzG+DE= Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-561b50c1856so3896317b3.0 for ; Thu, 25 May 2023 15:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685054124; x=1687646124; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=X1I0dDz7r+tt8jOu6t9oxl74u0KdPClVC8LiG257Y3o=; b=CKvE0O04BlYcOPgAIvegCAL27x1EQjo3Y0lqH/HneX+xDtSwRTt9wdWiMbBxHmmyjs 7JXZFwr4+yHsMjg368dkp6y8AGV2Um5qt0xLnnEuezoVuiPE88WEvyP8thoEP+e72r7x 3ZOz+EB704j+Zn51a+/q8S2b6v2Qffy4eddWD9xenXshmYaCJnqI19dbggFqPHNoJIQt 7wxutVgKE8aVpOgXjxgedLMj9VN9sMr/7Xn/NoaVudCohKWFvEbeESsj++mBOk8QvtXU jFtaWcOVmEAWURq9xHWAJuKwANwgN2i5Fl8ZTtQ2Is8qhlB4hnlnQwuH6/e8IPDXsS/9 JeoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685054124; x=1687646124; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=X1I0dDz7r+tt8jOu6t9oxl74u0KdPClVC8LiG257Y3o=; b=PhMGpamwmx5IONSrmdYhHZiS6nvtBqSw0vkkjmHLzQSAIEGhjRMfrXSHjNVXgI+OFB BH0C73kQVQlemXtYlDtqa5lMQE6Cryi/VA4Uu7p2S5xl+5Fuvu4+AN6iImXb9TGKpySI dgG1GT3vXUh7PblMMLfj6EnxNT4dX/q3OTqcxkEN4Ab15jxyPeTBB7JtvPRacKyhpXIN pnZAEXaGCTpwkdd+xtKFb3+M35TkyiJiE7Z+EEhfUZhj8aJO9rvaV/V+MgVNCDSZG36/ gaROzq1ZOvrDmSicZV2raC0zDMMfoXPN/2JALCuGSr3NSKZNupvoIx1LRcZE5wDQ9y0N RvjQ== X-Gm-Message-State: AC+VfDwutSEtj+JzbdZ2wrrRMREhmFEORquEmdU/pYkVT+qXn0AYV5yh 1/aXeOOP1f0oN2leZhL1Whkv0Q== X-Google-Smtp-Source: ACHHUZ58COqgHBl9so7Zp+r46G2D9ryKU3gAqr29xxGu/x3r6en9PCRXEPlb2IIF0M/UdojFyvCRYA== X-Received: by 2002:a0d:f984:0:b0:561:8602:1a40 with SMTP id j126-20020a0df984000000b0056186021a40mr1108803ywf.46.1685054124263; Thu, 25 May 2023 15:35:24 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id d13-20020a81ab4d000000b00545a08184cesm708388ywk.94.2023.05.25.15.35.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 May 2023 15:35:23 -0700 (PDT) Date: Thu, 25 May 2023 15:35:01 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Peter Xu cc: Hugh Dickins , Andrew Morton , Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Qi Zheng , Yang Shi , Mel Gorman , Peter Zijlstra , Will Deacon , Yu Zhao , Alistair Popple , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 01/31] mm: use pmdp_get_lockless() without surplus barrier() In-Reply-To: Message-ID: <427ea01f-345a-6086-d145-fe573894dbe@google.com> References: <68a97fbe-5c1e-7ac6-72c-7b9c6290b370@google.com> <34467cca-58b6-3e64-1ee7-e3dc43257a@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A40C640008 X-Stat-Signature: dhpz8ru7xn55dzkhf3tt89gtjj344jd5 X-Rspam-User: X-HE-Tag: 1685054124-258943 X-HE-Meta: U2FsdGVkX1+4QaJWx+yEbAVtanrP4Nrilf+bv5R2GRrIwiBYpYrsrPlVmpH6cYL+KX9ifEekcgRkePLPtaU2m4VGSbbkGytCsXUachHxw8em/MO1mS3aDV4cHzEj7uBPdHdH+r6LAHdJx8J7nqulFoV2Gvj9Slo5dZGvy7K/UK/BnW4iXpkmu4VyaC9PTLIYUicA+wXu3Vk2Dhb03TErl3RQQk4gcinnte7DfB/N2pG0/8XbOXpBNJZz0WKuh0jwSX2s5wrt6cR8wbFX5LtlDGeG7ShEoKSsABke3Xn0edQt6ifR9lvHE70fj40EMgknlsBeHJC4O+Tz10J6faah0vfRGWpVNDaUamUvUoEy+zwYDcxHsrrQnVyLd4IVL1J/9c62yRo+LREkQ51/+ESwGfDTgu7+P9P/4WubAbgJfRiyEK2hI+WCSynG2Iybc+EMMSS3900pLxhlFEKIasw4BaxT1fuKVW4T9jSg75/1l3lA/qZ20c8j08H5mroKzOMm37NMcXigNDuwg1A8SXEsfEKmGoH65SLOCim5i0en/WFhPaSwzuf4lKkSO41VDfKpiEyxHoyRj5GJu3s25k/YNlXfLAlGJZ9i2t/T2EgzpcHMWsfgNBPxzmxTA3oGfMDJBPklWeuiZmL1j9hF3wUAMX+vkrP9K8J82Tm6kFeC+7stSlPJJgDusWLM1ZIaWeMcs5+nQ3YQqWTnJUg06/sU3/HkZ6ZneGkwgjBvbZjlD6Z7aPSyTdxV3skZ1eB1nCdN896ugjT7w+NmCv4bRUFj1uAESgW7lfSzQdPI9kHRpZoBhAJmIfABnHMdmklhG63Wd64Q48txghADrdTp4C4nPdPUtnUn7bfBdx7Np9g9i4lL1PQEB1SfzltfJ48QE7Cjy1tdyXQJ4qr/kfhmpRGYp68KNcT2drZOVOhxlRNsM5IT5sra4VWmb6oW2oKi8wWNnqNzGmP3k+LzZJQUIG3 G/VE620d 3RpEUTKeCrp+TM9fcqPwgPiPzTQPun9TOkwCFwjVzs5oKpnwXz/VZ9mvp3RkoeFCDPNXJkKRGZXyXQ3DHbPfsaW1Zy6jQjeZym0+BV0Hg9S5NsUGVVJHAUDb1eScuHvT50jF/V/CSe0DENA3aH63TMooQ6utn2IEjW97XQVNtgbkN41U8iMMmnwkTssfnqBii0w0cs7QM/jLUxcdqbng0kVBOodARPJqtB4BTKvHaFfQpicKsQgVly26alnvxj102eFBM2wfCDaZD8fgM+ipiWt1T+Gi8fnDRESx4DwY0D/ImwopfJOFErhdA+Nx5CIbeukIUGWo+luMZcpKtjIMpFK76j1hO8iXenjuvTvclmWQTKlYJfcPtueU9fXpLFGr3lj8WifLFdFjhlctiFa+jR1ROodLcddDDOyA7 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 Wed, 24 May 2023, Peter Xu wrote: > On Sun, May 21, 2023 at 09:49:45PM -0700, Hugh Dickins wrote: > > Use pmdp_get_lockless() in preference to READ_ONCE(*pmdp), to get a more > > reliable result with PAE (or READ_ONCE as before without PAE); and remove > > the unnecessary extra barrier()s which got left behind in its callers. > > Pure question: does it mean that some of below path (missing barrier() > ones) could have problem when CONFIG_PAE, hence this can be seen as a > (potential) bug fix? I don't think so; or at least, I am not claiming that this fixes any. It really depends on what use is made of the pmdval afterwards, and I've not checked through them. The READ_ONCE()s which were there, were good enough to make sure that the compiler did not reevaluate the pmdval later on, with perhaps a confusingly different result. But, at least in the x86 PAE case, they were not good enough to ensure that the two halves of the entry match up; and, sad to say, nor is that absolutely guaranteed by these conversions to pmdp_get_lockless() - because of the "HOWEVER" below. PeterZ's comments in linux/pgtable.h are well worth reading through. You might question why I made these changes at all: some days I question them too. Better though imperfect? Or deceptive? Hugh > > > > HOWEVER: Note the small print in linux/pgtable.h, where it was designed > > specifically for fast GUP, and depends on interrupts being disabled for > > its full guarantee: most callers which have been added (here and before) > > do NOT have interrupts disabled, so there is still some need for caution.