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 5ED55C32771 for ; Sun, 18 Sep 2022 08:17:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2B7E940008; Sun, 18 Sep 2022 04:17:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E0A7B940007; Sun, 18 Sep 2022 04:17:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC9DF940008; Sun, 18 Sep 2022 04:17:53 -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 BACA8940007 for ; Sun, 18 Sep 2022 04:17:53 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8F9AA1C63CF for ; Sun, 18 Sep 2022 08:17:53 +0000 (UTC) X-FDA: 79924502826.28.D3D6946 Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com [209.85.217.41]) by imf19.hostedemail.com (Postfix) with ESMTP id 470B61A000A for ; Sun, 18 Sep 2022 08:17:53 +0000 (UTC) Received: by mail-vs1-f41.google.com with SMTP id 129so26977070vsi.10 for ; Sun, 18 Sep 2022 01:17:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=1RQT6ZUvczeoaRPplunvS/UF2W+GT/ANijT55uawz7o=; b=kCm0eYH8uHV+mpt/ousLYi9kx4TU1+jSTgVvZcCP7oQJ/7W+1muuuVQcEDNDnp8JVY eJwf6lG5lBeWQun+mA7ozlDl0KTY7FtfFqU33SXinqBNWaQ5CqXbludizCD0y3B5gKB1 oCqKAtppUmIe/EHAHEApyoUtD720xKQadRMr/UPWeGJeaLE2wX2LoyuQyJsETQ8Gr7JT HrYn/WL+ardsRIdI65gMXX2+niWUuH80dcUGlbYNI/sIz4eor1MQaIMKIpwejjQDgvqY 8kzkLFSpmpZr3j+X6VuFvvjD2bIpkDh6opEdM3mW1mFc/BgKag+p01XsYMDF1+ximxm6 3zdw== 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; bh=1RQT6ZUvczeoaRPplunvS/UF2W+GT/ANijT55uawz7o=; b=LfQWk46aGv+43MWVfQ16b6X/aRcwNY+yEeUeF1N7oWnsZWCGoXUXDY0WP0tAJQGxUn ObwlfsFnrP9JN2quJ2qn96UoaLRlk1jIiRmLnd7TlhVo9Marzsov4Rr8WQgZ/lqkIb/V UJDwpNa0oYrXhsMr9zEcyhweN4gaXZxUs/LG0khpws6awM8/6yjxpbpGMN4i9X6m+Qkd 7SINNrpCKeAN/56FWXF7rvKGZjlr5pehtLRvbiaLipSzdavBQVUQZk5F5oldkBBNhxt/ MREzsSGm4x1Ls5ViZsUc1V2dj4qkCSEljedTvDog29UjLZ34zzx10M1u30Y1qfRePQ8F rMiA== X-Gm-Message-State: ACrzQf37E2+TigyOuGmKX4wvDYHChsTT+faYkC24qOe0KX09MTzSsb5q 1/HfgQKMV+SewFSmYPhZDG47ysFrjYkmTSARH9N+dw== X-Google-Smtp-Source: AMsMyM4v5RQfDbwmieO7CIiyFGLMLy8eTDBGVAXobhjr+eOhIdfGkDnfsk55xkhz8Ap4SQbQFwxKKFykyJIV/VAL5ao= X-Received: by 2002:a05:6102:3309:b0:39a:e5eb:8508 with SMTP id v9-20020a056102330900b0039ae5eb8508mr1186221vsc.65.1663489072391; Sun, 18 Sep 2022 01:17:52 -0700 (PDT) MIME-Version: 1.0 References: <20220918080010.2920238-1-yuzhao@google.com> <20220918080010.2920238-9-yuzhao@google.com> In-Reply-To: <20220918080010.2920238-9-yuzhao@google.com> From: Yu Zhao Date: Sun, 18 Sep 2022 02:17:16 -0600 Message-ID: Subject: Re: [PATCH mm-unstable v15 08/14] mm: multi-gen LRU: support page table walks To: Andrew Morton , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Tejun Heo , Vlastimil Babka , Will Deacon , Linux ARM , "open list:DOCUMENTATION" , linux-kernel , Linux-MM , "the arch/x86 maintainers" , Kernel Page Reclaim v2 , 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663489073; 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=1RQT6ZUvczeoaRPplunvS/UF2W+GT/ANijT55uawz7o=; b=qVklBPn0+Ojv9oIrOeTmLnFPCvTaudT8PdEM06VuYuPI/28XpJDS12Aw07+e43bxGrEehm IusTUM+23d3zX/fRR2cVYWcqusmPWhCMJ2+tZ5vANWmVD/9rvzLD5yqMyzdnjaU6IeSYDs 7/HyOk7UTywFe8gLjzMvsDdieu5Ed38= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=kCm0eYH8; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663489073; a=rsa-sha256; cv=none; b=qAoU9jJGPn2APKG1AsjPoZhGqeBSwhwVogh0uCs/c3cpy8EwEsov/aQoYsA8k7ZmFk05r4 UKv/sbmGvAHG/YZ4/a9QD9gyikuUgi8kOoUEnsQ4EDLtJDhN/b60YuogmwRjkYbS4IGgjx buJe6kHEC4DFl9gIdC+56YgQnaJN+Xc= X-Stat-Signature: 175e4auqp6mz67qm95ejkcmmnxh8cum8 X-Rspamd-Queue-Id: 470B61A000A Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=kCm0eYH8; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=yuzhao@google.com X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1663489073-842352 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 Sun, Sep 18, 2022 at 2:01 AM Yu Zhao wrote: ... > This patch uses the following optimizations when walking page tables: > 1. It tracks the usage of mm_struct's between context switches so that > page table walkers can skip processes that have been sleeping since > the last iteration. ... > @@ -672,6 +672,22 @@ struct mm_struct { > */ > unsigned long ksm_merging_pages; > #endif > +#ifdef CONFIG_LRU_GEN > + struct { > + /* this mm_struct is on lru_gen_mm_list */ > + struct list_head list; > + /* > + * Set when switching to this mm_struct, as a hint of > + * whether it has been used since the last time per-node > + * page table walkers cleared the corresponding bits. > + */ > + unsigned long bitmap; ... > +static inline void lru_gen_use_mm(struct mm_struct *mm) > +{ > + /* > + * When the bitmap is set, page reclaim knows this mm_struct has been > + * used since the last time it cleared the bitmap. So it might be worth > + * walking the page tables of this mm_struct to clear the accessed bit. > + */ > + WRITE_ONCE(mm->lru_gen.bitmap, -1); > +} ... > @@ -5180,6 +5180,7 @@ context_switch(struct rq *rq, struct task_struct *prev, > * finish_task_switch()'s mmdrop(). > */ > switch_mm_irqs_off(prev->active_mm, next->mm, next); > + lru_gen_use_mm(next->mm); > > if (!prev->mm) { // from kernel > /* will mmdrop() in finish_task_switch(). */ Adding Ingo, Peter, Juri and Vincent for the bit above, per previous discussion here: https://lore.kernel.org/r/CAOUHufY91Eju-g1+xbUsGkGZ-cwBm78v+S_Air7Cp8mAnYJVYA@mail.gmail.com/ I trimmed 99% of this patch to save your time. In case you want to hear the whole story: https://lore.kernel.org/r/20220918080010.2920238-9-yuzhao@google.com/