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 87306C433EF for ; Wed, 27 Apr 2022 06:01:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C90F56B0073; Wed, 27 Apr 2022 02:01:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C3FE06B0075; Wed, 27 Apr 2022 02:01:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE0AD6B0078; Wed, 27 Apr 2022 02:01:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.25]) by kanga.kvack.org (Postfix) with ESMTP id 9DD136B0073 for ; Wed, 27 Apr 2022 02:01:25 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 6F70212187F for ; Wed, 27 Apr 2022 06:01:25 +0000 (UTC) X-FDA: 79401611730.30.37C4C49 Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by imf24.hostedemail.com (Postfix) with ESMTP id 7E034180067 for ; Wed, 27 Apr 2022 06:01:21 +0000 (UTC) Received: by mail-ua1-f49.google.com with SMTP id i16so249875uat.5 for ; Tue, 26 Apr 2022 23:01:24 -0700 (PDT) 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=eEenBPTT+A8NftOZwlTNAzvJdJr06gaMpQKvN58cBsM=; b=rB0CdeG5tjzYHEixLfnyBxBN8Py8g9fJZ/W8h2JVMHNdvkQi0/EHFiqOmCaacpuXFU 628XUqXPgbnn7+t5QuJUsrZg0LS0BjRpKvOscPq6mLwMsr41GQdTFZiIRZmRxLrzsb7t uvwjkz4lksY9DHaFI2FD37wIh3fNKYVnM/qZpX2u6qfDLcCGqIpzO7YPwg8nfDpIxdJH dm14+oFOJdwhUJoom7iHvraVdDFnJTXC3IshjVIwoqTpyXHZno4TMfXJ9p98ndxMp3bU 5WMIyH8nXzVUxgIPlTZ4F3VnO56QrYBo2felfbpX4PnzYDfDjf311D8Hgg8LcOQygVEK qH0g== 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=eEenBPTT+A8NftOZwlTNAzvJdJr06gaMpQKvN58cBsM=; b=owMJoE90RyZ2MoISBDfQAh+M40C+HiPPdm0pxCS8sEyrKBK+kRr0RQnHgj7p12cd0G LT3RsaMulBEzIu19h1MkMyLWCWCGbsc389hmhbB679NaDZDvvdY8fvB3Du1U90GDoJkU Y/2HTfedX/PJDKRx9ij5UgGetbuSxs+HuiCKZ1XMmmm4dDqIc9CAJIYEvncAbeWrhBbc wKNbt5cMyKwSdGSZ6OZbGP8AeaQn15Ek9nyZaAJtfMJMMhcd9Zoo+cJKCVjDEDHwneGK 0aK4PZ8PcCY/hCxuxtM9UTH5hPmLzmCbRI5HVh6F9QmXr8/UrvLm865/04Rs2GFtCmIc qwTA== X-Gm-Message-State: AOAM532rgu/9Wom9oZPE1jYxjw6qvqmLjeLpvYWOQoklBeP12NZWgxeb rRbPTb6kkdZRlje8HouEHBa6nJbh2tEC/d0zHNkFvQ== X-Google-Smtp-Source: ABdhPJxgvGijbH7jxYuaIKjHR/e2sUn7feZnfqFOoKQXZ9QvO1ndFMrJOawwmWogeWkH02N9ILsUauEjnILfGArW+Qs= X-Received: by 2002:ab0:77d5:0:b0:352:42d7:88c2 with SMTP id y21-20020ab077d5000000b0035242d788c2mr7891618uar.1.1651039283985; Tue, 26 Apr 2022 23:01:23 -0700 (PDT) MIME-Version: 1.0 References: <20220407031525.2368067-1-yuzhao@google.com> <20220407031525.2368067-8-yuzhao@google.com> <87zgk7xi13.fsf@linux.ibm.com> In-Reply-To: From: Yu Zhao Date: Wed, 27 Apr 2022 00:00:47 -0600 Message-ID: Subject: Re: [PATCH v10 07/14] mm: multi-gen LRU: exploit locality in rmap To: Aneesh Kumar K V Cc: Stephen Rothwell , Linux-MM , Andi Kleen , Andrew Morton , Barry Song <21cnbao@gmail.com>, Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Jesse Barnes , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Rik van Riel , Vlastimil Babka , Will Deacon , Ying Huang , Linux ARM , "open list:DOCUMENTATION" , linux-kernel , Kernel Page Reclaim v2 , "the arch/x86 maintainers" , Brian Geffon , Jan Alexander Steffens , Oleksandr Natalenko , Steven Barrett , Suleiman Souhlal , Daniel Byrne , Donald Carr , =?UTF-8?Q?Holger_Hoffst=C3=A4tte?= , Konstantin Kharlamov , Shuang Zhai , Sofia Trinh , Vaibhav Jain Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 9ndxmaqtxxws5wobdkuc7j6scjb9r71k X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7E034180067 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=rB0CdeG5; spf=pass (imf24.hostedemail.com: domain of yuzhao@google.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspam-User: X-HE-Tag: 1651039281-949734 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 Tue, Apr 26, 2022 at 11:31 PM Aneesh Kumar K V wrote: > > On 4/27/22 10:08 AM, Yu Zhao wrote: > > On Tue, Apr 26, 2022 at 10:33 PM Aneesh Kumar K.V > > wrote: > >> > >> Yu Zhao writes: > >> > >> .... > >> > >> diff --git a/mm/rmap.c b/mm/rmap.c > >>> index fedb82371efe..7cb7ef29088a 100644 > >>> --- a/mm/rmap.c > >>> +++ b/mm/rmap.c > >>> @@ -73,6 +73,7 @@ > >>> #include > >>> #include > >>> #include > >>> +#include > >>> > >>> #include > >>> > >>> @@ -821,6 +822,12 @@ static bool folio_referenced_one(struct folio *folio, > >>> } > >>> > >>> if (pvmw.pte) { > >>> + if (lru_gen_enabled() && pte_young(*pvmw.pte) && > >>> + !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) { > >>> + lru_gen_look_around(&pvmw); > >>> + referenced++; > >>> + } > >> > >> Is it required to update referenced here? we do that below after > >> clearing the young bit. Or is the goal to identify whether we found any > >> young pte around? > > > > referenced++ is needed because lru_gen_look_around() also clears the > > young bit in pvmw.pte. And ptep_clear_flush_young_notify() will return > > false unless mmu notifier returns true. > > should we then use a mmu notifier variant of clear_young in > lru_gen_look_around() ? Generally multiple sets of page tables don't share the same memory locality. E.g., for kvm, its secondary page tables map to guest physical address space, whose locality is very different from typical virtual address space. In this case lru_gen_look_around() is generally not helpful. For this reason, we don't use the mmu notifier variants of pte_young() or clear_young().