Re: [PATCH 2/4] mm: Move nr_deactivate accounting to shrink_active_list()

From: Daniel Jordan
Date: Wed Feb 13 2019 - 14:13:40 EST


On Tue, Feb 12, 2019 at 06:14:05PM +0300, Kirill Tkhai wrote:
> We know, which LRU is not active.

s/,//

>
> Signed-off-by: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx>
> ---
> mm/vmscan.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 84542004a277..8d7d55e71511 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2040,12 +2040,6 @@ static unsigned move_active_pages_to_lru(struct lruvec *lruvec,
> }
> }
>
> - if (!is_active_lru(lru)) {
> - __count_vm_events(PGDEACTIVATE, nr_moved);
> - count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE,
> - nr_moved);
> - }
> -
> return nr_moved;
> }
>
> @@ -2137,6 +2131,10 @@ static void shrink_active_list(unsigned long nr_to_scan,
>
> nr_activate = move_active_pages_to_lru(lruvec, &l_active, &l_hold, lru);
> nr_deactivate = move_active_pages_to_lru(lruvec, &l_inactive, &l_hold, lru - LRU_ACTIVE);
> +
> + __count_vm_events(PGDEACTIVATE, nr_deactivate);
> + __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, nr_deactivate);

Nice, you're using the irq-unsafe one since irqs are already disabled. I guess
this was missed in c3cc39118c361. Do you want to insert a patch before this
one that converts all instances of this pattern in vmscan.c over?

There's a similar oversight in lru_lazyfree_fn with count_memcg_page_event, but
that'd mean __count_memcg_page_event which is probably overkill.