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 A54BBEB64D9 for ; Tue, 27 Jun 2023 15:32:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 305768D0003; Tue, 27 Jun 2023 11:32:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B5618D0001; Tue, 27 Jun 2023 11:32:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17E198D0003; Tue, 27 Jun 2023 11:32:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 08C118D0001 for ; Tue, 27 Jun 2023 11:32:49 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A2AFC1207D1 for ; Tue, 27 Jun 2023 15:32:48 +0000 (UTC) X-FDA: 80948920416.05.6755FE5 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 5B39118001A for ; Tue, 27 Jun 2023 15:32:43 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dBfiG6Nh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687879963; 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=G1ALzO/wFiWKSePyymH4fMjBT5VyA413q3eqPcghorU=; b=w6izd8T6awHqPuSfuorli0jt7+OSs/AxO7D0s4RMf0pSeV4PyOu8bL2sYaqxrZupp0zfkO SkAAq70YHW3DHf+lOfI9hKHRsLYBWr+/JaKnCx2EjFpl/cvQg5OkMI+7tqcxQAUvOzetg2 5xqie4l0z80U/4646WcmKydfR4tC19w= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dBfiG6Nh; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf06.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687879963; a=rsa-sha256; cv=none; b=2vUPR4dlK4bnRTFCYKZbovPnSouH3mwpmr6IRuZJ9GJAjegRiOYPdbUk84KB4P7yhnVQN3 rxs8pRmb+TIZ6gHvNOMYU1BXFyQSp70KSUAQIBC15/i4um4cqqyOBw1rGWsAwjiCrCYXdA Bz0kakRlyY5t4WvbOGKyFdHw1r84kq8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687879962; 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=G1ALzO/wFiWKSePyymH4fMjBT5VyA413q3eqPcghorU=; b=dBfiG6NhMJn+psJdMwTDSoaBmsWIMoxopXmfNB4PTNkyE/cHbrLGcdRrkHVHKNSnTtqgvZ d0QPyLQZv2lwWvVK3JPI1w89Pqn0OUXwuUugggmbO19BNP+rHD9RgU91cKYd3YI3EgwwHh Df7awIVZI14IvTj2HM6cNBhW9e4goYc= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-570-dXqYJAtYNXuHT8JcnUUqcg-1; Tue, 27 Jun 2023 11:32:40 -0400 X-MC-Unique: dXqYJAtYNXuHT8JcnUUqcg-1 Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-3f9e7a1caf2so14671881cf.0 for ; Tue, 27 Jun 2023 08:32:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687879957; x=1690471957; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=G1ALzO/wFiWKSePyymH4fMjBT5VyA413q3eqPcghorU=; b=LNQhLfdRhu0+zwsBq08QXoaRJ9wRjil44I4b5FaMQJsR3t+1dQ1gha8vOPQAFROYdD cyp3LFUtk1LSyODf6PcsM+QLrxliug8CvE/1qpQLzcEYj6blsRNlX59AIS9lY6FXKcAc CUYb3SUz5ohn+uF/ZBBX9/9O0xoCxfe6VtqlLy9YMuDYi/pzVnFxXoQGwl+nVbCBlMz0 2VFXe8tePLhYfUxDL8Oin1ZsnsM6RroLiNLxCxxU/O+8qiGDIkji5snc/4qVzSZ+8ZSU y93s7EZQ6knbjXa8gN6m69CPz14eWcNOEdJER6oAe18VqlmZvwKX3aLq5TDCKiK3isRL F3gg== X-Gm-Message-State: AC+VfDxei2dQQdepqnUk5XzjwGwru7DCDj65YF4ygTc3vTepP8q/sQHt CJa0+DBTADn1cMQ447ced17/2f4Udjnb6QzT3Kszu/z2k9Dru9ojZdCKgfmDiVkpXKE3TA4JIIB EcbcYUzqOYqw= X-Received: by 2002:a05:622a:cd:b0:400:7965:cfe with SMTP id p13-20020a05622a00cd00b0040079650cfemr21655424qtw.4.1687879957109; Tue, 27 Jun 2023 08:32:37 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6zPzMhz4REkPK/MBYPYe5SrH6d3O3dbP7Q5ElYBJDoHZfw+Ezf8WGzTdhTD7wkJOjvplAZ+Q== X-Received: by 2002:a05:622a:cd:b0:400:7965:cfe with SMTP id p13-20020a05622a00cd00b0040079650cfemr21655381qtw.4.1687879956819; Tue, 27 Jun 2023 08:32:36 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id w22-20020ac843d6000000b003fb6cd74482sm4656322qtn.50.2023.06.27.08.32.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jun 2023 08:32:36 -0700 (PDT) Date: Tue, 27 Jun 2023 11:32:34 -0400 From: Peter Xu To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, willy@infradead.org, hannes@cmpxchg.org, mhocko@suse.com, josef@toxicpanda.com, jack@suse.cz, ldufour@linux.ibm.com, laurent.dufour@fr.ibm.com, michel@lespinasse.org, liam.howlett@oracle.com, jglisse@google.com, vbabka@suse.cz, minchan@google.com, dave@stgolabs.net, punit.agrawal@bytedance.com, lstoakes@gmail.com, hdanton@sina.com, apopple@nvidia.com, ying.huang@intel.com, david@redhat.com, yuzhao@google.com, dhowells@redhat.com, hughd@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, pasha.tatashin@soleen.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Re: [PATCH v3 5/8] mm: make folio_lock_fault indicate the state of mmap_lock upon return Message-ID: References: <20230627042321.1763765-1-surenb@google.com> <20230627042321.1763765-6-surenb@google.com> MIME-Version: 1.0 In-Reply-To: <20230627042321.1763765-6-surenb@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 5B39118001A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: wmojakpbf3dzxxjketaiz5ojp4pf8p7a X-HE-Tag: 1687879963-755357 X-HE-Meta: U2FsdGVkX1950E4FEfdq0OvSMV7L9BUO7iLnHdRCA8bDXpxj5k6s9Y9zU/vsa1ev6IWuZOQHdMy0F4Ht0HcxtaAFtPfRV+EhmkRN61+Q8spo2du+xodTiTLE87TCxUX1y56x0J2jsYaim66iFNLCtsllRZOM+4ORMzO9BvGkiPS4hMWbM1I4zV7RFf7WbmhGCtG/vkSQNtSH/1bhQrHSLAl32Gg8GYU0T1y+aezS3+oPdxbgiqqMzlNujscOwMNC5mLEhB1G712B7h0wiwNKQaP3ZsrSyc9b/1E6AaR0oPc4PcVMcP8jJvh1qOyxK1LNKoC3LWL572tEguryT7AE3wV4tDMG2cWgF5PhRbdCGifhcia/A4chEFtr+jFC6F53k4z/jfqJtdq1osy9vmxLaIv+ElnDgcc1bAc9aDr+urZkAzF0r8NTCaJP6LD6vS6LipZx3738Oi/NxnfxJcORaJh0GOkcaFhK1w5BU6msxb+gD/ksZa1xPe9Yd32sNy2MbTCfATRDen5b5m5noKCqv8PdvIiHWlMFAL5G6zRwpZkpBZ/YdZkBiZGWvidLFwO8FonCkFQAdjxRbjfRlOCig01/IkslykJRalr4KG31OLKHu38trJZ9uNim/2GFPx8ljgTLfQh0Pdm8+DJCZwdY4QSi/Kw/zOfzJMzRpn39KcU3Mwp30ZVxujSj816plYEkFNFfKykb4vHT6Cea4rODakBeIIq2uY1YK6w3HZMChHrEd/m0/b1QeGWzl7dyUQqoGSMablDERrs3gbQ+Au0p4sf200YJe/swiSZIH4Rhz4nU+PsBme33eBlSdwe6V7xmKELWWGVh0TmeYn4OODyN3xSMfym67sHJI3la5Sb/vID9y68xzLatEGj6QT5BeAwKs/Af7zs4IElAJ9O2c8nZYK3scgWvlncSmePx9ZUqX1WHBlEfCDgWFYeGbjh3zbbZB9CaPBx7CgOM0PmIBpG im+NRdv2 5R0+gWhiNZ+cCYbPYoyxIIWyIYKsvouLYjD8TDSGo0RQhQjr9Nn1douTfLoWIj7V3G3HPsBFzSrR/Oel7wmNMPrOHU8X4TvRw2+GBixfn5dOOmSt4260Gf85NMmYtWfusibtzVlUhK9qR8soFh5ulM9R22r0PatYnWp2iKzDcLizNp21v7tpeP7JrzDl3AOEgHvDalYcnp4hqAmegk554bxRDFkAFbaG3EMyxmIau3UWJ8qQJManaMO7foADTOjCtp6kmCdRAFWLgqOOcC5GO9+iYye7b2oW8in5wuQuxyMAtCq7nCrukiel/AhduNZV9RBZ8AToQfpvUZS6xu0f+mLhIIH+GUovOLrveDX9O0GfmvmWp86xBCcbtAAev0GwQhJ1be6DYKKxi6jFxqwVO1MfJ1W1O0udhwhx/IFzLl379gua/7wU9J368OQ== 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, Jun 26, 2023 at 09:23:18PM -0700, Suren Baghdasaryan wrote: > folio_lock_fault might drop mmap_lock before returning and to extend it > to work with per-VMA locks, the callers will need to know whether the > lock was dropped or is still held. Introduce new fault_flag to indicate > whether the lock got dropped and store it inside vm_fault flags. > > Signed-off-by: Suren Baghdasaryan > --- > include/linux/mm_types.h | 1 + > mm/filemap.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 79765e3dd8f3..6f0dbef7aa1f 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -1169,6 +1169,7 @@ enum fault_flag { > FAULT_FLAG_UNSHARE = 1 << 10, > FAULT_FLAG_ORIG_PTE_VALID = 1 << 11, > FAULT_FLAG_VMA_LOCK = 1 << 12, > + FAULT_FLAG_LOCK_DROPPED = 1 << 13, > }; > > typedef unsigned int __bitwise zap_flags_t; > diff --git a/mm/filemap.c b/mm/filemap.c > index 87b335a93530..8ad06d69895b 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1723,6 +1723,7 @@ vm_fault_t __folio_lock_fault(struct folio *folio, struct vm_fault *vmf) > return VM_FAULT_RETRY; > > mmap_read_unlock(mm); > + vmf->flags |= FAULT_FLAG_LOCK_DROPPED; > if (vmf->flags & FAULT_FLAG_KILLABLE) > folio_wait_locked_killable(folio); > else > @@ -1735,6 +1736,7 @@ vm_fault_t __folio_lock_fault(struct folio *folio, struct vm_fault *vmf) > ret = __folio_lock_killable(folio); > if (ret) { > mmap_read_unlock(mm); > + vmf->flags |= FAULT_FLAG_LOCK_DROPPED; > return VM_FAULT_RETRY; > } > } else { IIRC we've discussed about this bits in previous version, and the consensus was that we don't need yet another flag? Just to recap: I think relying on RETRY|COMPLETE would be enough for vma lock, as NOWAIT is only used by gup while not affecting vma lockings, no? As mentioned in the other reply, even COMPLETE won't appear for vma lock path yet afaict, so mostly only RETRY matters here and it can 100% imply a lock release happened. It's just that it's very easy to still cover COMPLETE altogether in this case, being prepared for any possible shared support on vma locks, IMHO. Thanks, -- Peter Xu