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 9CEFBEB64D9 for ; Tue, 27 Jun 2023 16:02:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40B258D0002; Tue, 27 Jun 2023 12:02:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BB4A8D0001; Tue, 27 Jun 2023 12:02:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2844C8D0002; Tue, 27 Jun 2023 12:02:50 -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 186E28D0001 for ; Tue, 27 Jun 2023 12:02:50 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6BC0F80A82 for ; Tue, 27 Jun 2023 16:02:49 +0000 (UTC) X-FDA: 80948996058.13.0E1C049 Received: from mail-yb1-f169.google.com (mail-yb1-f169.google.com [209.85.219.169]) by imf12.hostedemail.com (Postfix) with ESMTP id 8073D401E1 for ; Tue, 27 Jun 2023 16:01:21 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=XjG+cMnc; spf=pass (imf12.hostedemail.com: domain of surenb@google.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687881686; 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=oZ/aZnCB2+YlDU+Ga0O4oZcR0sxHQ0xYMLAmmJhI0Q4=; b=5uOPg+qcHYlsqGF0LHL+c3QzpgHBlGneo9x9MyVjJbHowCP3iBAjFXyvHKO2pWxf6IVT9j JJc6DywFe+WFDYXv26mASc87QUU+RJsXz52l7SFpQgL3QpBcpIgHK7ko6NeLNeVY0Gw3hI wagVxq41OnD/rljBd6js8iUGojOxAf4= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=XjG+cMnc; spf=pass (imf12.hostedemail.com: domain of surenb@google.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687881686; a=rsa-sha256; cv=none; b=iQlKi8SbOVK0hWHNWq7EsMZ6sh3giwjaxGLNAuhcPaSReEppVNmgBHKiONgoCpkHuyFuVG VPy+4Ypic4VV1sKK11/RQdzXpUpSMXQldiskqLDs+/uRURFKrecX96IUiXd4PFqzOCzA7n XPtl+fYw/8pZmuqYcuddhep3cKXMcFY= Received: by mail-yb1-f169.google.com with SMTP id 3f1490d57ef6-bd6446528dcso4673330276.2 for ; Tue, 27 Jun 2023 09:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1687881679; x=1690473679; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=oZ/aZnCB2+YlDU+Ga0O4oZcR0sxHQ0xYMLAmmJhI0Q4=; b=XjG+cMncQkL546mb3ZvTLEPSRSb5MAObCihNdAofp7Nk4A0b9YcIh5enoJRE6qc81Z Dn9+WV+fE5c4+rB1BtMdtu7bYxunG623p32EAqdGJ775l+sE3f3H2gMprP2uR8QvZ/Ic lD2uKf6ClFO9Luxh4lPthS9YegmL6EOs8bk9nLORbez2Layf/gdNc6wpp4MlxLDmqoSl fLbO+LNIlW7HBBti5U+qXyVSH0C+8qQj477UNo5z9l4/TcyXJSHU0QqwyxBy70/VovBv Lk4794ZdkPuXIqm5pSAM6VX3jOM5e2W3j2wpJqY+DK7WM0cBWznroTSUdjqoqiBaCkvd 2X5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687881679; x=1690473679; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oZ/aZnCB2+YlDU+Ga0O4oZcR0sxHQ0xYMLAmmJhI0Q4=; b=excgdrD/ZIGe2ouiO5/yIQF5H34vP6A/WgFfVQ8Wq9+Vh/ZOz2cwllvbVx3xPvLtWR P1E4K7Cx77sXFxoZWo1MfX70vpsJfeLcZyHEp324+4rr4S5vUilXGfRytLtyIaFjiLT4 YesVkqHDew1vAvUHSM+hjsUSz80nbkJIpzuT8IrjH1PmlTQ9oOvzNo1D66J8zRqE/dBk jq5PFn6npDy0G30WdxkZIdwKAsJaeZS56d2SC/7fPyLO6umWzfG7QIhIgCMSyWBRysAj SRNxL9kiLRcbzQz1A+PwR4XsNB4M0FuOmXp2Y+NQlKKRb3g6P+vWpMUoWNHx5vyH0H/+ xuEw== X-Gm-Message-State: AC+VfDx5pRj57xX+HjfbsCUXRjc2EdWPZ7+uwXbglLrHpe0iUyYEMXMB qkNkpYnEsmYN/lc32Zdfhij4MkVptF2RXL8dem77LQ== X-Google-Smtp-Source: ACHHUZ6ZNyLbJUC0sWAhuJrS2pBneYTQJbWBg2QwCk+NwNZhIgHbBthpc7Ncxu18cJTwHgpgcvZ/A2lM4fDE9eXpSKI= X-Received: by 2002:a25:ac27:0:b0:ba6:b486:84ed with SMTP id w39-20020a25ac27000000b00ba6b48684edmr27217909ybi.20.1687881677605; Tue, 27 Jun 2023 09:01:17 -0700 (PDT) MIME-Version: 1.0 References: <20230627042321.1763765-1-surenb@google.com> <20230627042321.1763765-6-surenb@google.com> <871qhx2uot.fsf@nvdebian.thelocal> In-Reply-To: <871qhx2uot.fsf@nvdebian.thelocal> From: Suren Baghdasaryan Date: Tue, 27 Jun 2023 09:01:06 -0700 Message-ID: Subject: Re: [PATCH v3 5/8] mm: make folio_lock_fault indicate the state of mmap_lock upon return To: Alistair Popple 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, peterx@redhat.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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 8073D401E1 X-Rspam-User: X-Stat-Signature: 1w9okypaj3nxrz9bmsck98oqkmgxa3du X-Rspamd-Server: rspam01 X-HE-Tag: 1687881680-216171 X-HE-Meta: U2FsdGVkX1+1E2RiYiCyUGB1oSiJfPAg/1jOQkx+uUezTh7JUwxwGZx6lLeHbq59MSjgxQZl4uFHlG8Zm+d2tHp0/7l4JY5WpsqWhEiJo4XnNomEQNK0Pk1qxw2h7xKhrXrip4X9pIXdNjbFDUnor1tbhb+xyp/gOD/p21gGbz4b2IhOq8dwTEorwlLpIld24/bLd0QIt0py/bE0EPl7Vd4i9efkCcDSo8h4TYxiMThImipMbEWUPeHl0zOgXFfxq0m31utSv166DArqPCBD1sBtsvycqe1y3MzTsHY/ov3gKub6V4nn/Fga+7U98NeApDWudEyM+wId+GojKjg8MGYTl5l6EXW87HuJeof732NSP4ayKvNG63ScE5WyeNb75EVKjEfWwJDregkQqqxtAhrXiwnMjejrTIzN/ZtJMun7ZjrqjaQhmWfuJxV5K3i1lL18k+FqPdtm5NjKGiWMiJUljZ616foGxIC1t2g6yz9/9kADdDuU+Zat/ypN5tsfLS8JqZiWz8algl2YwRkJjh32sur3w5uU2c3dQyL02uoZ2jqGo4hcDYK/UQ27eTaURfc8/e0NXjgQYVqj3jsQ3ViGJTKAOFjJUGucCWFeen/ZmAb27sPZ1rha0vcclYSCibojl+24lE+IeRBEIpmH+9aXDx0t6RXx4msWjTG5Eoj3yBHRjVltN3Khu0BPVsg7Saqqj/jfYx5uIHxiy49xnLgoE3PuOJnMqfLEWFnrLydD1iEXmMdf1dZj7UXmE67fqmd1jiM5nsCIdFSr/cxvb7U0nKFwIeDex2yEx7cFv6HSDPEOdKGikil1T6ww96DBRh9xuGx7hvtAOg1qeYDHS2NptT9tqgXuIe5YHgjD00e5cGklO8rSECc/TUCMe3o/emHEfllqjXfanq0t62r3xXj5uqU72Cmdpmf/pxY2NfLGt27wtvEyYQ7eQdbEiVC5eWY0Yw2YjI4OciKGz/5 X2mirE+Z O/bbjamUBrQov7murvVgeyxTCbMqjAMgk83rmiQTda2krr5hpoGN0sBug4Tm1LPWC3UdCMTCUkHaY702BsAVSEnJ3XfxQXB6WFW5lQI9B/ueB7q/1UkU6Dj8cSqCCSAlKqosFJdY55n6eYUZXqTowPEwAyVZRWSYEbSTyp7S8YCVi5zYZ38jJtDbrNH7aIOGjSw6ZCN7fi5VhmfCnvqfd40tvwA9CIuklIKQ4V9aaWmWywgHNCQx1HXQuWLgfdzjwfrS11Od+zWAGoWHPTQfXuJPG2oGXo9kj7Fv+3Hjb/hyhZktVhSApG5tmWKXjzJIVTV5r3wgJd8hPXvc= 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 Tue, Jun 27, 2023 at 1:09=E2=80=AFAM Alistair Popple wrote: > > > Suren Baghdasaryan writes: > > > 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 =3D 1 << 10, > > FAULT_FLAG_ORIG_PTE_VALID =3D 1 << 11, > > FAULT_FLAG_VMA_LOCK =3D 1 << 12, > > + FAULT_FLAG_LOCK_DROPPED =3D 1 << 13, > > Minor nit but this should also be added to the enum documentation > comment above this. Thanks! Sounds like we will be dripping the new flag, so hopefully I won't need to document it :) > > > }; > > > > 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 |=3D 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 =3D __folio_lock_killable(folio); > > if (ret) { > > mmap_read_unlock(mm); > > + vmf->flags |=3D FAULT_FLAG_LOCK_DROPPED; > > return VM_FAULT_RETRY; > > } > > } else { >