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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFCE0ECAAA1 for ; Tue, 6 Sep 2022 20:14:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230041AbiIFUN6 (ORCPT ); Tue, 6 Sep 2022 16:13:58 -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-Google-Smtp-Source: AA6agR4kK/DxJZ/QWl7YVW2Lx89QOwSRT/InEkv6rZ+riJpikx1NlRv2IBjPMwhu7ALyb9V69oOBORt1uVJaIEcSenM= 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" 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 > 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B3F0BC38145 for ; Tue, 6 Sep 2022 20:09:05 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4MMc0c2f8vz301Z for ; Wed, 7 Sep 2022 06:09:04 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20210112 header.b=m8rk4SWG; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=google.com (client-ip=2607:f8b0:4864:20::12d; helo=mail-il1-x12d.google.com; envelope-from=surenb@google.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20210112 header.b=m8rk4SWG; dkim-atps=neutral Received: from mail-il1-x12d.google.com (mail-il1-x12d.google.com [IPv6:2607:f8b0:4864:20::12d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4MMbzv307Mz2xHM for ; Wed, 7 Sep 2022 06:08:26 +1000 (AEST) Received: by mail-il1-x12d.google.com with SMTP id e7so6540051ilc.5 for ; Tue, 06 Sep 2022 13:08:25 -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=DVbE+KyGuVJSM+II0x3OTWEBX1phj6g8+V1J4ZTFbk81NwMDF0WgXgmY8kuDN019yS eAO6YVZSe7zEyyOi3mC+dhgStoSDxzt64v2bib5Ef4I/g6e0zEXYpX3Q9+Xq2rjNanfR 1izwDXQY31p+5kSx+xwSFTkyFGUdiSCXqyECArHJXJkiNQ/okLZcSulmmaCUBrqqjHpp SNEnloQogvABP/gIyPhznxxCKQP8GWhROIdjFIMkHpyxPpbTAO2ixZ0rraf1X0HsKt8r O73/qoiVV/JL2rQRpuz1YXuHBGFDpYkFCTKWJugVQIPybqm5Yg+T+xV3FWG10cuEMWV3 5LQA== X-Gm-Message-State: ACgBeo3ic7Va+TjDrSpZ0wwveMfZ7AtTKGykIACGSIE3GWO9oJ/KDu9l nzcqTNFzwloGE0KXV5E5NU1LenL8WBnbFRRHZex6bw== X-Google-Smtp-Source: AA6agR4kK/DxJZ/QWl7YVW2Lx89QOwSRT/InEkv6rZ+riJpikx1NlRv2IBjPMwhu7ALyb9V69oOBORt1uVJaIEcSenM= 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 Content-Type: text/plain; charset="UTF-8" X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Michel Lespinasse , Joel Fernandes , Song Liu , Michal Hocko , David Hildenbrand , Peter Zijlstra , Sebastian Andrzej Siewior , dhowells@redhat.com, linux-mm , Jerome Glisse , Davidlohr Bueso , Minchan Kim , x86@kernel.org, Hugh Dickins , Matthew Wilcox , Laurent Dufour , Mel Gorman , David Rientjes , Axel Rasmussen , kernel-team , "Paul E . McKenney" , "Liam R. Howlett" , Andy Lutomirski , Laurent Dufour , Vlastimil Babka , linux-arm-kernel@lists.infradead.org, Kent Overstreet , LK ML , Johannes Weiner , Andrew Morton , linuxppc-dev@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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 > 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 21C82ECAAA1 for ; Tue, 6 Sep 2022 20:09:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZQHAC1E14hbbRLQcckyR6jwXAGub34mGLXI/NPcn2gY=; b=QxeqvynJ99loqT YMIpys9m12uwvPq6nKP0Z7t6376+OGSfbDsbAAZ++SnxB/+NtKsgzBcGe+YG33SaaJpYI3oW1BuMd 80mNEvDwgF6y07TCju9rFKoeBxSSvY2LzbJplUQ41wUmsitTL+TZmIHbCqEiLguVG2/IBtAYD9zYt QWIE9hQKPJbYJeHa72eqdwEtvTA5AjQFvTtQmQVd0Oj2EW9PUHSTcwoxKSV6vb2SzvUwqpskhGqno kmqAOe2oHuOm6GWN+D+5bImfIxCi0m9YwuFQg7iZ8TRIK7086eVSgVjanFDvINPZxGoOh8g6LOE8m Yh32nUOtCDiCuvNMpPrw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVesA-00H09f-3X; Tue, 06 Sep 2022 20:08:38 +0000 Received: from mail-il1-x12a.google.com ([2607:f8b0:4864:20::12a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVerx-00H04v-3x for linux-arm-kernel@lists.infradead.org; Tue, 06 Sep 2022 20:08:33 +0000 Received: by mail-il1-x12a.google.com with SMTP id k2so6543698ilu.9 for ; Tue, 06 Sep 2022 13:08:23 -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=HOgmifpTsMkQnkq2M2uPozQuHEjrITaRuYLtJpwT+rvagic4JPsSLr+tngthnAWhCx cctOgT7jH9JLjcNbZBewzjQOcK17vlPAhOq2/+zlmFN6D9dVF+y68KLqNMr0+PKPa5p/ R9WEMDyzJfyXECQvxYPr6WjOEHqGdlnJFbcRgVmGK42iMK/PzDWIDE1u5uc8uaPhAMES Ec60EapgmtTvsz+XCT0yIzntjX4tfMFq4Qym4vRYwXaMTh+1Z0JNS5b+1Rou3DPJ3UEg 4UqUnoh4UpkaAGDO9VvWF0g5W84nbdg4l1hCUA02FtUQJDWSG1BWUlERxs9QI7EL4q1X eIew== X-Gm-Message-State: ACgBeo31UlS1VwtPlFqWMwz5BbFkZiZhcsKsKtZFTDqDev/XbbI0hlm8 Ips4vGBjO8jxFYQeSLdnW8U7gMlUDbR1m16+PZN2Xw== X-Google-Smtp-Source: AA6agR4kK/DxJZ/QWl7YVW2Lx89QOwSRT/InEkv6rZ+riJpikx1NlRv2IBjPMwhu7ALyb9V69oOBORt1uVJaIEcSenM= 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220906_130831_609337_49129BCB X-CRM114-Status: GOOD ( 19.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.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 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel