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 6EFD3C2D0A8 for ; Mon, 28 Sep 2020 19:50:24 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id AF7EB20773 for ; Mon, 28 Sep 2020 19:50:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="Z0cCPdE6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AF7EB20773 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 E61336B006E; Mon, 28 Sep 2020 15:50:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E11FD8E0001; Mon, 28 Sep 2020 15:50:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D27C16B0071; Mon, 28 Sep 2020 15:50:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0074.hostedemail.com [216.40.44.74]) by kanga.kvack.org (Postfix) with ESMTP id BE8356B006E for ; Mon, 28 Sep 2020 15:50:22 -0400 (EDT) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 7A870180AD802 for ; Mon, 28 Sep 2020 19:50:22 +0000 (UTC) X-FDA: 77313511884.25.pen56_181394827184 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin25.hostedemail.com (Postfix) with ESMTP id 4CCC41806529A for ; Mon, 28 Sep 2020 19:50:22 +0000 (UTC) X-HE-Tag: pen56_181394827184 X-Filterd-Recvd-Size: 9257 Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by imf09.hostedemail.com (Postfix) with ESMTP for ; Mon, 28 Sep 2020 19:50:21 +0000 (UTC) Received: by mail-lf1-f68.google.com with SMTP id w11so2758584lfn.2 for ; Mon, 28 Sep 2020 12:50:21 -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=iFe59ygllh1csDHLKc44rrpmdcLi64mRKne6cb8G5UI=; b=Z0cCPdE6eUpwNg59dDo5sroppxJdJjGWOa0DlXCxyc6xwoewubzGhHY+W2SnxgFXY6 BQAGI/kDvFOe9f8N/05GMm2wT4fxaHSXxGDf/xGBj/Md6yNoJ1jSVfpzSSSvRwUto3Ff TcmrSRZ+nRW7MfF9KCZ4CrfxAXla/gqbDcT50= 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=iFe59ygllh1csDHLKc44rrpmdcLi64mRKne6cb8G5UI=; b=AITqh+6q2H+DKCWfgk4bg6ufYFoFekTIcEPXU9ULRK6hMiLFK5E+EGCZqkjroUjChw UWSzeQqG6XyQpXsoVGSyqVIHVJYG97aM2J8yzZs/ODtBZwhm3DMmQhrA9H+ta75sW5ih OcSog+1GKtpTsFV2SW1Q/x/gvVgnfAMFD6ND0Cs7J87BucIGo94lmMNxatk0uHjM2+TC 6kVjiZ4tqH0IdMe+ss6BMcxtVQBu7vfOKW0UQnXh2w8qll+2Ox0jXw14MXH/5BYvJH2v 2DAncbG/+dEi2ggPxED9M5/eVb68ytuVQgW799hX3Qh1v/oBW+MDe5KK4mtlmY68rWPa RmVA== X-Gm-Message-State: AOAM531hvrfgWXY8BxAMl4eHGatbPiRECbPLtI7tCQ3j95WrfK+SF6vj N8R6WDxuCKz3JfqwCocVuqvG1R/GhCENoQ== X-Google-Smtp-Source: ABdhPJyUh5tukRdEmsGAvBwuaIiAtHb052PJDy5e+o5hp53X3QOVdnnql9vFqdxhM7+Bn3KKmfA9pg== X-Received: by 2002:a19:8ac3:: with SMTP id m186mr934037lfd.478.1601322620252; Mon, 28 Sep 2020 12:50:20 -0700 (PDT) Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com. [209.85.167.41]) by smtp.gmail.com with ESMTPSA id z7sm2956128lfc.59.2020.09.28.12.50.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Sep 2020 12:50:20 -0700 (PDT) Received: by mail-lf1-f41.google.com with SMTP id b12so2714931lfp.9 for ; Mon, 28 Sep 2020 12:50:19 -0700 (PDT) X-Received: by 2002:ac2:4ec7:: with SMTP id p7mr913345lfr.352.1601322619227; Mon, 28 Sep 2020 12:50:19 -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: From: Linus Torvalds Date: Mon, 28 Sep 2020 12:50:03 -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: multipart/mixed; boundary="000000000000e3fbfb05b064f9df" 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: --000000000000e3fbfb05b064f9df Content-Type: text/plain; charset="UTF-8" On Mon, Sep 28, 2020 at 12:36 PM Linus Torvalds wrote: > > So I'll do the pte wrprotect/restore removal. Anybody willing to do > and test the sequence count approach? So the wrprotect removal is trivial, with most of it being about the comments. However, when I look at this, I am - once again - tempted to just add a if (__page_mapcount(page) > 1) return 1; there too. Because we know it's a private mapping (shared mappings we checked for with the "is_cow_mapping()" earlier), and the only case we really care about is the one where the page is only mapped in the current mm (because that's what a write pinning will have done, and as mentioned, a read pinning doesn't do anything wrt fork() right now anyway). So if it's mapped in another mm, the COW clearly hasn't been broken by a pin, and a read pinned page had already gone through a fork. But the more I look at this code, the more I go "ok, I want somebody to actually test this with the rdma case". So I'll attach my suggested patch, but I won't actually commit it. I'd really like to have this tested, possibly _together_ with the sequence count addition.. Linus --000000000000e3fbfb05b064f9df Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfmy4mp90 IG1tL21lbW9yeS5jIHwgNDYgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggZmNmYzRjYTM2 ZWJhLi40YTdlODlkMzVlY2YgMTAwNjQ0Ci0tLSBhL21tL21lbW9yeS5jCisrKyBiL21tL21lbW9y eS5jCkBAIC04MDYsOCArODA2LDYgQEAgY29weV9wcmVzZW50X3BhZ2Uoc3RydWN0IG1tX3N0cnVj dCAqZHN0X21tLCBzdHJ1Y3QgbW1fc3RydWN0ICpzcmNfbW0sCiAJCXJldHVybiAxOwogCiAJLyoK LQkgKiBUaGUgdHJpY2sgc3RhcnRzLgotCSAqCiAJICogV2hhdCB3ZSB3YW50IHRvIGRvIGlzIHRv IGNoZWNrIHdoZXRoZXIgdGhpcyBwYWdlIG1heQogCSAqIGhhdmUgYmVlbiBwaW5uZWQgYnkgdGhl IHBhcmVudCBwcm9jZXNzLiAgSWYgc28sCiAJICogaW5zdGVhZCBvZiB3cnByb3RlY3QgdGhlIHB0 ZSBvbiBib3RoIHNpZGVzLCB3ZSBjb3B5CkBAIC04MTUsNDYgKzgxMywyMiBAQCBjb3B5X3ByZXNl bnRfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3RfbW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyY19t bSwKIAkgKiB0aGUgcGlubmVkIHBhZ2Ugd29uJ3QgYmUgcmFuZG9tbHkgcmVwbGFjZWQgaW4gdGhl CiAJICogZnV0dXJlLgogCSAqCi0JICogVG8gYWNoaWV2ZSB0aGlzLCB3ZSBkbyB0aGUgZm9sbG93 aW5nOgotCSAqCi0JICogMS4gV3JpdGUtcHJvdGVjdCB0aGUgcHRlIGlmIGl0J3Mgd3JpdGFibGUu ICBUaGlzIGlzCi0JICogICAgdG8gcHJvdGVjdCBjb25jdXJyZW50IHdyaXRlIGZhc3QtZ3VwIHdp dGgKLQkgKiAgICBGT0xMX1BJTiwgc28gdGhhdCB3ZSdsbCBmYWlsIHRoZSBmYXN0LWd1cCB3aXRo Ci0JICogICAgdGhlIHdyaXRlIGJpdCByZW1vdmVkLgotCSAqCi0JICogMi4gQ2hlY2sgcGFnZV9t YXliZV9kbWFfcGlubmVkKCkgdG8gc2VlIHdoZXRoZXIgdGhpcwotCSAqICAgIHBhZ2UgbWF5IGhh dmUgYmVlbiBwaW5uZWQuCisJICogVGhlIHBhZ2UgcGlubmluZyBjaGVja3MgYXJlIGp1c3QgImhh cyB0aGlzIG1tIGV2ZXIKKwkgKiBzZWVuIHBpbm5pbmciLCBhbG9uZyB3aXRoIHRoZSAoaW5leGFj dCkgY2hlY2sgb2YKKwkgKiB0aGUgcGFnZSBjb3VudC4gVGhhdCBtaWdodCBnaXZlIGZhbHNlIHBv c2l0aXZlcyBmb3IKKwkgKiBmb3IgcGlubmluZywgYnV0IGl0IHdpbGwgd29yayBjb3JyZWN0bHku CiAJICoKLQkgKiBUaGUgb3JkZXIgb2YgdGhlc2Ugc3RlcHMgaXMgaW1wb3J0YW50IHRvIHNlcmlh bGl6ZQotCSAqIGFnYWluc3QgdGhlIGZhc3QtZ3VwIGNvZGUgKGd1cF9wdGVfcmFuZ2UoKSkgb24g dGhlCi0JICogcHRlIGNoZWNrIGFuZCB0cnlfZ3JhYl9jb21wb3VuZF9oZWFkKCksIHNvIHRoYXQK LQkgKiB3ZSdsbCBtYWtlIHN1cmUgZWl0aGVyIHdlJ2xsIGNhcHR1cmUgdGhhdCBmYXN0LWd1cAot CSAqIHNvIHdlJ2xsIGNvcHkgdGhlIHBpbm5lZCBwYWdlIGhlcmUsIG9yIHdlJ2xsIGZhaWwKLQkg KiB0aGF0IGZhc3QtZ3VwLgotCSAqCi0JICogTk9URSEgRXZlbiBpZiB3ZSBkb24ndCBlbmQgdXAg Y29weWluZyB0aGUgcGFnZSwKLQkgKiB3ZSB3b24ndCB1bmRvIHRoaXMgd3Jwcm90ZWN0KCksIGJl Y2F1c2UgdGhlIG5vcm1hbAotCSAqIHJlZmVyZW5jZSBjb3B5IHdpbGwgbmVlZCBpdCBhbnl3YXku Ci0JICovCi0JaWYgKHB0ZV93cml0ZShwdGUpKQotCQlwdGVwX3NldF93cnByb3RlY3Qoc3JjX21t LCBhZGRyLCBzcmNfcHRlKTsKLQotCS8qCi0JICogVGhlc2UgYXJlIHRoZSAibm9ybWFsbHkgd2Ug Y2FuIGp1c3QgY29weSBieSByZWZlcmVuY2UiCi0JICogY2hlY2tzLgorCSAqIEFub3RoZXIgaGV1 cmlzdGljIGlzIHRvIGp1c3QgY2hlY2sgdGhlIG1hcGNvdW50IGZvcgorCSAqIHRoaXMgcGFnZS4g SWYgaXQgaXMgbWFwcGVkIGVsc2V3aGVyZSwgaXQgYWxyZWFkeSBpcworCSAqIG5vdCBhbiBleGNs dXNpdmVseSBwaW5uZWQgcGFnZSwgYW5kIGRvaW5nIGFub3RoZXIKKwkgKiAiY29weSBieSByZWZl cmVuY2UiIGlzbid0IGdvaW5nIHRvIG1hdHRlci4KIAkgKi8KIAlpZiAobGlrZWx5KCFhdG9taWNf cmVhZCgmc3JjX21tLT5oYXNfcGlubmVkKSkpCiAJCXJldHVybiAxOwogCWlmIChsaWtlbHkoIXBh Z2VfbWF5YmVfZG1hX3Bpbm5lZChwYWdlKSkpCiAJCXJldHVybiAxOwotCi0JLyoKLQkgKiBVaGh1 aC4gSXQgbG9va3MgbGlrZSB0aGUgcGFnZSBtaWdodCBiZSBhIHBpbm5lZCBwYWdlLAotCSAqIGFu ZCB3ZSBhY3R1YWxseSBuZWVkIHRvIGNvcHkgaXQuIE5vdyB3ZSBjYW4gc2V0IHRoZQotCSAqIHNv dXJjZSBwdGUgYmFjayB0byBiZWluZyB3cml0YWJsZS4KLQkgKi8KLQlpZiAocHRlX3dyaXRlKHB0 ZSkpCi0JCXNldF9wdGVfYXQoc3JjX21tLCBhZGRyLCBzcmNfcHRlLCBwdGUpOworCWlmIChfX3Bh Z2VfbWFwY291bnQocGFnZSkgPiAxKQorCQlyZXR1cm4gMTsKIAogCW5ld19wYWdlID0gKnByZWFs bG9jOwogCWlmICghbmV3X3BhZ2UpCg== --000000000000e3fbfb05b064f9df--