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 84123E82CBC for ; Thu, 28 Sep 2023 00:53:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEFCE8D0054; Wed, 27 Sep 2023 20:53:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B7E9A8D0002; Wed, 27 Sep 2023 20:53:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A40708D0054; Wed, 27 Sep 2023 20:53:49 -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 8D13F8D0002 for ; Wed, 27 Sep 2023 20:53:49 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 5C74E1402D5 for ; Thu, 28 Sep 2023 00:53:49 +0000 (UTC) X-FDA: 81284183778.25.A40295C Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by imf29.hostedemail.com (Postfix) with ESMTP id A3C5E120016 for ; Thu, 28 Sep 2023 00:53:47 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=p82YZldx; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 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=1695862427; 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=OXUkHdiPxRJZtnYXwIFPrU4TJHOnlv0OGoxTz7CNV9E=; b=L151sS6lok0IxV4ry90UWA9STp9s4s72oyGeANVX4Njyl5NtR3B0MnLr5mTgW9rjcip26A sAFRKYBPcJugl1kDPXc307QEygKf/GClUC6QU9yyle4uNbZJb5f/aVp9ekCykd9CKsGq7d 0LNABOnC4kqODHLMNh+zuD2hNUcTBDk= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=p82YZldx; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of surenb@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695862427; a=rsa-sha256; cv=none; b=ayw4kB9z2t5FZ0XoUexQq9kBXKZ97nPMfiWxhbiNSHw1Pgg1BfTw5/TgTwtH4y1Ri7v23L 8eDXyFLBzvdxaQ4h03NEtT+wq82IOTh999NQUA1pkEOcjdtQaiwrjPO1yf28SrCp+rkI4X w38hAke4n5+vSOozOMjYdEuTUMbrr6E= Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-59bc956b029so151876967b3.2 for ; Wed, 27 Sep 2023 17:53:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695862427; x=1696467227; darn=kvack.org; 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=OXUkHdiPxRJZtnYXwIFPrU4TJHOnlv0OGoxTz7CNV9E=; b=p82YZldx5yV9QwzFcR4CmMds7KUTOZLAypuwct/TorgoJlJltG5hwaOzbtVuzl8C3/ SspZnvuDhdFnF59UJOpYxbmYVSZ0jT8uK2/W6a+v1EgEqqpqESnow4jAUDkUG+lwTvpe jMPbaA7gq78PM7lVGs9OmoAvD5jdINvzhxt8h9EqOgbHdmlIMQzUD51HVcuBYLiBKgs8 Y9dGBEbpHo83Mfi3CvZtHjf0HAJC+Ill5uOw1+4QIeAW8ICd0eJdvqR8vruKaDtQEsyQ 6MLt5dn5CamnOylmKnUiWUe0Ix5NlRIfZu8LQh8lgocdAsjgx+TJRVGjmG3mGs9q+dxs wuGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695862427; x=1696467227; 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=OXUkHdiPxRJZtnYXwIFPrU4TJHOnlv0OGoxTz7CNV9E=; b=upD4lRJEKOovNpM/IYvuKGlyUGBqkNcxS0UIhWo1Vk76zd87b35fknQvZyH8o1a8VW QYikhkB4jElj5DHr4eN60L/JgbMqlPIMnAqeIEOwcgjEXuxJQLoUYj7ZpWKtb/czBWMy 1LtIZsq3RPtzSi8xiRfwSUxYEYyEAVR5pVzlXWxljI4+cV0O5mTRCZOzDwAgTY/JaZdo yWWkQxjJBVUvUF64cIuJ2HLXA465P9SEiL4Xct0z2KFoQy4/ABwmXJI0YFeGAeZnBAuT 9zCyOeNtH0ExHEYvTHR9wMmpfk/nRp+V/uppa571UjFt5dIeR5dS6WPsaq9pHHsgzGn4 Sk1A== X-Gm-Message-State: AOJu0YykE6hk2IpehBXI7FpJvIq4C1TFBhtzTQHEjQRIdLMmhBU+h/k/ 2JVnvndK2oOzHIZcx6sDFDu8WwymIwXf4JzeCkV+9mz0wym07z1//KuTrQ== X-Google-Smtp-Source: AGHT+IG6pV5BtnhJmzRosqeZJL+vttsYQrzUxZGLwGNFGx3DVmQLColCsrDMr/OJaFY5xgVqt4G5FNxKLDrqfIxHPgM= X-Received: by 2002:a0d:eb44:0:b0:570:7b4d:f694 with SMTP id u65-20020a0deb44000000b005707b4df694mr4175442ywe.3.1695862426560; Wed, 27 Sep 2023 17:53:46 -0700 (PDT) MIME-Version: 1.0 References: <20230927052505.2855872-1-willy@infradead.org> <20230927052505.2855872-5-willy@infradead.org> In-Reply-To: <20230927052505.2855872-5-willy@infradead.org> From: Suren Baghdasaryan Date: Wed, 27 Sep 2023 17:53:35 -0700 Message-ID: Subject: Re: [PATCH 4/6] mm: Handle COW faults under the VMA lock To: "Matthew Wilcox (Oracle)" Cc: Andrew Morton , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A3C5E120016 X-Stat-Signature: jokw1xxwri4nati414hnzckhw3k3pkho X-Rspam-User: X-HE-Tag: 1695862427-99045 X-HE-Meta: U2FsdGVkX18JKB/HAn5K2k2d2S0BiKgpI01vyGlvJ8XgDDtcHlN0wW25as178mwlWdrgnXTBP7WuRdalOVfJRrwj71mlNdk72BnEfDcFQC9b7nXkK/dWHn5YoJw2kcphoFrbgwVGuHpiiFC5ei030rdYYSdVN2iXrArPh2+YD+Wov/WDvvQ7y8YhsLf1GUyUVYwXBa5YtXzneqgUH5FXf27RF39xAy5Iq3pmIRT8xodkOtFwttyAl0XCwxn3pOcoINO8lyUBLzsT3n+9KhbD3gdJ+xCRUuUCyR7Li/Ty/2DIZspvQv3cRh035KPrDglTpA9vCceNEMxBXgb0czseIDYGcuVHK+xtO8Z37RmGSy0bU+rBV9hLHOrUHy2p1u4hAe1IhJXIJKz++xJc8PsQ9CXFMN5ao84VRP/QoYoRa0O8Vtx3CptCJm92vAq3L8WiT+qDHIACxWNu1QSY8qi05IR7hHaXXiNzT4U4CCQKMsZOGzMMIDWk0ZBMwTD/0GCfh29RC2Exe51pqmI60ocUZ4AQygx0UAjM2leUgMAl1jnc+YDj2ETUVnEY3bcwQz3tYaMxC4ZsyN3NbnFXTVqRhrM2sy/txDzFeSDmj7xM5v6N82NS8ZdcI3jikcCu5eXRJtVO035Yk0Sw8YDJa2qpdcWtrcGxv50kkA6/sxAMTGy3+4gwW7MYBMzukJ5qZ6QCn6BjMHVvr+sW3uaC0tDucO+Zmd3/3lmmBBfgux3XePSaug9ONNFFqUC07ECvxNXY73jlShbwH3ODRLe83L6vraWRBKOgZMitNzBeU4FvP7WC8eaDTeRBYlkhvUQg9UjW4BsBcQxkJ4A2qzXZLS8AOfXZK2fxMOPURqNx/YhQSziAMWqSBCkTyeRQtKIxkPgG1qeGEj73PRwRPd1tytOoDTbINcGLgdk9g7s2KSFjvGpRvzahpsvUGr8E/NEweNs2b1vGGWkT8FpLdDSU83m 4wfkjBKy AUL5f0tXMjpkrFKu1lgkJBMsicJgKvBbPPevZawIkadeWF93vip1nEz0EpdrtS3BhJkEQm1ObUz+xFzT7VhjBg6Y+86duirPSoRBV7lDA/xb+mpecvI2gxLB4DCQmXZEyX1JtgD6Dbru6tYeugI+rdtyJdIbLuxuF4eeqm3a29k1dSDYu38PziY0VVr12bpCthCnZYU/8FE3HUlcvcemOwaI71+bD+OTZSY+ck2JC2R18CFh8dN8/9TUuNFs+8Y7r9jehjrPYt347+mGjqnfBMYBoBHA07xrItlt0 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, Sep 26, 2023 at 10:25=E2=80=AFPM Matthew Wilcox (Oracle) wrote: > > If the page is not currently present in the page tables, we need to call > the page fault handler to find out which page we're supposed to COW, > so we need to both check that there is already an anon_vma and that the > fault handler doesn't need the mmap_lock. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/memory.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 0f3da4889230..02231a9394ed 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4639,13 +4639,11 @@ static vm_fault_t do_cow_fault(struct vm_fault *v= mf) > struct vm_area_struct *vma =3D vmf->vma; > vm_fault_t ret; > > - if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > - vma_end_read(vma); > - return VM_FAULT_RETRY; > - } > - > - if (unlikely(anon_vma_prepare(vma))) > - return VM_FAULT_OOM; > + ret =3D vmf_maybe_unlock_vma(vmf); > + if (!ret) > + ret =3D vmf_anon_prepare(vmf); Same comment as in [PATCH 2/6]. If we reach here with FAULT_FLAG_VMA_LOCK then vma->anon_vma will not be NULL unless we change lock_vma_under_rcu(). > + if (ret) > + return ret; > > vmf->cow_page =3D alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vmf->= address); > if (!vmf->cow_page) > -- > 2.40.1 >