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 X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0F26C4741F for ; Mon, 28 Sep 2020 19:36:46 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 48BBC2080C for ; Mon, 28 Sep 2020 19:36:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="W4DgUE7i" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 48BBC2080C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id C8A316B006E; Mon, 28 Sep 2020 15:36:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C62096B0070; Mon, 28 Sep 2020 15:36:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B50716B0071; Mon, 28 Sep 2020 15:36:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0175.hostedemail.com [216.40.44.175]) by kanga.kvack.org (Postfix) with ESMTP id 9F44A6B006E for ; Mon, 28 Sep 2020 15:36:45 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 60D58180AD801 for ; Mon, 28 Sep 2020 19:36:45 +0000 (UTC) X-FDA: 77313477570.14.verse30_3303af227184 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin14.hostedemail.com (Postfix) with ESMTP id 3B68918229818 for ; Mon, 28 Sep 2020 19:36:45 +0000 (UTC) X-HE-Tag: verse30_3303af227184 X-Filterd-Recvd-Size: 5048 Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by imf09.hostedemail.com (Postfix) with ESMTP for ; Mon, 28 Sep 2020 19:36:44 +0000 (UTC) Received: by mail-lj1-f194.google.com with SMTP id v23so2011361ljd.1 for ; Mon, 28 Sep 2020 12:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SkMJ9vgT72YsSMnKCcPYU1IIxIP9bXClnVqgMshREjw=; b=W4DgUE7iQ15VMtJKxlGaWgeXDPLdMBzay4aRO5K22JIpWg4LUrshY7AhiCK83/HxRr iv7IIBGBbCzs7J4C7D70277ARK/Tuz/MkxOsngSzwOD1/6iLfOBrHNX2r0CvjKZbSAAZ rb6irsX1QD/b9RVofDrB/GIxk+JxPez+1Wxkc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SkMJ9vgT72YsSMnKCcPYU1IIxIP9bXClnVqgMshREjw=; b=p/bzA4iX5RlCyty2ZhV4G08epGH9YariJuxLjw46TSYF9jeOdV6vZlJu0XO2TJ+xAL D/hHp1f0CBj0rsP/4F6TReB8j8wxBRC0aSDzZhOvv6LkmfElBl/f+IWjbUpsMKLKf+NN 3fRwsvy6eECQ49PQFYVXQoV6/gSi0yggdn+4ZuQbDqQ9YtFLPH3AfFdYV+RnqxVPzkTn tiyK0PqJqYUrgyakm4wCXBcep7/YC5Ezosnx3H+5MdbJNXRTL9TvJsC6G9UYgQeaPcEx 0jYBdvFHq+2EQ3eL2sKep/6e3N+oVdDzeUYzTIe5B6uEeUPKXiqFI0ypBoTKuKV+HjnX X7fg== X-Gm-Message-State: AOAM530lx4+LiaizJ/LF6x1lEpzK/F7PfJX/AKR2BB33SaOEWlIbwJGf Dbf+VeW+eLxa0xBl7JkFfSK2CZ8hjisb7Q== X-Google-Smtp-Source: ABdhPJx8uUqINUctQXz5O8VpDgmCPm8YgMyhy51mhMb6FvwMBzlXqkccvQRybOZyzCNcM1VektRfqQ== X-Received: by 2002:a2e:b169:: with SMTP id a9mr56083ljm.42.1601321802229; Mon, 28 Sep 2020 12:36:42 -0700 (PDT) Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com. [209.85.208.172]) by smtp.gmail.com with ESMTPSA id m203sm2976577lfd.195.2020.09.28.12.36.41 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Sep 2020 12:36:41 -0700 (PDT) Received: by mail-lj1-f172.google.com with SMTP id r24so2014401ljm.3 for ; Mon, 28 Sep 2020 12:36:41 -0700 (PDT) X-Received: by 2002:a05:651c:32e:: with SMTP id b14mr43230ljp.314.1601321800700; Mon, 28 Sep 2020 12:36:40 -0700 (PDT) MIME-Version: 1.0 References: <20200926004136.GJ9916@ziepe.ca> <20200927062337.GE2280698@unreal> <20200928124937.GN9916@ziepe.ca> <20200928172256.GB59869@xz-x1> <20200928183928.GR9916@ziepe.ca> In-Reply-To: <20200928183928.GR9916@ziepe.ca> From: Linus Torvalds Date: Mon, 28 Sep 2020 12:36:24 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/5] mm: Introduce mm_struct.has_pinned To: Jason Gunthorpe Cc: Peter Xu , Leon Romanovsky , John Hubbard , Linux-MM , Linux Kernel Mailing List , Andrew Morton , Jan Kara , Michal Hocko , Kirill Tkhai , Kirill Shutemov , Hugh Dickins , Christoph Hellwig , Andrea Arcangeli , Oleg Nesterov , Jann Horn Content-Type: text/plain; charset="UTF-8" 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 Mon, Sep 28, 2020 at 11:39 AM Jason Gunthorpe wrote: > > All of gup_fast and copy_mm could be wrappered in a seq count so that > gup_fast always goes to the slow path if fork is concurrent. > > That doesn't sound too expensive and avoids all the problems you > pointed with the WP scheme. Ok, I'll start by just removing the "write protect early trick". It really doesn't work reliably anyway due to memory ordering, and while I think the dirty bit is ok (and we could probably also set it unconditionally to make _sure_ it's not dropped like Peter says) it just makes me convinced it's the wrong approach. Fixing it at a per-pte level is too expensive, and yeah, if we really really care about the fork consistency, the sequence count approach should be much simpler and more obvious. So I'll do the pte wrprotect/restore removal. Anybody willing to do and test the sequence count approach? Linus