Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp5090010rwb; Tue, 6 Sep 2022 18:46:49 -0700 (PDT) X-Google-Smtp-Source: AA6agR7yUafVpuaWIAcbWV0y+xXjc1qTRwx0eycjjwyQzE4bRlRwObfAIZrXCABZxup1v+soIah7 X-Received: by 2002:a05:6a00:2402:b0:52c:81cf:8df8 with SMTP id z2-20020a056a00240200b0052c81cf8df8mr1317948pfh.60.1662515209242; Tue, 06 Sep 2022 18:46:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662515209; cv=none; d=google.com; s=arc-20160816; b=tRgsWbkl+wdo3fs1ilTATQVgzsGpaBcaz/h4U0uk/67XRwqJMyu3ELpOsmVG/axHSj 23/57b38bHGnoAhyXULdwrUQUf/yXnOFjI7GK9LBYbVkCicfnpzSaUTn1ZiALs+I8AIk 3X/fRuz5v1PKtnGMwT83B4A1j5hmcgJOUvL5ZYOnpzjOOCmYR8827GKB17F9Mv20EXcA 4QGsE54yphaJSpgGY1ze3HzeC6bnUNEnyipmIw3v8PjqIe4dGDR3zvHxeeasSzAWYdWY G8Hx9MeJ8VacCHO2OD5lP/PAJZlQF/A8GIBoGDUYcRZu/5Wn81KzTCCaytWH+8sO8Ooi I+wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=UjaiWINnbTXgT+URtVXx1fGemLW7KAjAuDjBEcKQcpw=; b=c+XjTxmoZOyvvjgq/ThL+/pI6Ym24tJbPrGBLU/OJC6wxbvqEdfpm+n1aMt2RPxM0X 841ECXdTEZV81Q6OtzmDbyHScMyySAKXQr2EDZwhg/M5onRaNN5emu3mbMyfDku2zGad 2sb6uiaUXJ3lHwy6lZ2q+8i8tGaoVsaseIIj8yCG0E6O04tTJGd1o7GimyeI9Yv+98tC S35Vk4rn7758uDrwIryfc8Z/JlGYPSMzuR9phcFjmf+fzoAps8bil+GEQAYojs7bGyA1 vWCtn1onpgrlQG/0HoB+XGPKPzcsAglF+OA9280PgZYbHMzj5GM3gcGUYfduaOM8yOKn OqZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=EAkdAoJF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q20-20020a170902b11400b00176d5b20ebesi3067298plr.355.2022.09.06.18.46.38; Tue, 06 Sep 2022 18:46:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=EAkdAoJF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229657AbiIGA6h (ORCPT + 99 others); Tue, 6 Sep 2022 20:58:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229651AbiIGA6b (ORCPT ); Tue, 6 Sep 2022 20:58:31 -0400 Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com [IPv6:2607:f8b0:4864:20::b31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CB08979F1 for ; Tue, 6 Sep 2022 17:58:30 -0700 (PDT) Received: by mail-yb1-xb31.google.com with SMTP id f131so3745568ybf.7 for ; Tue, 06 Sep 2022 17:58:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=UjaiWINnbTXgT+URtVXx1fGemLW7KAjAuDjBEcKQcpw=; b=EAkdAoJF93b/9wVcZWS/8Z33Wh8Eq7xG8wCxKPHNm0Lldc4C5bChxoQDfIHIPRDYax E+7oO+L2O6scu7V+5fNLALkC2gSW3KtuP3tfNpYEXGlOWDD2sTiTX6OWgeeJAcpYfcqc A7KFsvQIqZJC3pSoupGeVX3b2h2lXfNqXDDwmhewWl9SZYpSIQb+K3ijuHEHBKnlI5iN 5YTs4xJNgeAVeEvcjs3kD0qLdfQNKm1QP8zoW0R448XpFNwDG9J12DbqDl3vZ1zKXm72 +HSPLoCsmPAhUhpPj99b2yJIbwOsGllYC7rvCmcvKG+KcIcU1HoAeaosy/7TBlwl5auu e43Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=UjaiWINnbTXgT+URtVXx1fGemLW7KAjAuDjBEcKQcpw=; b=rDVieBXGkaeg8o5O0ZEBygCGaIuhqe4woJZtu4coVKcZQP5PlSMLWr4ojdxwmO7Q+h fk8lV0u7tyaESakWqBMnKCPxb4AEu/wHrGnbpbjlxGHkb5fgIMOHTT8bCm5dt9H7apV9 yoI2Nk/QVreNsY6CwUyFau99cp/EqFbxt5pvsnKqvWDQtE/pMy1EqSEu7PaAs3gXsrtw E/EH21x1OVxzczNCZJNVS2SW7SGxCpV1E4z5T/NiYXN0WXeKc6c6BJwm6iDm3NPcVLYr Tlhe2AtUin7YDDY/fSygF6sh2j+5fcv7pn0Y6NniaBsbPgszIw8fwZ5MPXZbLI4BLDoO fTPg== X-Gm-Message-State: ACgBeo3PT8JzeJeXcFdyJKM1S/Y87gQd8T6pflBbNf/PXZS4k5eZFp9c q8/smXQaUojTg4jQGpqjpEVvbD9WHDA2v7HgprGXBQ== X-Received: by 2002:a25:9781:0:b0:6a9:561a:c143 with SMTP id i1-20020a259781000000b006a9561ac143mr995480ybo.59.1662512309570; Tue, 06 Sep 2022 17:58:29 -0700 (PDT) MIME-Version: 1.0 References: <20220901173516.702122-1-surenb@google.com> <20220901173516.702122-20-surenb@google.com> In-Reply-To: From: Suren Baghdasaryan Date: Tue, 6 Sep 2022 17:58:18 -0700 Message-ID: Subject: Re: [RFC PATCH RESEND 19/28] mm: disallow do_swap_page to handle page faults under VMA lock To: Peter Xu Cc: Andrew Morton , Michel Lespinasse , Jerome Glisse , Michal Hocko , Vlastimil Babka , Johannes Weiner , Mel Gorman , Davidlohr Bueso , Matthew Wilcox , "Liam R. Howlett" , Peter Zijlstra , Laurent Dufour , Laurent Dufour , "Paul E . McKenney" , Andy Lutomirski , Song Liu , David Hildenbrand , dhowells@redhat.com, Hugh Dickins , Sebastian Andrzej Siewior , Kent Overstreet , David Rientjes , Axel Rasmussen , Joel Fernandes , Minchan Kim , kernel-team , linux-mm , linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, LKML Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 6, 2022 at 1:22 PM Peter Xu wrote: > > On Tue, Sep 06, 2022 at 01:08:10PM -0700, Suren Baghdasaryan wrote: > > On Tue, Sep 6, 2022 at 12:39 PM Peter Xu wrote: > > > > > > On Thu, Sep 01, 2022 at 10:35:07AM -0700, Suren Baghdasaryan wrote: > > > > Due to the possibility of do_swap_page dropping mmap_lock, abort fault > > > > handling under VMA lock and retry holding mmap_lock. This can be handled > > > > more gracefully in the future. > > > > > > > > Signed-off-by: Suren Baghdasaryan > > > > --- > > > > mm/memory.c | 5 +++++ > > > > 1 file changed, 5 insertions(+) > > > > > > > > diff --git a/mm/memory.c b/mm/memory.c > > > > index 9ac9944e8c62..29d2f49f922a 100644 > > > > --- a/mm/memory.c > > > > +++ b/mm/memory.c > > > > @@ -3738,6 +3738,11 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > > > vm_fault_t ret = 0; > > > > void *shadow = NULL; > > > > > > > > + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > > > > + ret = VM_FAULT_RETRY; > > > > + goto out; > > > > + } > > > > + > > > > > > May want to fail early similarly for handle_userfault() too for similar > > > reason. Thanks, > > > > I wasn't aware of a similar issue there. Will have a closer look. Thanks! > > Sure. > > Just in case this would be anything helpful - handle_userfault() will both > assert at the entry (mmap_assert_locked) and will in most cases release > read lock along the way when waiting for page fault resolutions. > > And userfaultfd should work on anonymous memory for either missing mode or > write protect mode. Got it. Thanks for the explanation. It definitely helps! > > Thanks, > > -- > Peter Xu > > -- > To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com. >