All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yu Zhao <yuzhao@google.com>
To: Chen Wandun <chenwandun@huawei.com>
Cc: "Stephen Rothwell" <sfr@rothwell.id.au>,
	linux-mm@kvack.org, "Andi Kleen" <ak@linux.intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Aneesh Kumar" <aneesh.kumar@linux.ibm.com>,
	"Barry Song" <21cnbao@gmail.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Hillf Danton" <hdanton@sina.com>, "Jens Axboe" <axboe@kernel.dk>,
	"Jesse Barnes" <jsbarnes@google.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Mel Gorman" <mgorman@suse.de>,
	"Michael Larabel" <Michael@michaellarabel.com>,
	"Michal Hocko" <mhocko@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Rik van Riel" <riel@surriel.com>,
	"Vlastimil Babka" <vbabka@suse.cz>,
	"Will Deacon" <will@kernel.org>,
	"Ying Huang" <ying.huang@intel.com>,
	linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, page-reclaim@google.com,
	x86@kernel.org, "Brian Geffon" <bgeffon@google.com>,
	"Jan Alexander Steffens" <heftig@archlinux.org>,
	"Oleksandr Natalenko" <oleksandr@natalenko.name>,
	"Steven Barrett" <steven@liquorix.net>,
	"Suleiman Souhlal" <suleiman@google.com>,
	"Daniel Byrne" <djbyrne@mtu.edu>,
	"Donald Carr" <d@chaos-reins.com>,
	"Holger Hoffstätte" <holger@applied-asynchrony.com>,
	"Konstantin Kharlamov" <Hi-Angel@yandex.ru>,
	"Shuang Zhai" <szhai2@cs.rochester.edu>,
	"Sofia Trinh" <sofia.trinh@edi.works>,
	"Vaibhav Jain" <vaibhav@linux.ibm.com>
Subject: Re: [PATCH v10 06/14] mm: multi-gen LRU: minimal implementation
Date: Thu, 14 Apr 2022 23:25:00 -0600	[thread overview]
Message-ID: <YlkBrHOFgah3vHaK@google.com> (raw)
In-Reply-To: <4c416f09-5304-07fd-cb53-5c9c8c75f6fa@huawei.com>

