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().