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 F179BEB64DD for ; Tue, 27 Jun 2023 15:35:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 575488D0002; Tue, 27 Jun 2023 11:35:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5256C8D0001; Tue, 27 Jun 2023 11:35:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 414DF8D0002; Tue, 27 Jun 2023 11:35:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 32BC88D0001 for ; Tue, 27 Jun 2023 11:35:50 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id DFB5E1C8B83 for ; Tue, 27 Jun 2023 15:35:49 +0000 (UTC) X-FDA: 80948928018.16.B28D49B Received: from mail-yb1-f181.google.com (mail-yb1-f181.google.com [209.85.219.181]) by imf06.hostedemail.com (Postfix) with ESMTP id 173A7180017 for ; Tue, 27 Jun 2023 15:35:47 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Z+dXs+eo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687880148; 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=rhNxLFGpu4iF1+tBl9GUqQA+nvSIsmhRHaz0sstddl4=; b=SVhDw3FsoVDWJXJKJlKdsVZs83b9SCxY7w7Uaa4DJ5wX7fork9vG86TxrvmosYKIpQc/Xo NbRFUobHxtz6qtVh2EPKF4T5uliWf3t3E5O9x0pmOScn8LW3ZzOsvnnLbQUhQcVJXA7May bD8rntVkN/wNrGFh6mfU7JCkHWxyJYE= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Z+dXs+eo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687880148; a=rsa-sha256; cv=none; b=paMA4dx2gWy1Fveh2v+P/gxoISMHvDyc0efi1d2eCgcmHbtGP8pZirngXqQANY2mGT+KpK 6OPKxQg3ZThUZu0dlYkTz1c+ghw1KZmmRHN6cjpx4VY/+TqGM8xWBUXSfGs6DlAPTvApB2 5awUMeYmXxYlS6b05rK7swxHPnySiwM= Received: by mail-yb1-f181.google.com with SMTP id 3f1490d57ef6-bff4f1e93caso4696535276.0 for ; Tue, 27 Jun 2023 08:35:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1687880147; x=1690472147; 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=rhNxLFGpu4iF1+tBl9GUqQA+nvSIsmhRHaz0sstddl4=; b=Z+dXs+eoUJpPLQpLki49VLgu/9v3VfZFLuMBbqLgYFgFxGVThgpVF86ZJwnl7Ut7cn JZuq/uE0kHAPz2ZpN/yjwi3iSAz7tW4K5rofSml+DOyr6LJm1su+NMLkyladOA/97nkp RF24r8XAXIueBDJdl1f9Xs7DG38o7MVTYNyu2z40azPwik/de+ViP4gdVQmH8XJCPeZf 4ZhmLCMrPc5zITSTq/sFhJkB0m+TZ0EGEzoSUkOHVgKp+JQwEzZpUuGDdMvyZgVPUeYc sg8NFtpkYEc72Ghdy4er+vytTMzrAISl8zIwY1gvGCh3PynxREVHWzKpj7VrC8dNi4JC KFiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687880147; x=1690472147; 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=rhNxLFGpu4iF1+tBl9GUqQA+nvSIsmhRHaz0sstddl4=; b=F0Miz1UHF84UM/dPorKt1np4moSddGZZ7I85kVRrHVgzaBk4/RYGdi5Y2eCID7kDBV wGH4UJFahlNoN/wfM5Tb17AEIqACTMezEgru+JJfrbWA8yFKgmHlMh4Mz+z8IpSTFlH8 puDXjJVnBOJbpLJNbcS85iHpJQxHJrontHzkwt07XacJaqshqbK1fwKYoH2YXleDP7Nv BpkUPVWoGMkzUuGg33bWOMI6srEa2DJdCiN66Pi+j7su86bFq33r/kkamo+2eYY2T+Zb pdtM8WjofQk50VlqwYNArVZPLpMdzC+t8pHCIBEuWYJvg5RSrS+snkipjcNUFtoQa6p1 do1A== X-Gm-Message-State: AC+VfDxJTvZ93cP19hZfc5gNOYostalhrnIt8WUGsTz1YfsdDf5b0cze 6TiHmEY4Zhtcd5MZOOPw96zdvLQQj2HFBleJxe002w== X-Google-Smtp-Source: ACHHUZ45C84F8vXdusgYm2ISHNmBkm7kQEA2MlZgv/6RCllE4EV196ruC3PfGHK8PoauQ0Z+TeaJmhdhbmHMYIcuuhg= X-Received: by 2002:a25:2513:0:b0:c12:d2b:5428 with SMTP id l19-20020a252513000000b00c120d2b5428mr8693622ybl.29.1687880146789; Tue, 27 Jun 2023 08:35:46 -0700 (PDT) MIME-Version: 1.0 References: <20230627042321.1763765-1-surenb@google.com> <20230627042321.1763765-8-surenb@google.com> <875y792uu7.fsf@nvdebian.thelocal> In-Reply-To: <875y792uu7.fsf@nvdebian.thelocal> From: Suren Baghdasaryan Date: Tue, 27 Jun 2023 08:35:35 -0700 Message-ID: Subject: Re: [PATCH v3 7/8] mm: drop VMA lock before waiting for migration 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: 173A7180017 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: ffgubmj5pmz4o8nz65mtbu6muainah9y X-HE-Tag: 1687880147-397756 X-HE-Meta: U2FsdGVkX190Ezq8xGn058LejwYzvVzUt0w8HJsybpQ2iAYdYKXW/uSHf2VBJZk4QTFNs6ISstvBMqfhDEDsWqKZuB8I0Em6DOCDYuNTXZQHjVah04x7eANfBC+V5px3N1Svwuk+0iwpexjf0JVskjBCdWFSN9pgVRMzMIpXkxlMzkVwCdTt4stj4pzHEj2EKhZLZxF+nHS/TN0buko/USTAWE/8QfYMpnUfrEDA5Zf+g01GlnlRVSBFdQGsp6+U3t3a3ao45dUs/QU23l+CVwVFLroEO7KwwswRiC7pKMoJA//Bm0UmI7SFWw4ztUCE+zjOgbRvFuzv7nyl6M4ucCXVFuPpjxv6Z9r2mh0GtfCt+aSMsBtRzUkDDzCc9Jaw84OduvtYKh6UoPNQ7/qTyKdH+4vLv2vvVH6Od9M3lGrz/E4puN3s/WHckW5C74C5yoxn+LDmwBy/X3VJwyAPwWv6biIXzCFSObdFGYKxYOVbMJR3ZMmp+fGewlib0Sd7dgVLrdaOAq4gNptaz8CePvIhJzZWXRB8x740i/3ATJdcxJe3HQDyL1U1EnIChVLW5UHN5UEJ+EuIBZmFYx5BwBXrmoeIeX75J1vLOEdE0obYs+CG/Db+dRKg6jpk4saqbnqAbWmjOsq7aAQyN7hBxB9Jhk8vtRkuRoFW39bsxcFIafJfCPiNdZItmW1bGyIBBjnnWlw/3jrPSuAilb9xj8QCn89G+ISJN8mATxf+VSroshmKz9qBZE1cq6WYNH41q6Lg9yswaIOLy++Kg+6NjZcBdhqLDNugG9oJ1cF7fecCUTaZ+qie8xQOgg5nR842t6kfrZCDX6rN/ZDKzuXVge+4GneM8/01WK4u3gDar7gkTZZ+UBrZaMQGPeznTUHq8/WL4orM3pwl+6Ygz5wogq+SKs0x1yggPQaMUIzS6wHe2V9JRvVTEfIfvBasGXHJfTuk30G8SijcSzKKzB8 UuHGqWEz VcTufqltLiDJ6w0obmuH62EEskU0O46HfDVXq7LdjXyRnRTgtInmNs0EnWoHAPf6UGT3G/4AHpJwHRVtNiOd40aumNKd8O87DwacbybAHwGyPrGPKUu/riZfjNko6DbrdrebWC516Pz4gx215bGn4oHZz9o6kkuEwhebLQ9ELENQJFwKLO29Myhz25MSdwj00JYSyygWRE0HUt++adwq9MQJ5ivRdxWMAZCOmgV282dOKizZaScmIu+1eqIsyY3LhAbwx4r0qBWo2nAVwOmKm+RC9yA== 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:06=E2=80=AFAM Alistair Popple wrote: > > > Suren Baghdasaryan writes: > > > migration_entry_wait does not need VMA lock, therefore it can be > > dropped before waiting. > > > > Signed-off-by: Suren Baghdasaryan > > --- > > mm/memory.c | 14 ++++++++++++-- > > 1 file changed, 12 insertions(+), 2 deletions(-) > > > > diff --git a/mm/memory.c b/mm/memory.c > > index 5caaa4c66ea2..bdf46fdc58d6 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -3715,8 +3715,18 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > entry =3D pte_to_swp_entry(vmf->orig_pte); > > if (unlikely(non_swap_entry(entry))) { > > if (is_migration_entry(entry)) { > > - migration_entry_wait(vma->vm_mm, vmf->pmd, > > - vmf->address); > > + /* Save mm in case VMA lock is dropped */ > > + struct mm_struct *mm =3D vma->vm_mm; > > + > > + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > > + /* > > + * No need to hold VMA lock for migration= . > > + * WARNING: vma can't be used after this! > > + */ > > + vma_end_read(vma); > > + ret |=3D VM_FAULT_COMPLETED; > > Doesn't this need to also set FAULT_FLAG_LOCK_DROPPED to ensure we don't > call vma_end_read() again in __handle_mm_fault()? Uh, right. Got lost during the last refactoring. Thanks for flagging! > > > + } > > + migration_entry_wait(mm, vmf->pmd, vmf->address); > > } else if (is_device_exclusive_entry(entry)) { > > vmf->page =3D pfn_swap_entry_to_page(entry); > > ret =3D remove_device_exclusive_entry(vmf); >