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 73684C38145 for ; Tue, 6 Sep 2022 20:08:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E75F18D000A; Tue, 6 Sep 2022 16:08:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E24A88D0009; Tue, 6 Sep 2022 16:08:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CEDBB8D000A; Tue, 6 Sep 2022 16:08:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C2BBA8D0009 for ; Tue, 6 Sep 2022 16:08:23 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A0A6C1C63E3 for ; Tue, 6 Sep 2022 20:08:23 +0000 (UTC) X-FDA: 79882747686.08.0F4C53D Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) by imf21.hostedemail.com (Postfix) with ESMTP id 3684E1C0082 for ; Tue, 6 Sep 2022 20:08:23 +0000 (UTC) Received: by mail-il1-f175.google.com with SMTP id k2so6543700ilu.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=QU2fYRWsNO61+Ren7HKS8nRyknj3zvf2bvj6WX/pobylrulkrVRXTFyTn8Z5vko+sy iR5xfrXDMi/Dyy8OGkIiOhF6WTC2dqVpa57qrF212yo3aVek746VXHRl1KW2cv5Ddhrd aDRXHs7mmMtewjRrBbktbnsUK3+04lc9twPI3GPb7VXW6tUorhsvTiNBwV8QV5VxNP4F aUmyIfXSFM15T6psXJFXE3EHGWhRtPig1RYnFYAlpPjIao3lhSL5RVNo7+sQf4DuplZu tbQS4Ef3gC+7GpwZ9y4vtdTM2XbCthDP70/JAMwgwC+ap3GmCn+JJSbM6nSCmR00ZAz4 gsIQ== X-Gm-Message-State: ACgBeo0e2lfRyV68HEj16G50biuimr9vRUi7NgcUTjBc7wzeZQT97G+K 2YuMQ/9SX8rZAwk4A/wdu0/psiXXh/ySKfO8qngDrA== 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662494903; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xXYqmgNj8Tmj+x9M5f+04P5dGXCMQoJ15NQDTyzFADc=; b=7/keBsbDMt82ZCEOuOdo9czYWPRru/quKHvDEtYvXmeW1ZLsBDMu3dmJt5puvbXySR0XvK x4NrJImDYd6D3e0PoSubawC2/tD8aQhhedUq3QyxZeIl+WzKeGVWvWwpD3s1HoDLcbgaU8 +y1iBBHvYSA3qXiGqzzcvuiW4Uj58Iw= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=m8rk4SWG; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.166.175 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662494903; a=rsa-sha256; cv=none; b=IFNnXjaXtVjdP71WOFifNI8ZulGrDXlHyuYrzvBBvEAKzVWix250esy/67jJgtGQBSr3CY mKZN7O2BKnWBOxP3RF+R5gBknpb/w/E9WIZdXJ1IuAE6MW/QrHIRyojIRJncNJrab3FHDG /8SNh+0AjjBBKD8MKNshhf3oz3CCQ6k= X-Stat-Signature: 911nmaaossibmpwagwfttcbt6kjykm4g X-Rspam-User: X-Rspamd-Queue-Id: 3684E1C0082 Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=m8rk4SWG; spf=pass (imf21.hostedemail.com: domain of surenb@google.com designates 209.85.166.175 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspamd-Server: rspam01 X-HE-Tag: 1662494903-587878 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 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 >