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.

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?

Reply via email to