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 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 1BE0BC4727E for ; Wed, 23 Sep 2020 20:26:26 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 5BD5720936 for ; Wed, 23 Sep 2020 20:26:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="LBRKpKsC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BD5720936 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 682F86B0003; Wed, 23 Sep 2020 16:26:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 631B66B0037; Wed, 23 Sep 2020 16:26:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 547E36B005A; Wed, 23 Sep 2020 16:26:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0083.hostedemail.com [216.40.44.83]) by kanga.kvack.org (Postfix) with ESMTP id 3E1956B0003 for ; Wed, 23 Sep 2020 16:26:24 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id F2B90180AD806 for ; Wed, 23 Sep 2020 20:26:23 +0000 (UTC) X-FDA: 77295458646.27.stage76_171495b27159 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin27.hostedemail.com (Postfix) with ESMTP id A47213D669 for ; Wed, 23 Sep 2020 20:26:14 +0000 (UTC) X-HE-Tag: stage76_171495b27159 X-Filterd-Recvd-Size: 9294 Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by imf39.hostedemail.com (Postfix) with ESMTP for ; Wed, 23 Sep 2020 20:26:14 +0000 (UTC) Received: by mail-lj1-f194.google.com with SMTP id a22so711651ljp.13 for ; Wed, 23 Sep 2020 13:26:13 -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=kLB4DRRXoa8ewsaibQOQoUjg6wFUOgvHUlS6KwrQW+Q=; b=LBRKpKsCN18FhUCT+ybewb3k/YEEHjRtd7HxGQxdBKW2iF5/B/ldqJlEJGGoY3Dvf0 BnyxMahBOLtdrW1QsvXec8yhZHZZW3OZ0PhjkAvhJ25wity4VnTPnnHOkub/MCsM8CaF uApDqbydEW7dEB4jVZdAyxGzc9jX6WFZUurAI= 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=kLB4DRRXoa8ewsaibQOQoUjg6wFUOgvHUlS6KwrQW+Q=; b=is2z9cNLN92j0Pbd7eHpyOk5sORIFYbHEzsRmw3Uu6VcNzqmtWioQcDr7Kn35a32Q8 ZAlYnhe7mVAvHaQkJVPf+t1ENS/tZts4I8Lxkqk9UfRqiP1bYfpd9nQ3OKObTV9UoS1O Hs+vvefwh7AX2JGWXuUIanMDNg9pmJH60vBBSySHU3xMwCBuOxTfjIl60nPCqgZQoYLd imLyrl1zAbVBJG79PV4p+bLlPrk/NxpfYn3axUrAdO46bIh7XiEdOA4S/UWb2F8I6j/y vN8qoXdhQdo+Oz3U7IAJ2/6xX14mJWllryaivgNtoXrammqB/cUQ9xsA4PYCRlcgfuW5 2q/Q== X-Gm-Message-State: AOAM530UWMVvwdGVe8dBMB6sY3lIU4KyX2xX4Cnw2OZmfeagzDtmpcAw Qt30MwlZcjyzPbNDVWIs4Mr3PJtpJSw8TQ== X-Google-Smtp-Source: ABdhPJxvVnRbL770LG9uuGYonBD3Aadjl9urjest5gl3oNlCtxiljhkVbzwZWQj23CRxMTR/GgqBKw== X-Received: by 2002:a2e:2e13:: with SMTP id u19mr474896lju.11.1600892772465; Wed, 23 Sep 2020 13:26:12 -0700 (PDT) Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com. [209.85.208.174]) by smtp.gmail.com with ESMTPSA id 63sm410904lfl.130.2020.09.23.13.26.09 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 23 Sep 2020 13:26:09 -0700 (PDT) Received: by mail-lj1-f174.google.com with SMTP id a22so711526ljp.13 for ; Wed, 23 Sep 2020 13:26:09 -0700 (PDT) X-Received: by 2002:a2e:7819:: with SMTP id t25mr459528ljc.371.1600892769057; Wed, 23 Sep 2020 13:26:09 -0700 (PDT) MIME-Version: 1.0 References: <20200921211744.24758-1-peterx@redhat.com> <20200921212028.25184-1-peterx@redhat.com> <20200922114839.GC11679@redhat.com> <20200922124013.GD11679@redhat.com> <20200922155842.GG19098@xz-x1> <20200922165216.GF11679@redhat.com> <20200922183438.GL19098@xz-x1> <20200922184359.GI11679@redhat.com> <20200923010332.GP19098@xz-x1> In-Reply-To: <20200923010332.GP19098@xz-x1> From: Linus Torvalds Date: Wed, 23 Sep 2020 13:25:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 4/5] mm: Do early cow for pinned pages during fork() for ptes To: Peter Xu Cc: Oleg Nesterov , Linux-MM , Linux Kernel Mailing List , Michal Hocko , Kirill Shutemov , Jann Horn , Kirill Tkhai , Hugh Dickins , Leon Romanovsky , Jan Kara , John Hubbard , Christoph Hellwig , Andrew Morton , Jason Gunthorpe , Andrea Arcangeli Content-Type: multipart/mixed; boundary="000000000000d2fa5405b000e481" 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: --000000000000d2fa5405b000e481 Content-Type: text/plain; charset="UTF-8" On Tue, Sep 22, 2020 at 6:03 PM Peter Xu wrote: > > > If we rely on "copy_ret == COPY_MM_BREAK_COW" we can unify "again" and > > "again_break_cow", we don't need to clear ->cow_new_page, this makes the > > logic more understandable. To me at least ;) > > I see your point. I'll definitely try it out. I think I'll at least use what > you preferred above since it's actually the same as before, logically. Then > I'll consider drop the again_break_cow, as long as I'm still as confident after > I do the change on not leaking anything :). So the two patches I sent out to re-organize copy_one_pte() were literally meant to make all this mess go away. IOW, the third patch would be something (COMPLETELY UNTESTED) like the attached. I think the logic for the preallocation is fairly obvious, but it might be better to allocate a batch of pages for all I know. That said, I can't really make myself care about the performance of a fork() after you've pinned pages in it, so.. Linus --000000000000d2fa5405b000e481 Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kffu7k9z0 IG1tL21lbW9yeS5jIHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggZTMxNWIxZjFlZjA4Li41MjRh YTcxODM5NzEgMTAwNjQ0Ci0tLSBhL21tL21lbW9yeS5jCisrKyBiL21tL21lbW9yeS5jCkBAIC03 NzMsMTAgKzc3MywxNCBAQCBjb3B5X25vbnByZXNlbnRfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRz dF9tbSwgc3RydWN0IG1tX3N0cnVjdCAqc3JjX21tLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aW5saW5lIHZvaWQKKy8qCisgKiBUaGlzIHJldHVybnMgMCBmb3Igc3VjY2VzcywgPjAgZm9yICJz dWNjZXNzLCBhbmQgSSB1c2VkIHRoZSBwcmVhbGxvYyBwYWdlIiwKKyAqIGFuZCA8MCBmb3IgInlv dSBuZWVkIHRvIHByZWFsbG9jYXRlIGEgcGFnZSBhbmQgcmV0cnkiLgorICovCitzdGF0aWMgaW5s aW5lIGludAogY29weV9wcmVzZW50X3B0ZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3RfbW0sIHN0cnVj dCBtbV9zdHJ1Y3QgKnNyY19tbSwKIAkJcHRlX3QgKmRzdF9wdGUsIHB0ZV90ICpzcmNfcHRlLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKLQkJdW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgKnJz cykKKwkJdW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgKnJzcywgc3RydWN0IHBhZ2UgKnByZWFsbG9j KQogewogCXVuc2lnbmVkIGxvbmcgdm1fZmxhZ3MgPSB2bWEtPnZtX2ZsYWdzOwogCXB0ZV90IHB0 ZSA9ICpzcmNfcHRlOwpAQCAtODE1LDYgKzgxOSw3IEBAIGNvcHlfcHJlc2VudF9wdGUoc3RydWN0 IG1tX3N0cnVjdCAqZHN0X21tLCBzdHJ1Y3QgbW1fc3RydWN0ICpzcmNfbW0sCiAJfQogCiAJc2V0 X3B0ZV9hdChkc3RfbW0sIGFkZHIsIGRzdF9wdGUsIHB0ZSk7CisJcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyBpbnQgY29weV9wdGVfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqZHN0X21tLCBzdHJ1Y3Qg bW1fc3RydWN0ICpzcmNfbW0sCkBAIC04MjQsMTYgKzgyOSwxOSBAQCBzdGF0aWMgaW50IGNvcHlf cHRlX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRzdF9tbSwgc3RydWN0IG1tX3N0cnVjdCAqc3Jj X21tLAogCXB0ZV90ICpvcmlnX3NyY19wdGUsICpvcmlnX2RzdF9wdGU7CiAJcHRlX3QgKnNyY19w dGUsICpkc3RfcHRlOwogCXNwaW5sb2NrX3QgKnNyY19wdGwsICpkc3RfcHRsOwotCWludCBwcm9n cmVzcyA9IDA7CisJaW50IHByb2dyZXNzLCB1c2VkX3BhZ2U7CiAJaW50IHJzc1tOUl9NTV9DT1VO VEVSU107CiAJc3dwX2VudHJ5X3QgZW50cnkgPSAoc3dwX2VudHJ5X3QpezB9OworCXN0cnVjdCBw YWdlICpwcmVhbGxvYyA9IE5VTEw7CiAKIGFnYWluOgorCXByb2dyZXNzID0gMDsKKwl1c2VkX3Bh Z2UgPSAwOwogCWluaXRfcnNzX3ZlYyhyc3MpOwogCiAJZHN0X3B0ZSA9IHB0ZV9hbGxvY19tYXBf bG9jayhkc3RfbW0sIGRzdF9wbWQsIGFkZHIsICZkc3RfcHRsKTsKIAlpZiAoIWRzdF9wdGUpCi0J CXJldHVybiAtRU5PTUVNOworCQlnb3RvIG91dF9vZl9tZW1vcnk7CiAJc3JjX3B0ZSA9IHB0ZV9v ZmZzZXRfbWFwKHNyY19wbWQsIGFkZHIpOwogCXNyY19wdGwgPSBwdGVfbG9ja3B0cihzcmNfbW0s IHNyY19wbWQpOwogCXNwaW5fbG9ja19uZXN0ZWQoc3JjX3B0bCwgU0lOR0xFX0RFUFRIX05FU1RJ TkcpOwpAQCAtODY1LDggKzg3MywxMiBAQCBzdGF0aWMgaW50IGNvcHlfcHRlX3JhbmdlKHN0cnVj dCBtbV9zdHJ1Y3QgKmRzdF9tbSwgc3RydWN0IG1tX3N0cnVjdCAqc3JjX21tLAogCQkJcHJvZ3Jl c3MgKz0gODsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWNvcHlfcHJlc2VudF9wdGUoZHN0X21tLCBz cmNfbW0sIGRzdF9wdGUsIHNyY19wdGUsCi0JCQkJIHZtYSwgYWRkciwgcnNzKTsKKwkJLyogY29w eV9wcmVzZW50X3BhZ2UoKSBtYXkgbmVlZCB0byBoYXZlIGEgcHJlLWFsbG9jYXRlZCB0ZW1wb3Jh cnkgcGFnZSAqLworCQl1c2VkX3BhZ2UgPSBjb3B5X3ByZXNlbnRfcHRlKGRzdF9tbSwgc3JjX21t LCBkc3RfcHRlLCBzcmNfcHRlLCB2bWEsIGFkZHIsIHJzcywgcHJlYWxsb2MpOworCQlpZiAodXNl ZF9wYWdlIDwgMCkKKwkJCWJyZWFrOworCQlpZiAodXNlZF9wYWdlKQorCQkJcHJlYWxsb2MgPSBO VUxMOwogCQlwcm9ncmVzcyArPSA4OwogCX0gd2hpbGUgKGRzdF9wdGUrKywgc3JjX3B0ZSsrLCBh ZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCkBAIC04NzksMTIgKzg5MSwyNCBAQCBz dGF0aWMgaW50IGNvcHlfcHRlX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRzdF9tbSwgc3RydWN0 IG1tX3N0cnVjdCAqc3JjX21tLAogCiAJaWYgKGVudHJ5LnZhbCkgewogCQlpZiAoYWRkX3N3YXBf Y291bnRfY29udGludWF0aW9uKGVudHJ5LCBHRlBfS0VSTkVMKSA8IDApCisJCQlnb3RvIG91dF9v Zl9tZW1vcnk7CisJfQorCS8qIERpZCB3ZSBleGl0IGZyb20gdGhlIHB0ZSBsb2NrIGJlY2F1c2Ug d2UgbmVlZGVkIGEgbmV3IHBhZ2U/ICovCisJaWYgKHVzZWRfcGFnZSA8IDApIHsKKwkJcHJlYWxs b2MgPSBhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVJfTU9WQUJMRSwgdm1hLCBhZGRyKTsKKwkJ aWYgKCFwcmVhbGxvYykKIAkJCXJldHVybiAtRU5PTUVNOwotCQlwcm9ncmVzcyA9IDA7CiAJfQog CWlmIChhZGRyICE9IGVuZCkKIAkJZ290byBhZ2FpbjsKKwlpZiAocHJlYWxsb2MpCisJCWZyZWVf dW5yZWZfcGFnZShwcmVhbGxvYyk7CiAJcmV0dXJuIDA7CisKK291dF9vZl9tZW1vcnk6CisJaWYg KHByZWFsbG9jKQorCQlmcmVlX3VucmVmX3BhZ2UocHJlYWxsb2MpOworCXJldHVybiAtRU5PTUVN OwogfQogCiBzdGF0aWMgaW5saW5lIGludCBjb3B5X3BtZF9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0 ICpkc3RfbW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyY19tbSwK --000000000000d2fa5405b000e481--