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 A6EADC433EF for ; Fri, 10 Dec 2021 16:07:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7886E6B0071; Fri, 10 Dec 2021 10:54:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7373B6B0074; Fri, 10 Dec 2021 10:54:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 626D66B0075; Fri, 10 Dec 2021 10:54:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0070.hostedemail.com [216.40.44.70]) by kanga.kvack.org (Postfix) with ESMTP id 562D36B0071 for ; Fri, 10 Dec 2021 10:54:54 -0500 (EST) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 2664C180D870D for ; Fri, 10 Dec 2021 15:54:44 +0000 (UTC) X-FDA: 78902332488.23.962728D Received: from mail-yb1-f170.google.com (mail-yb1-f170.google.com [209.85.219.170]) by imf28.hostedemail.com (Postfix) with ESMTP id C9A2AC000D for ; Fri, 10 Dec 2021 15:54:43 +0000 (UTC) Received: by mail-yb1-f170.google.com with SMTP id 131so22277398ybc.7 for ; Fri, 10 Dec 2021 07:54:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kW7Q/LugBcH/uCDE9PPR6dCoA6/hhRUnTlYK4AiWCpg=; b=AZl1o1IFb3Nz4EmhYiwZ5DlrcG8t2+Z9y6q6VAeByEdkqmgp+fBrONT7YTLF7IMttC WXARf589SjOf9ehimiLJYN9AQQGV2N+ZJBgMTOYyEYwQQL0T1MYqo8yXpUrrcHYRgAhS ELz8h4rWxgMux+V4wSNkaojNe9ow6TEIj+2BUZxxIYB7W9xtPx45s1+xmmQ5WCT6Bq94 C0NhYMSOJ567UNemdlLp1XWjxURNHKmbc15AZtrXWQAfthPrjC7AjB0jqyeWNbiJFy5v I2xRfLiCNLdMVy1vyDKJWuiQBSBmdj6RCIarSib0cCuiQNK0mJSSKM6jYYE6k8+Bzvgo 0UaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kW7Q/LugBcH/uCDE9PPR6dCoA6/hhRUnTlYK4AiWCpg=; b=gtEBczcVnyOsI7IhiuLCC8K4pRrEqa0TVHyHW159y1xAHAIIaCYKnMENoJG/mdzaix wV/o1elMmQ/1VLtXkMroJ+IAt5QdoR8o//IGC5ALBjSD91eertrHmwiJNk3fthWrIxNW iRM6vwq7i8Uvj5im1vVDtydmqA8SjGOeaalLBdfTsCEZuMspgJFitXOkNPGlGHbw7j9S NJ1cDlLu8Ph/oxMiPoi+gJdIMJ+iIf9RzKrb1/fIDiUuqBuRAsR0jsPBStfiQE1Y4JDy WfqHFeDL3QpV0xBI0PLNAnnr43Zb3OkAP6cLZD9bHsfCdYY9129VG3/SJwHoSOacTFxq ePzg== X-Gm-Message-State: AOAM5314VXcWjNdBSC1kOk0bl3akPWEXbeTW2mZZx+YcA1KLXQ3yDkIq kyUzVd5d/YbaNhgdJ7n5ot+Yuc0jh5IYjIBdxjXLXA== X-Google-Smtp-Source: ABdhPJz3lecIwmiGJsNOCDla5KNxDmiTdHhAeGjqzPLGHn4JQfbuuJ2BRrxzXV2uq3KnACw2i4zSPW6BRg5Tyz6SAa4= X-Received: by 2002:a25:610d:: with SMTP id v13mr14409655ybb.1.1639151682583; Fri, 10 Dec 2021 07:54:42 -0800 (PST) MIME-Version: 1.0 References: <20211209191325.3069345-1-surenb@google.com> <20211209191325.3069345-3-surenb@google.com> <20211209204816.GF6467@ziepe.ca> In-Reply-To: <20211209204816.GF6467@ziepe.ca> From: Suren Baghdasaryan Date: Fri, 10 Dec 2021 07:54:31 -0800 Message-ID: Subject: Re: [PATCH v5 3/3] mm/oom_kill: allow process_mrelease to run under mmap_lock protection To: Jason Gunthorpe Cc: akpm@linux-foundation.org, mhocko@kernel.org, mhocko@suse.com, rientjes@google.com, willy@infradead.org, hannes@cmpxchg.org, guro@fb.com, riel@surriel.com, minchan@kernel.org, kirill@shutemov.name, aarcange@redhat.com, christian@brauner.io, hch@infradead.org, oleg@redhat.com, david@redhat.com, jannh@google.com, shakeelb@google.com, luto@kernel.org, christian.brauner@ubuntu.com, fweimer@redhat.com, jengelh@inai.de, timmurray@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 6t6br5bif35yt3woge14qjq4yok9dt93 Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=AZl1o1IF; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf28.hostedemail.com: domain of surenb@google.com designates 209.85.219.170 as permitted sender) smtp.mailfrom=surenb@google.com X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: C9A2AC000D X-HE-Tag: 1639151683-725821 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 Thu, Dec 9, 2021 at 12:48 PM Jason Gunthorpe wrote: > > On Thu, Dec 09, 2021 at 11:13:25AM -0800, Suren Baghdasaryan wrote: > > With exit_mmap holding mmap_write_lock during free_pgtables call, > > process_mrelease does not need to elevate mm->mm_users in order to > > prevent exit_mmap from destrying pagetables while __oom_reap_task_mm > > is walking the VMA tree. The change prevents process_mrelease from > > calling the last mmput, which can lead to waiting for IO completion > > in exit_aio. > > > > Signed-off-by: Suren Baghdasaryan > > Acked-by: Michal Hocko > > --- > > changes in v5 > > - Removed Fixes: tag, per Michal Hocko > > - Added Acked-by's > > > > mm/oom_kill.c | 27 +++++++++++++++------------ > > 1 file changed, 15 insertions(+), 12 deletions(-) > > Reviewed-by: Jason Gunthorpe Thanks! > > There are mmget_not_zero's all over the place, can others be cleaned > after this series goes ahead too? > > It seems like anything doing the mmget just to look at the vma list > under the mmap lock is now fine with only a mmgrab? Sounds reasonable to me. I'll try to carve out some time to look into it but no promises. Lots of loose ends to tie at the end of the year :( > > A few I know about: > > drivers/infiniband/core/umem_odp.c: if (!mmget_not_zero(umem->owning_mm)) { > > This is because mmu_interval_notifier_insert() might call > mm_take_all_locks() which was unsafe with concurrent exit_mmap > > drivers/infiniband/core/umem_odp.c: if (!owning_process || !mmget_not_zero(owning_mm)) { > > This is because it calls hmm_range_fault() which iterates over the vma > list which is safe now > > drivers/iommu/iommu-sva-lib.c: return mmget_not_zero(mm); > drivers/iommu/iommu-sva-lib.c: return ioasid_find(&iommu_sva_pasid, pasid, __mmget_not_zero); > > It calls find_extend_vma() - but also it doesn't seem to have a mmgrab when it > does that mmget. The rcu is messed up here too, so humm. > > Jason