Re: [PATCH v2 4/4] mm: Generalize putback scan functions

From: Kirill Tkhai
Date: Fri Feb 15 2019 - 17:01:12 EST


On 15.02.2019 23:39, Daniel Jordan wrote:
> On Thu, Feb 14, 2019 at 01:35:37PM +0300, Kirill Tkhai wrote:
>> +static unsigned noinline_for_stack move_pages_to_lru(struct lruvec *lruvec,
>> + struct list_head *list)
>> {
>> struct pglist_data *pgdat = lruvec_pgdat(lruvec);
>> + int nr_pages, nr_moved = 0;
>> LIST_HEAD(pages_to_free);
>> + struct page *page;
>> + enum lru_list lru;
>>
>> - /*
>> - * Put back any unfreeable pages.
>> - */
>> - while (!list_empty(page_list)) {
>> - struct page *page = lru_to_page(page_list);
>> - int lru;
>> -
>> + while (!list_empty(list)) {
>> + page = lru_to_page(list);
>> VM_BUG_ON_PAGE(PageLRU(page), page);
>> - list_del(&page->lru);
>> if (unlikely(!page_evictable(page))) {
>> + list_del_init(&page->lru);
>
> Why change to list_del_init? It's more special than list_del but doesn't seem
> needed since the page is list_add()ed later.

Not something special is here, I'll remove this _init.

> That postprocess script from patch 1 seems kinda broken before this series, and
> still is. Not that it should block this change. Out of curiosity did you get
> it to run?

I fixed all new warnings, which come with my changes, so the patch does not make
the script worse.

If you change all already existing warnings by renaming variables in appropriate
places, the script will work in some way. But I'm not sure this is enough to get
results correct, and I have no a big wish to dive into perl to fix warnings
introduced by another people, so I don't plan to do with this script something else.