From: Nick Piggin Comment the new locking rules for page_state statistics. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton --- include/linux/page-flags.h | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletion(-) diff -puN include/linux/page-flags.h~mm-page_state-opt-docs include/linux/page-flags.h --- devel/include/linux/page-flags.h~mm-page_state-opt-docs 2005-12-14 02:43:42.000000000 -0800 +++ devel-akpm/include/linux/page-flags.h 2005-12-14 02:43:42.000000000 -0800 @@ -79,13 +79,23 @@ /* * Global page accounting. One instance per CPU. Only unsigned longs are * allowed. + * + * - Fields can be modified with xxx_page_state and xxx_page_state_zone at + * any time safely (which protects the instance from modification by + * interrupt. + * - The __xxx_page_state variants can be used safely when interrupts are + * disabled. + * - The __xxx_page_state variants can be used if the field is only + * modified from process context, or only modified from interrupt context. + * In this case, the field should be commented here. */ struct page_state { unsigned long nr_dirty; /* Dirty writeable pages */ unsigned long nr_writeback; /* Pages under writeback */ unsigned long nr_unstable; /* NFS unstable pages */ unsigned long nr_page_table_pages;/* Pages used for pagetables */ - unsigned long nr_mapped; /* mapped into pagetables */ + unsigned long nr_mapped; /* mapped into pagetables. + * only modified from process context */ unsigned long nr_slab; /* In slab */ #define GET_PAGE_STATE_LAST nr_slab _