Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp4834346rwb; Tue, 6 Sep 2022 13:32:55 -0700 (PDT) X-Google-Smtp-Source: AA6agR531mSkTWDstE92u3yd/hdIgdnvYyqrCn02MjOsIhDJuNQo9ljK+UbMi3CnLivp6StYJf45 X-Received: by 2002:a17:90b:3ec3:b0:1fa:a293:c511 with SMTP id rm3-20020a17090b3ec300b001faa293c511mr178859pjb.156.1662496374868; Tue, 06 Sep 2022 13:32:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662496374; cv=none; d=google.com; s=arc-20160816; b=ThAS+HrB0rN79YuRDkY52xw43beV+Q5d7Y3KCNo3XwvAD0ADeqR4oIYzq58MC9YaA+ Xr7bF2prYUxtoFEugojuClUc42YoXhmaW3h6vXkAGQQ2WKN5MLTpgY36NyNm3ArQP7ws ztvggCili4bLK/3LtOyrOAGVOxGThQV9OtXS8IOFICcpCO55FUOfJYyD/aikMPzrtSyG t5YCL99fEctOlvsLFawb0fEFRcMzg5zUOt3XyEYjQ9fADMMxbyFDIzBAWbXWZIWi1PvN OtfILj7RYqPYxxvEeMQq+arq2B9J+VAYt+E/qKdw/zqg9dZitoC2dvtj3j2iOTwk3e3G hNZQ== 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=xXYqmgNj8Tmj+x9M5f+04P5dGXCMQoJ15NQDTyzFADc=; b=Sjh5nEFJCQYF8a/tRKP48hsXG6y5EGSEk9l/sLRcNhbQRPh0cWzfF/oCeY/okpuzKT CEO5eT8Ibo7FLb3KaMvdcqMGQpwHHRCY/M9jg8B+tLJDtr1y1IuXG2f9yV7M4qSMVKUC EdJ/1X9MtEWpg+CSdUsTsHUxnhXRfu+hSEWVAks97fkhMZgbXX1X96PyWhw90gL5MuUt 5UAjh30kPUQSAyHxNBtwM6lmUD1+/IzoUmCOZ1+YD1GAPFlWqytKJce5RE1UQH50zUO0 y8OY9HhuZ4tmiC75+LCsWfgroF+rcwZI6JzzMcY2lSro9441nwygC3vxNPbVgXn6JzhI dZOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=m8rk4SWG; 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 mh16-20020a17090b4ad000b00200287ed212si11725777pjb.120.2022.09.06.13.32.43; Tue, 06 Sep 2022 13:32:54 -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=m8rk4SWG; 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 S229971AbiIFUN5 (ORCPT + 99 others); Tue, 6 Sep 2022 16:13:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230513AbiIFUNI (ORCPT ); Tue, 6 Sep 2022 16:13:08 -0400 Received: from mail-il1-x136.google.com (mail-il1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47F91BD4FD for ; Tue, 6 Sep 2022 13:08:39 -0700 (PDT) Received: by mail-il1-x136.google.com with SMTP id a9so6556130ilh.1 for ; Tue, 06 Sep 2022 13:08:39 -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=xXYqmgNj8Tmj+x9M5f+04P5dGXCMQoJ15NQDTyzFADc=; b=m8rk4SWGAohfkoYbpdwdbzCtTDUzSXWWGs5XiL42MbO9eUE0KkcAYJtigCpi9ZiVNM XRpBlpbqZwXmwRi9Nu33ABMaIniF1jEHqbW4ibZa4VuMko12DcRlsp/s+LV6WxLiKUuc DlfoAjSQiq7WPBBE1H0eJXzkvrbAVqNEfHSySVRwxI4xwPffNFz/azZDxOMKUNiN3Ouc 7vutba0HCoTD9TjCbtMYQAiBlFuUgL4kHcRgMCO70oFgb/HnnUnaLa2Z+vFBz7EwfT/e UjoQCVppiPyeulYLjD59K/Xfz+Ua8hohlBdVSzf0piAJ4TW92nmjmGtCKP2RKU2CH0AC U7Hw== 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=xXYqmgNj8Tmj+x9M5f+04P5dGXCMQoJ15NQDTyzFADc=; b=bwszPmk1hDpezJmPh6u4egz82Req0vPYwJ99eR7P4qIWJazXWktue9dnOXI4F04yn0 h0YXY9OcWUZHxsnwMqGO3I0gphSm+gcpCZ7/9ACKZKPzmUz8JKMkorwoezf3xEbdPcNw V/cyZkc/rglMp10i/+dhPfAGpkHpzi/dCIWrT9Kg3bANNYnm3qHKuapYEgPKQ+qu19aO IDDSSSzm21tExjui1Q9+V5OGYtr0YHQpK1jwHRWm9d16R13yxi4sZ4Tx9k+nDgiWC5wz yrMtUsTrukixSllxGJ38G+7av1Krd6NZB4KrGUUBDtZbMV8SZ10XobRJMM06vujfjdig ZmuQ== X-Gm-Message-State: ACgBeo1hTEDEg3rlxNYbkej/NVSJy1TT0+d5CWJSUhYwb2FOSwZvbtPl tRHTTF5Ku81Wk/10ygYh1eqcBba+QEZTS61Tpb+J/g== X-Received: by 2002:a92:ca0f:0:b0:2ee:5577:e447 with SMTP id j15-20020a92ca0f000000b002ee5577e447mr103285ils.215.1662494902370; Tue, 06 Sep 2022 13:08:22 -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 13:08:10 -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 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! > > -- > Peter Xu >