Re: [PATCH 3/4] mm: workingset: add vmstat counter for shadow nodes

From: Andrew Morton
Date: Tue Oct 16 2018 - 18:27:53 EST


On Tue, 16 Oct 2018 09:49:23 +0100 Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote:

> > Can we do this?
> >
> > --- a/mm/workingset.c~mm-workingset-add-vmstat-counter-for-shadow-nodes-fix
> > +++ a/mm/workingset.c
> > @@ -377,6 +377,8 @@ void workingset_update_node(struct radix
> > * already where they should be. The list_empty() test is safe
> > * as node->private_list is protected by the i_pages lock.
> > */
> > + WARN_ON_ONCE(!irqs_disabled()); /* For __inc_lruvec_page_state */
> > +
> > if (node->count && node->count == node->exceptional) {
> > if (list_empty(&node->private_list)) {
> > list_lru_add(&shadow_nodes, &node->private_list);
>
> Note that for whatever reason, I've observed that irqs_disabled() is
> actually quite an expensive call. I'm not saying the warning is a bad
> idea but it should not be sprinkled around unnecessary and may be more
> suitable as a debug option.

Yup, it is now VM_WARN_ON_ONCE().