From: Matthew Wilcox <willy@infradead.org>
To: Alex Shi <alex.shi@linux.alibaba.com>
Cc: "Konstantin Khlebnikov" <koct9i@gmail.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Mel Gorman" <mgorman@techsingularity.net>,
"Tejun Heo" <tj@kernel.org>, "Hugh Dickins" <hughd@google.com>,
"Константин Хлебников" <khlebnikov@yandex-team.ru>,
daniel.m.jordan@oracle.com, yang.shi@linux.alibaba.com,
"Johannes Weiner" <hannes@cmpxchg.org>,
lkp@intel.com, linux-mm@kvack.org,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
Cgroups <cgroups@vger.kernel.org>,
shakeelb@google.com, "Joonsoo Kim" <iamjoonsoo.kim@lge.com>,
richard.weiyang@gmail.com
Subject: Re: [PATCH v14 15/20] mm/swap: serialize memcg changes during pagevec_lru_move_fn
Date: Sat, 4 Jul 2020 14:33:30 +0100 [thread overview]
Message-ID: <20200704133330.GP25523@casper.infradead.org> (raw)
In-Reply-To: <b6caf0d7-266e-55ea-0c88-656c800af1e3@linux.alibaba.com>
On Sat, Jul 04, 2020 at 09:12:46PM +0800, Alex Shi wrote:
> 在 2020/7/4 下午7:39, Matthew Wilcox 写道:
> > On Sat, Jul 04, 2020 at 07:34:59PM +0800, Alex Shi wrote:
> >> That's a great idea! Guess what the new struct we need would be like this?
> >> I like to try this. :)
> >>
> >>
> >> diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h
> >> index 081d934eda64..d62778c8c184 100644
> >> --- a/include/linux/pagevec.h
> >> +++ b/include/linux/pagevec.h
> >> @@ -20,7 +20,7 @@
> >> struct pagevec {
> >> unsigned char nr;
> >> bool percpu_pvec_drained;
> >> - struct page *pages[PAGEVEC_SIZE];
> >> + struct list_head veclist;
> >> };
> >
> > pagevecs are used not just for LRU. If you want to use a list_head for
> > LRU then define a new structure.
>
> yes, there are much page don't use page->lru, like slab etc. we need a new struct.
That's not what I mean. Slab pages aren't on the LRU anyway.
Consider the callers of page_cache_delete_batch(). These use a pagevec
for a non-LRU purpose, and they will be much slower with a list_head than
with an array.
next prev parent reply other threads:[~2020-07-04 13:33 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-03 5:07 [PATCH v14 00/20] per memcg lru lock Alex Shi
2020-07-03 5:07 ` [PATCH v14 01/20] mm/vmscan: remove unnecessary lruvec adding Alex Shi
2020-07-03 5:07 ` [PATCH v14 02/20] mm/page_idle: no unlikely double check for idle page counting Alex Shi
2020-07-03 5:07 ` [PATCH v14 03/20] mm/compaction: correct the comments of compact_defer_shift Alex Shi
2020-07-03 5:07 ` [PATCH v14 04/20] mm/compaction: rename compact_deferred as compact_should_defer Alex Shi
2020-07-03 5:07 ` [PATCH v14 05/20] mm/thp: move lru_add_page_tail func to huge_memory.c Alex Shi
2020-07-03 5:07 ` [PATCH v14 06/20] mm/thp: clean up lru_add_page_tail Alex Shi
2020-07-03 5:07 ` [PATCH v14 07/20] mm/thp: narrow lru locking Alex Shi
2020-07-06 9:15 ` Alex Shi
2020-07-06 11:35 ` Matthew Wilcox
2020-07-07 4:52 ` Hugh Dickins
2020-07-09 14:02 ` Alex Shi
2020-07-09 15:48 ` Kirill A. Shutemov
2020-07-10 8:23 ` Alex Shi
[not found] ` <20200710112831.jrv4hzjzjqtxtc7u@box>
2020-07-10 14:09 ` Alex Shi
2020-07-07 10:51 ` Alex Shi
2020-07-03 5:07 ` [PATCH v14 08/20] mm/memcg: add debug checking in lock_page_memcg Alex Shi
2020-07-03 5:07 ` [PATCH v14 09/20] mm/swap: fold vm event PGROTATED into pagevec_move_tail_fn Alex Shi
2020-07-03 5:07 ` [PATCH v14 10/20] mm/lru: move lru_lock holding in func lru_note_cost_page Alex Shi
2020-07-03 5:07 ` [PATCH v14 11/20] mm/lru: move lock into lru_note_cost Alex Shi
2020-07-03 5:07 ` [PATCH v14 12/20] mm/lru: introduce TestClearPageLRU Alex Shi
2020-07-03 5:07 ` [PATCH v14 13/20] mm/compaction: do page isolation first in compaction Alex Shi
2020-07-03 5:07 ` [PATCH v14 14/20] mm/mlock: reorder isolation sequence during munlock Alex Shi
2020-07-03 5:07 ` [PATCH v14 15/20] mm/swap: serialize memcg changes during pagevec_lru_move_fn Alex Shi
2020-07-03 9:13 ` Konstantin Khlebnikov
2020-07-04 11:34 ` Alex Shi
2020-07-04 11:39 ` Matthew Wilcox
2020-07-04 13:12 ` Alex Shi
2020-07-04 13:33 ` Matthew Wilcox [this message]
2020-07-04 15:47 ` Alex Shi
2020-07-03 5:07 ` [PATCH v14 16/20] mm/lru: replace pgdat lru_lock with lruvec lock Alex Shi
2020-07-03 5:07 ` [PATCH v14 17/20] mm/lru: introduce the relock_page_lruvec function Alex Shi
2020-07-03 5:07 ` [PATCH v14 18/20] mm/vmscan: use relock for move_pages_to_lru Alex Shi
2020-07-03 5:07 ` [PATCH v14 19/20] mm/pgdat: remove pgdat lru_lock Alex Shi
2020-07-03 5:07 ` [PATCH v14 20/20] mm/lru: revise the comments of lru_lock Alex Shi
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=20200704133330.GP25523@casper.infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=alex.shi@linux.alibaba.com \
--cc=cgroups@vger.kernel.org \
--cc=daniel.m.jordan@oracle.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=khlebnikov@yandex-team.ru \
--cc=koct9i@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=mgorman@techsingularity.net \
--cc=richard.weiyang@gmail.com \
--cc=shakeelb@google.com \
--cc=tj@kernel.org \
--cc=yang.shi@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).