On Fri, Apr 15, 2022 at 10:23:18AM +0800, Chen Wandun wrote:
> 
> 在 2022/4/15 4:53, Yu Zhao 写道:
> > On Thu, Apr 14, 2022 at 07:47:54PM +0800, Chen Wandun wrote:
> > > On 2022/4/7 11:15, Yu Zhao wrote:
> > > > +static void inc_min_seq(struct lruvec *lruvec)
> > > > +{
> > > > +	int type;
> > > > +	struct lru_gen_struct *lrugen = &lruvec->lrugen;
> > > > +
> > > > +	VM_BUG_ON(!seq_is_valid(lruvec));
> > > > +
> > > > +	for (type = 0; type < ANON_AND_FILE; type++) {
> > > > +		if (get_nr_gens(lruvec, type) != MAX_NR_GENS)
> > > > +			continue;
> > > I'm confused about relation between aging and LRU list operation.
> > > 
> > > In function inc_max_seq,  both min_seq and max_seq will increase,
> > > the lrugen->lists[] indexed by lru_gen_from_seq(max_seq + 1) may
> > > be non-empty?
> > Yes.
> > 
> > > for example,
> > > before inc_max_seq:
> > > min_seq == 0, lrugen->lists[0][type][zone]
> > > max_seq ==3, lrugen->lists[3][type][zone]
> > > 
> > > after inc_max_seq:
> > > min_seq ==1, lrugen->lists[1][type][zone]
> > > max_seq ==4, lrugen->lists[0][type][zone]
> > > 
> > > If lrugen->lists[0][type][zone] is not empty before inc_max_seq and it is
> > > the most inactive list,however lurgen->lists[0][type][zone] will become
> > > the most active list after inc_max_seq.
> > Correct.
> > 
> > > So,  in this place,
> > > 
> > > if (get_nr_gens(lruvec, type) != MAX_NR_GENS)
> > > 	continue;
> > > 
> > > should change to
> > > 
> > > if (get_nr_gens(lruvec, type) == MAX_NR_GENS)
> > > 	continue;
> > No, because max/min_seq will overlap if we do so.
> > 
> > lrugen->lists[max_seq+1] can only be non-empty for anon LRU, for a
> > couple of reasons:
> > 1. We can't swap at all.
> > 2. Swapping is constrained, e.g., swapfile is full.
> > 
> > Both cases are similar to a producer (the aging) overrunning a
> > consumer (the eviction). We used to handle them, but I simplified the
> > code because I don't feel they are worth handling [1].
> 
> Can lrugen->lists[max_seq+1]  also be non-empty for file LRU?

On reclaim path, no. But it can be forced to do so via debugfs.

> such as in dont reclaim mapped file page case(isolation will fail).

You mean may_unmap=false? Pages stays in the same generation if
isolation fails. So lrugen->lists[min_seq] won't be empty in this
case.

> If so, after aging, eviction will reclaim memory start from
> lrugen->lists[min_seq+1], but some oldest file page still
> remain in lrugen->lists[max_seq+1].
> 
> sort_folio can help to put misplaced pages to the right
> LRU list, but in this case, it does't help, because sort_folio
> only sort lrugen->lists[min_seq+1].

On reclaim path, inc_max_seq() is only called when need_aging=true,
and this guarantees max_seq-min_seq[LRU_GEN_FILE]+1 < MAX_NR_GENS.

WARNING: multiple messages have this Message-ID (diff)
From: Yu Zhao <yuzhao@google.com>
To: Chen Wandun <chenwandun@huawei.com>
Cc: "Stephen Rothwell" <sfr@rothwell.id.au>,
	linux-mm@kvack.org, "Andi Kleen" <ak@linux.intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Aneesh Kumar" <aneesh.kumar@linux.ibm.com>,
	"Barry Song" <21cnbao@gmail.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Hillf Danton" <hdanton@sina.com>, "Jens Axboe" <axboe@kernel.dk>,
	"Jesse Barnes" <jsbarnes@google.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Mel Gorman" <mgorman@suse.de>,
	"Michael Larabel" <Michael@michaellarabel.com>,
	"Michal Hocko" <mhocko@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Rik van Riel" <riel@surriel.com>,
	"Vlastimil Babka" <vbabka@suse.cz>,
	"Will Deacon" <will@kernel.org>,
	"Ying Huang" <ying.huang@intel.com>,
	linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, page-reclaim@google.com,
	x86@kernel.org, "Brian Geffon" <bgeffon@google.com>,
	"Jan Alexander Steffens" <heftig@archlinux.org>,
	"Oleksandr Natalenko" <oleksandr@natalenko.name>,
	"Steven Barrett" <steven@liquorix.net>,
	"Suleiman Souhlal" <suleiman@google.com>,
	"Daniel Byrne" <djbyrne@mtu.edu>,
	"Donald Carr" <d@chaos-reins.com>,
	"Holger Hoffstätte" <holger@applied-asynchrony.com>,
	"Konstantin Kharlamov" <Hi-Angel@yandex.ru>,
	"Shuang Zhai" <szhai2@cs.rochester.edu>,
	"Sofia Trinh" <sofia.trinh@edi.works>,
	"Vaibhav Jain" <vaibhav@linux.ibm.com>
Subject: Re: [PATCH v10 06/14] mm: multi-gen LRU: minimal implementation
Date: Thu, 14 Apr 2022 23:25:00 -0600	[thread overview]
Message-ID: <YlkBrHOFgah3vHaK@google.com> (raw)
In-Reply-To: <4c416f09-5304-07fd-cb53-5c9c8c75f6fa@huawei.com>

On Fri, Apr 15, 2022 at 10:23:18AM +0800, Chen Wandun wrote:
> 
> 在 2022/4/15 4:53, Yu Zhao 写道:
> > On Thu, Apr 14, 2022 at 07:47:54PM +0800, Chen Wandun wrote:
> > > On 2022/4/7 11:15, Yu Zhao wrote:
> > > > +static void inc_min_seq(struct lruvec *lruvec)
> > > > +{
> > > > +	int type;
> > > > +	struct lru_gen_struct *lrugen = &lruvec->lrugen;
> > > > +
> > > > +	VM_BUG_ON(!seq_is_valid(lruvec));
> > > > +
> > > > +	for (type = 0; type < ANON_AND_FILE; type++) {
> > > > +		if (get_nr_gens(lruvec, type) != MAX_NR_GENS)
> > > > +			continue;
> > > I'm confused about relation between aging and LRU list operation.
> > > 
> > > In function inc_max_seq,  both min_seq and max_seq will increase,
> > > the lrugen->lists[] indexed by lru_gen_from_seq(max_seq + 1) may
> > > be non-empty?
> > Yes.
> > 
> > > for example,
> > > before inc_max_seq:
> > > min_seq == 0, lrugen->lists[0][type][zone]
> > > max_seq ==3, lrugen->lists[3][type][zone]
> > > 
> > > after inc_max_seq:
> > > min_seq ==1, lrugen->lists[1][type][zone]
> > > max_seq ==4, lrugen->lists[0][type][zone]
> > > 
> > > If lrugen->lists[0][type][zone] is not empty before inc_max_seq and it is
> > > the most inactive list,however lurgen->lists[0][type][zone] will become
> > > the most active list after inc_max_seq.
> > Correct.
> > 
> > > So,  in this place,
> > > 
> > > if (get_nr_gens(lruvec, type) != MAX_NR_GENS)
> > > 	continue;
> > > 
> > > should change to
> > > 
> > > if (get_nr_gens(lruvec, type) == MAX_NR_GENS)
> > > 	continue;
> > No, because max/min_seq will overlap if we do so.
> > 
> > lrugen->lists[max_seq+1] can only be non-empty for anon LRU, for a
> > couple of reasons:
> > 1. We can't swap at all.
> > 2. Swapping is constrained, e.g., swapfile is full.
> > 
> > Both cases are similar to a producer (the aging) overrunning a
> > consumer (the eviction). We used to handle them, but I simplified the
> > code because I don't feel they are worth handling [1].
> 
> Can lrugen->lists[max_seq+1]  also be non-empty for file LRU?

On reclaim path, no. But it can be forced to do so via debugfs.

> such as in dont reclaim mapped file page case(isolation will fail).

You mean may_unmap=false? Pages stays in the same generation if
isolation fails. So lrugen->lists[min_seq] won't be empty in this
case.

> If so, after aging, eviction will reclaim memory start from
> lrugen->lists[min_seq+1], but some oldest file page still
> remain in lrugen->lists[max_seq+1].
> 
> sort_folio can help to put misplaced pages to the right
> LRU list, but in this case, it does't help, because sort_folio
> only sort lrugen->lists[min_seq+1].

On reclaim path, inc_max_seq() is only called when need_aging=true,
and this guarantees max_seq-min_seq[LRU_GEN_FILE]+1 < MAX_NR_GENS.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-04-15  5:25 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07  3:15 [PATCH v10 00/14] Multi-Gen LRU Framework Yu Zhao
2022-04-07  3:15 ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 01/14] mm: x86, arm64: add arch_has_hw_pte_young() Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 02/14] mm: x86: add CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 03/14] mm/vmscan.c: refactor shrink_node() Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-16  6:48   ` Miaohe Lin
2022-04-16  6:48     ` Miaohe Lin
2022-04-07  3:15 ` [PATCH v10 04/14] Revert "include/linux/mm_inline.h: fold __update_lru_size() into its sole caller" Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-16  6:50   ` Miaohe Lin
2022-04-16  6:50     ` Miaohe Lin
2022-04-07  3:15 ` [PATCH v10 05/14] mm: multi-gen LRU: groundwork Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-12  7:06     ` Peter Zijlstra
2022-04-12  7:06       ` Peter Zijlstra
2022-04-20  0:39       ` Yu Zhao
2022-04-20  0:39         ` Yu Zhao
2022-04-20 20:07         ` Linus Torvalds
2022-04-20 20:07           ` Linus Torvalds
2022-04-26 22:39     ` Yu Zhao
2022-04-26 22:39       ` Yu Zhao
2022-04-26 23:42       ` Andrew Morton
2022-04-26 23:42         ` Andrew Morton
2022-04-27  1:18         ` Yu Zhao
2022-04-27  1:18           ` Yu Zhao
2022-04-27  1:34           ` Andrew Morton
2022-04-27  1:34             ` Andrew Morton
2022-04-07  3:15 ` [PATCH v10 06/14] mm: multi-gen LRU: minimal implementation Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-14  6:03   ` Barry Song
2022-04-14  6:03     ` Barry Song
2022-04-14 20:36     ` Yu Zhao
2022-04-14 20:36       ` Yu Zhao
2022-04-14 21:39       ` Andrew Morton
2022-04-14 21:39         ` Andrew Morton
2022-04-14 22:14         ` Yu Zhao
2022-04-14 22:14           ` Yu Zhao
2022-04-15 10:15         ` Barry Song
2022-04-15 10:15           ` Barry Song
2022-04-15 20:17           ` Yu Zhao
2022-04-15 20:17             ` Yu Zhao
2022-04-15 10:26       ` Barry Song
2022-04-15 10:26         ` Barry Song
2022-04-15 20:18         ` Yu Zhao
2022-04-15 20:18           ` Yu Zhao
2022-04-14 11:47   ` Chen Wandun
2022-04-14 11:47     ` Chen Wandun
2022-04-14 20:53     ` Yu Zhao
2022-04-14 20:53       ` Yu Zhao
2022-04-15  2:23       ` Chen Wandun
2022-04-15  2:23         ` Chen Wandun
2022-04-15  5:25         ` Yu Zhao [this message]
2022-04-15  5:25           ` Yu Zhao
2022-04-15  6:31           ` Chen Wandun
2022-04-15  6:31             ` Chen Wandun
2022-04-15  6:44             ` Yu Zhao
2022-04-15  6:44               ` Yu Zhao
2022-04-15  9:27               ` Chen Wandun
2022-04-15  9:27                 ` Chen Wandun
2022-04-18  9:58   ` Barry Song
2022-04-18  9:58     ` Barry Song
2022-04-19  0:53     ` Yu Zhao
2022-04-19  0:53       ` Yu Zhao
2022-04-19  4:25       ` Barry Song
2022-04-19  4:25         ` Barry Song
2022-04-19  4:36         ` Barry Song
2022-04-19  4:36           ` Barry Song
2022-04-19 22:25           ` Yu Zhao
2022-04-19 22:25             ` Yu Zhao
2022-04-19 22:20         ` Yu Zhao
2022-04-19 22:20           ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 07/14] mm: multi-gen LRU: exploit locality in rmap Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-27  4:32   ` Aneesh Kumar K.V
2022-04-27  4:32     ` Aneesh Kumar K.V
2022-04-27  4:38     ` Yu Zhao
2022-04-27  4:38       ` Yu Zhao
2022-04-27  5:31       ` Aneesh Kumar K V
2022-04-27  5:31         ` Aneesh Kumar K V
2022-04-27  6:00         ` Yu Zhao
2022-04-27  6:00           ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 08/14] mm: multi-gen LRU: support page table walks Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-12  7:10     ` Peter Zijlstra
2022-04-12  7:10       ` Peter Zijlstra
2022-04-15  5:30       ` Yu Zhao
2022-04-15  5:30         ` Yu Zhao
2022-04-15  1:14     ` Yu Zhao
2022-04-15  1:14       ` Yu Zhao
2022-04-15  1:56       ` Andrew Morton
2022-04-15  1:56         ` Andrew Morton
2022-04-15  6:25         ` Yu Zhao
2022-04-15  6:25           ` Yu Zhao
2022-04-15 19:15           ` Andrew Morton
2022-04-15 19:15             ` Andrew Morton
2022-04-15 20:11             ` Yu Zhao
2022-04-15 20:11               ` Yu Zhao
2022-04-15 21:32               ` Andrew Morton
2022-04-15 21:32                 ` Andrew Morton
2022-04-15 21:36                 ` Linus Torvalds
2022-04-15 21:36                   ` Linus Torvalds
2022-04-15 22:57                   ` Yu Zhao
2022-04-15 22:57                     ` Yu Zhao
2022-04-15 23:03                     ` Linus Torvalds
2022-04-15 23:03                       ` Linus Torvalds
2022-04-15 23:24                       ` [page-reclaim] " Jesse Barnes
2022-04-15 23:24                         ` Jesse Barnes
2022-04-15 23:31                         ` Matthew Wilcox
2022-04-15 23:31                           ` Matthew Wilcox
2022-04-15 23:37                           ` Jesse Barnes
2022-04-15 23:37                             ` Jesse Barnes
2022-04-15 23:49                       ` Yu Zhao
2022-04-15 23:49                         ` Yu Zhao
2022-04-16 16:32                 ` Justin Forbes
2022-04-16 16:32                   ` Justin Forbes
2022-04-19 22:32                   ` Yu Zhao
2022-04-19 22:32                     ` Yu Zhao
2022-04-29 14:10   ` zhong jiang
2022-04-29 14:10     ` zhong jiang
2022-04-30  8:34     ` Yu Zhao
2022-04-30  8:34       ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 09/14] mm: multi-gen LRU: optimize multiple memcgs Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 10/14] mm: multi-gen LRU: kill switch Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-26 20:57     ` Yu Zhao
2022-04-26 20:57       ` Yu Zhao
2022-04-26 22:22       ` Andrew Morton
2022-04-26 22:22         ` Andrew Morton
2022-04-27  1:11         ` Yu Zhao
2022-04-27  1:11           ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 11/14] mm: multi-gen LRU: thrashing prevention Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 12/14] mm: multi-gen LRU: debugfs interface Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-16  0:03     ` Yu Zhao
2022-04-16  0:03       ` Yu Zhao
2022-04-16  4:20       ` Andrew Morton
2022-04-16  4:20         ` Andrew Morton
2022-04-26  6:59         ` Yu Zhao
2022-04-26  6:59           ` Yu Zhao
2022-04-26 21:30           ` Andrew Morton
2022-04-26 21:30             ` Andrew Morton
2022-04-26 22:15             ` Yu Zhao
2022-04-26 22:15               ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 13/14] mm: multi-gen LRU: admin guide Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07 12:41   ` Bagas Sanjaya
2022-04-07 12:41     ` Bagas Sanjaya
2022-04-07 12:51     ` Jonathan Corbet
2022-04-07 12:51       ` Jonathan Corbet
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-16  2:22     ` Yu Zhao
2022-04-16  2:22       ` Yu Zhao
2022-04-07  3:15 ` [PATCH v10 14/14] mm: multi-gen LRU: design doc Yu Zhao
2022-04-07  3:15   ` Yu Zhao
2022-04-07 11:39   ` Huang Shijie
2022-04-07 11:39     ` Huang Shijie
2022-04-07 12:41   ` Bagas Sanjaya
2022-04-07 12:41     ` Bagas Sanjaya
2022-04-07 12:52     ` Jonathan Corbet
2022-04-07 12:52       ` Jonathan Corbet
2022-04-08  4:48       ` Bagas Sanjaya
2022-04-08  4:48         ` Bagas Sanjaya
2022-04-12  2:16   ` Andrew Morton
2022-04-12  2:16     ` Andrew Morton
2022-04-26  7:42     ` Yu Zhao
2022-04-26  7:42       ` Yu Zhao
2022-04-07  3:24 ` [PATCH v10 00/14] Multi-Gen LRU Framework Yu Zhao
2022-04-07  3:24   ` Yu Zhao
2022-04-07  8:31   ` Stephen Rothwell
2022-04-07  8:31     ` Stephen Rothwell
2022-04-07  9:08     ` Yu Zhao
2022-04-07  9:08       ` Yu Zhao
2022-04-07  9:41     ` Yu Zhao
2022-04-07  9:41       ` Yu Zhao
2022-04-07 12:13       ` Stephen Rothwell
2022-04-07 12:13         ` Stephen Rothwell
2022-04-08  2:08         ` Yu Zhao
2022-04-08  2:08           ` Yu Zhao
2022-04-12  2:15 ` Andrew Morton
2022-04-12  2:15   ` Andrew Morton
2022-04-14  5:06 ` Andrew Morton
2022-04-14  5:06   ` Andrew Morton
2022-04-20  0:50   ` Yu Zhao
2022-04-20  0:50     ` Yu Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YlkBrHOFgah3vHaK@google.com \
    --to=yuzhao@google.com \
    --cc=21cnbao@gmail.com \
    --cc=Hi-Angel@yandex.ru \
    --cc=Michael@michaellarabel.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=axboe@kernel.dk \
    --cc=bgeffon@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=chenwandun@huawei.com \
    --cc=corbet@lwn.net \
    --cc=d@chaos-reins.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=djbyrne@mtu.edu \
    --cc=hannes@cmpxchg.org \
    --cc=hdanton@sina.com \
    --cc=heftig@archlinux.org \
    --cc=holger@applied-asynchrony.com \
    --cc=jsbarnes@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@kernel.org \
    --cc=oleksandr@natalenko.name \
    --cc=page-reclaim@google.com \
    --cc=riel@surriel.com \
    --cc=rppt@kernel.org \
    --cc=sfr@rothwell.id.au \
    --cc=sofia.trinh@edi.works \
    --cc=steven@liquorix.net \
    --cc=suleiman@google.com \
    --cc=szhai2@cs.rochester.edu \
    --cc=torvalds@linux-foundation.org \
    --cc=vaibhav@linux.ibm.com \
    --cc=vbabka@suse.cz \
    --cc=will@kernel.org \
    --cc=willy@infradead.org \
    --cc=x86@kernel.org \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.