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 B6BEBECAAA1 for ; Sun, 30 Oct 2022 22:47:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EEC6E8E0001; Sun, 30 Oct 2022 18:47:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9CE96B0073; Sun, 30 Oct 2022 18:47:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D63EB8E0001; Sun, 30 Oct 2022 18:47:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C3C0E6B0071 for ; Sun, 30 Oct 2022 18:47:55 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 93F39160808 for ; Sun, 30 Oct 2022 22:47:55 +0000 (UTC) X-FDA: 80079104910.09.218FEB8 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by imf22.hostedemail.com (Postfix) with ESMTP id 25DF8C0006 for ; Sun, 30 Oct 2022 22:47:54 +0000 (UTC) Received: by mail-qv1-f44.google.com with SMTP id w10so7442504qvr.3 for ; Sun, 30 Oct 2022 15:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0uDy81JIlS00RxkvQyiXflyESZuBwGjhJsGtrADkh88=; b=ZDYCyZPKiuisYOnqKd9OOo9aCSgQziltL5JGmc+Yx9XO8F9okoDzTYioyCovhztVt+ PsxdYcEJyWI5ZBpFAkO0NlLVfqbGaYA4r27U5/8YtEPl0MusWmkjMKRs8a3f4GW4tXgY BDV6rPkuC8OsTHNGE8Dtujn+3ANJvpOxd6Xog= 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:message-id :reply-to; bh=0uDy81JIlS00RxkvQyiXflyESZuBwGjhJsGtrADkh88=; b=VNaV75rYL6ILuIb55XZvvY8geV289O/MWGsvj1wgu6K+Bp6ZfASvrvqr8uJWypdItS JbScKwRKwi09Rma38w28fBrwqXTqE1WhQk+swISyXF3WkDZ4eucIYY7cZbmVLas+lwpt yPyjn0tgcheXCi653ggWDY+kRTZJdCxnmREqEfDlLtSHGjcEonS2nfKwg1uUS0lRC/ug pTaNS+5fMrQpr8qQwYEd83kjp+5Z6dYEwWPr8+UzJtNlWi4iPthEsrxJ62Ti56MgC/Wk ndVZF+Ke+slGJErdDw2kLR4xax12wsoZ1wgYZ7o1jkx41xku8+3iSGdI14bTJOofFVH5 VgUw== X-Gm-Message-State: ACrzQf2GSilBe5apcmlEjQQ37ZFCskmUfpOnw8OkrtWht3ULCTVOVPEg +OTW+Zi70Ym/iFzVPgsx7oNtaq501I5ZqQ== X-Google-Smtp-Source: AMsMyM5w64u2381oFgoRzOnFC7YsWUT14DrX6K967w2Wx1SHTGrIa7k9n8i3K5Dsi0lJGTKbgA6V9w== X-Received: by 2002:a05:6214:5682:b0:4bb:dce2:6640 with SMTP id lm2-20020a056214568200b004bbdce26640mr5344659qvb.53.1667170074085; Sun, 30 Oct 2022 15:47:54 -0700 (PDT) Received: from mail-yw1-f171.google.com (mail-yw1-f171.google.com. [209.85.128.171]) by smtp.gmail.com with ESMTPSA id w22-20020a05620a0e9600b006bb83c2be40sm3536697qkm.59.2022.10.30.15.47.52 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 30 Oct 2022 15:47:53 -0700 (PDT) Received: by mail-yw1-f171.google.com with SMTP id 00721157ae682-368edbc2c18so93627267b3.13 for ; Sun, 30 Oct 2022 15:47:52 -0700 (PDT) X-Received: by 2002:a0d:c246:0:b0:370:2d8c:81d6 with SMTP id e67-20020a0dc246000000b003702d8c81d6mr10193775ywd.112.1667170072503; Sun, 30 Oct 2022 15:47:52 -0700 (PDT) MIME-Version: 1.0 References: <20221022111403.531902164@infradead.org> <20221022114424.515572025@infradead.org> <2c800ed1-d17a-def4-39e1-09281ee78d05@nvidia.com> <6C548A9A-3AF3-4EC1-B1E5-47A7FFBEB761@gmail.com> <47678198-C502-47E1-B7C8-8A12352CDA95@gmail.com> <140B437E-B994-45B7-8DAC-E9B66885BEEF@gmail.com> In-Reply-To: From: Linus Torvalds Date: Sun, 30 Oct 2022 15:47:36 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 01/13] mm: Update ptep_get_lockless()s comment To: Nadav Amit Cc: Peter Zijlstra , Jann Horn , John Hubbard , X86 ML , Matthew Wilcox , Andrew Morton , kernel list , Linux-MM , Andrea Arcangeli , "Kirill A . Shutemov" , jroedel@suse.de, ubizjak@gmail.com, Alistair Popple Content-Type: multipart/mixed; boundary="000000000000f406c305ec484700" ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=ZDYCyZPK; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.219.44 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667170075; a=rsa-sha256; cv=none; b=Wrtbx7meeLjbj5vBEauMMEwgu+iREzht1wVzs4ERm1YnwkSqQkSYr0BP8EoLXsvgCdt9Gm phhXGX2iPRfVMh6eckNjo298hTVM5ZUYyBXYsf+CxloNG3SVThu/eTdzvy2rgQ7I5GuemH AbdHqYpeWCSVZPkWsNpO7cqjaR6P15w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667170075; 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=0uDy81JIlS00RxkvQyiXflyESZuBwGjhJsGtrADkh88=; b=tBzWSg3H26TewVpB69APUFBI5hU1ffRsTXhq/1XHDZT24jqVoBarIKnLqr5aQIO6rtESq3 o3tFsAdDSCZgq+xBpjGZAgewopD7qDmtDjOSlQefebmT0K7DgZbE1EyLPXq89nWiuXeQGk Su02eYh6nRNlrYmi7eYIm2jp7X78hmg= X-Rspam-User: Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=ZDYCyZPK; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.219.44 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none X-Rspamd-Server: rspam07 X-Stat-Signature: 77bfdscbjtm67c8eh3shxbpbecyb3eq4 X-Rspamd-Queue-Id: 25DF8C0006 X-HE-Tag: 1667170074-875396 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: --000000000000f406c305ec484700 Content-Type: text/plain; charset="UTF-8" On Sun, Oct 30, 2022 at 11:51 AM Linus Torvalds wrote: > > We could keep the current placement of the TLB flush, to just before > we drop the page table lock. > > And we could do all the things we do in 'page_remove_rmap()' right now > *except* for the mapcount stuff. > > And only move the mapcount code to the page freeing stage. So I actually have a three-commit series to do the rmap simplification, but let me just post the end result of that series, because the end result is actually smaller than the individual commits (I did it as three incremental commits just to make it more obvious to me how to get to that end result). The three commits end up being mm: introduce simplified versions of 'page_remove_rmap()' mm: inline simpler case of page_remove_file_rmap() mm: re-unify the simplified page_zap_*_rmap() function and the end result of them is this attached patch. I'm *claiming* that the attached patch is semantically identical to what we do before it, just _hugely_ simplified. Basically, that new 'page_zap_pte_rmap()' does the same things that 'page_remove_rmap()' did, except it is limited to only last-level PTE entries (and that munlock_vma_page() has to be called separately). The simplification comes from 'compound' being false, from it always being about small pages, and from the atomic mapcount decrement having been moved outside the memcg lock, since it is independent of it. Anyway, this simplification patch basically means that the *next* step could be to just move that ipage_zap_pte_rmap()' after the TLB flush, and now it's trivial and no longer scary. I did *not* do that yet, because it still needs that "encoded_page[]" array - except now it doesn't encode the 'dirty' bit, now it would encode the 'do a page->_mapcount decrement' bit. I didn't do that part, because needed to do the rc3 release, plus I'd like to have somebody look at this introductory patch first. Linus --000000000000f406c305ec484700 Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9vxsbj50 IGluY2x1ZGUvbGludXgvcm1hcC5oIHwgIDEgKwogbW0vbWVtb3J5LmMgICAgICAgICAgfCAgMyAr Ky0KIG1tL3JtYXAuYyAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCiAz IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3JtYXAuaCBiL2luY2x1ZGUvbGludXgvcm1hcC5oCmluZGV4IGJk MzUwNGQxMWIxNS4uZjYyYWYwMDE3MDdjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3JtYXAu aAorKysgYi9pbmNsdWRlL2xpbnV4L3JtYXAuaApAQCAtMTk2LDYgKzE5Niw3IEBAIHZvaWQgcGFn ZV9hZGRfbmV3X2Fub25fcm1hcChzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KiwKIAkJdW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKIHZvaWQgcGFnZV9hZGRfZmlsZV9ybWFwKHN0 cnVjdCBwYWdlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqLAogCQlib29sIGNvbXBvdW5kKTsK K3ZvaWQgcGFnZV96YXBfcHRlX3JtYXAoc3RydWN0IHBhZ2UgKik7CiB2b2lkIHBhZ2VfcmVtb3Zl X3JtYXAoc3RydWN0IHBhZ2UgKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICosCiAJCWJvb2wgY29t cG91bmQpOwogCmRpZmYgLS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21lbW9yeS5jCmluZGV4IGY4 OGMzNTFhZWNkNC4uYzg5M2Y1ZmZjNWE4IDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9t bS9tZW1vcnkuYwpAQCAtMTQ1Miw4ICsxNDUyLDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgemFw X3B0ZV9yYW5nZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogCQkJCSAgICBsaWtlbHkoISh2bWEt PnZtX2ZsYWdzICYgVk1fU0VRX1JFQUQpKSkKIAkJCQkJbWFya19wYWdlX2FjY2Vzc2VkKHBhZ2Up OwogCQkJfQorCQkJcGFnZV96YXBfcHRlX3JtYXAocGFnZSk7CisJCQltdW5sb2NrX3ZtYV9wYWdl KHBhZ2UsIHZtYSwgZmFsc2UpOwogCQkJcnNzW21tX2NvdW50ZXIocGFnZSldLS07Ci0JCQlwYWdl X3JlbW92ZV9ybWFwKHBhZ2UsIHZtYSwgZmFsc2UpOwogCQkJaWYgKHVubGlrZWx5KHBhZ2VfbWFw Y291bnQocGFnZSkgPCAwKSkKIAkJCQlwcmludF9iYWRfcHRlKHZtYSwgYWRkciwgcHRlbnQsIHBh Z2UpOwogCQkJaWYgKHVubGlrZWx5KF9fdGxiX3JlbW92ZV9wYWdlKHRsYiwgcGFnZSkpKSB7CmRp ZmYgLS1naXQgYS9tbS9ybWFwLmMgYi9tbS9ybWFwLmMKaW5kZXggMmVjOTI1ZTVmYTZhLi4yOGI1 MWEzMWViYjAgMTAwNjQ0Ci0tLSBhL21tL3JtYXAuYworKysgYi9tbS9ybWFwLmMKQEAgLTE0MTIs NiArMTQxMiwzMCBAQCBzdGF0aWMgdm9pZCBwYWdlX3JlbW92ZV9hbm9uX2NvbXBvdW5kX3JtYXAo c3RydWN0IHBhZ2UgKnBhZ2UpCiAJCV9fbW9kX2xydXZlY19wYWdlX3N0YXRlKHBhZ2UsIE5SX0FO T05fTUFQUEVELCAtbnIpOwogfQogCisvKioKKyAqIHBhZ2VfemFwX3B0ZV9ybWFwIC0gdGFrZSBk b3duIGEgcHRlIG1hcHBpbmcgZnJvbSBhIHBhZ2UKKyAqIEBwYWdlOglwYWdlIHRvIHJlbW92ZSBt YXBwaW5nIGZyb20KKyAqCisgKiBUaGlzIGlzIHRoZSBzaW1wbGlmaWVkIGZvcm0gb2YgcGFnZV9y ZW1vdmVfcm1hcCgpLCB0aGF0IG9ubHkKKyAqIGRlYWxzIHdpdGggbGFzdC1sZXZlbCBwYWdlcywg c28gJ2NvbXBvdW5kJyBpcyBhbHdheXMgZmFsc2UsCisgKiBhbmQgdGhlIGNhbGxlciBkb2VzICdt dW5sb2NrX3ZtYV9wYWdlKHBhZ2UsIHZtYSwgY29tcG91bmQpJworICogc2VwYXJhdGVseS4KKyAq CisgKiBUaGlzIGFsbG93cyBmb3IgYSBtdWNoIHNpbXBsZXIgY2FsbGluZyBjb252ZW50aW9uIGFu ZCBjb2RlLgorICoKKyAqIFRoZSBjYWxsZXIgaG9sZHMgdGhlIHB0ZSBsb2NrLgorICovCit2b2lk IHBhZ2VfemFwX3B0ZV9ybWFwKHN0cnVjdCBwYWdlICpwYWdlKQoreworCWlmICghYXRvbWljX2Fk ZF9uZWdhdGl2ZSgtMSwgJnBhZ2UtPl9tYXBjb3VudCkpCisJCXJldHVybjsKKworCWxvY2tfcGFn ZV9tZW1jZyhwYWdlKTsKKwlfX2RlY19scnV2ZWNfcGFnZV9zdGF0ZShwYWdlLAorCQlQYWdlQW5v bihwYWdlKSA/IE5SX0FOT05fTUFQUEVEIDogTlJfRklMRV9NQVBQRUQpOworCXVubG9ja19wYWdl X21lbWNnKHBhZ2UpOworfQorCiAvKioKICAqIHBhZ2VfcmVtb3ZlX3JtYXAgLSB0YWtlIGRvd24g cHRlIG1hcHBpbmcgZnJvbSBhIHBhZ2UKICAqIEBwYWdlOglwYWdlIHRvIHJlbW92ZSBtYXBwaW5n IGZyb20K --000000000000f406c305ec484700--