Commit f042e707ee671e4beb5389abeb9a1819a2cf5532

Authored by Andrew Morton
Committed by Linus Torvalds
1 parent a77aea9201

mm: move enum vm_event_item into a standalone header file

enums are problematic because they cannot be forward-declared:

  akpm2:/home/akpm> cat t.c

  enum foo;

  static inline void bar(enum foo f)
  {
  }
  akpm2:/home/akpm> gcc -c t.c
  t.c:4: error: parameter 1 ('f') has incomplete type

So move the enum's definition into a standalone header file which can be used
wherever its definition is needed.

Cc: Ying Han <yinghan@google.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 2 changed files with 65 additions and 61 deletions Side-by-side Diff

include/linux/vm_event_item.h
  1 +#ifndef VM_EVENT_ITEM_H_INCLUDED
  2 +#define VM_EVENT_ITEM_H_INCLUDED
  3 +
  4 +#ifdef CONFIG_ZONE_DMA
  5 +#define DMA_ZONE(xx) xx##_DMA,
  6 +#else
  7 +#define DMA_ZONE(xx)
  8 +#endif
  9 +
  10 +#ifdef CONFIG_ZONE_DMA32
  11 +#define DMA32_ZONE(xx) xx##_DMA32,
  12 +#else
  13 +#define DMA32_ZONE(xx)
  14 +#endif
  15 +
  16 +#ifdef CONFIG_HIGHMEM
  17 +#define HIGHMEM_ZONE(xx) , xx##_HIGH
  18 +#else
  19 +#define HIGHMEM_ZONE(xx)
  20 +#endif
  21 +
  22 +#define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL HIGHMEM_ZONE(xx) , xx##_MOVABLE
  23 +
  24 +enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
  25 + FOR_ALL_ZONES(PGALLOC),
  26 + PGFREE, PGACTIVATE, PGDEACTIVATE,
  27 + PGFAULT, PGMAJFAULT,
  28 + FOR_ALL_ZONES(PGREFILL),
  29 + FOR_ALL_ZONES(PGSTEAL),
  30 + FOR_ALL_ZONES(PGSCAN_KSWAPD),
  31 + FOR_ALL_ZONES(PGSCAN_DIRECT),
  32 +#ifdef CONFIG_NUMA
  33 + PGSCAN_ZONE_RECLAIM_FAILED,
  34 +#endif
  35 + PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
  36 + KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
  37 + KSWAPD_SKIP_CONGESTION_WAIT,
  38 + PAGEOUTRUN, ALLOCSTALL, PGROTATED,
  39 +#ifdef CONFIG_COMPACTION
  40 + COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED,
  41 + COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
  42 +#endif
  43 +#ifdef CONFIG_HUGETLB_PAGE
  44 + HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
  45 +#endif
  46 + UNEVICTABLE_PGCULLED, /* culled to noreclaim list */
  47 + UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */
  48 + UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */
  49 + UNEVICTABLE_PGMLOCKED,
  50 + UNEVICTABLE_PGMUNLOCKED,
  51 + UNEVICTABLE_PGCLEARED, /* on COW, page truncate */
  52 + UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
  53 + UNEVICTABLE_MLOCKFREED,
  54 +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
  55 + THP_FAULT_ALLOC,
  56 + THP_FAULT_FALLBACK,
  57 + THP_COLLAPSE_ALLOC,
  58 + THP_COLLAPSE_ALLOC_FAILED,
  59 + THP_SPLIT,
  60 +#endif
  61 + NR_VM_EVENT_ITEMS
  62 +};
  63 +
  64 +#endif /* VM_EVENT_ITEM_H_INCLUDED */
include/linux/vmstat.h
... ... @@ -5,68 +5,8 @@
5 5 #include <linux/percpu.h>
6 6 #include <linux/mm.h>
7 7 #include <linux/mmzone.h>
  8 +#include <linux/vm_event_item.h>
8 9 #include <asm/atomic.h>
9   -
10   -#ifdef CONFIG_ZONE_DMA
11   -#define DMA_ZONE(xx) xx##_DMA,
12   -#else
13   -#define DMA_ZONE(xx)
14   -#endif
15   -
16   -#ifdef CONFIG_ZONE_DMA32
17   -#define DMA32_ZONE(xx) xx##_DMA32,
18   -#else
19   -#define DMA32_ZONE(xx)
20   -#endif
21   -
22   -#ifdef CONFIG_HIGHMEM
23   -#define HIGHMEM_ZONE(xx) , xx##_HIGH
24   -#else
25   -#define HIGHMEM_ZONE(xx)
26   -#endif
27   -
28   -
29   -#define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL HIGHMEM_ZONE(xx) , xx##_MOVABLE
30   -
31   -enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
32   - FOR_ALL_ZONES(PGALLOC),
33   - PGFREE, PGACTIVATE, PGDEACTIVATE,
34   - PGFAULT, PGMAJFAULT,
35   - FOR_ALL_ZONES(PGREFILL),
36   - FOR_ALL_ZONES(PGSTEAL),
37   - FOR_ALL_ZONES(PGSCAN_KSWAPD),
38   - FOR_ALL_ZONES(PGSCAN_DIRECT),
39   -#ifdef CONFIG_NUMA
40   - PGSCAN_ZONE_RECLAIM_FAILED,
41   -#endif
42   - PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
43   - KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
44   - KSWAPD_SKIP_CONGESTION_WAIT,
45   - PAGEOUTRUN, ALLOCSTALL, PGROTATED,
46   -#ifdef CONFIG_COMPACTION
47   - COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED,
48   - COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
49   -#endif
50   -#ifdef CONFIG_HUGETLB_PAGE
51   - HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
52   -#endif
53   - UNEVICTABLE_PGCULLED, /* culled to noreclaim list */
54   - UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */
55   - UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */
56   - UNEVICTABLE_PGMLOCKED,
57   - UNEVICTABLE_PGMUNLOCKED,
58   - UNEVICTABLE_PGCLEARED, /* on COW, page truncate */
59   - UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
60   - UNEVICTABLE_MLOCKFREED,
61   -#ifdef CONFIG_TRANSPARENT_HUGEPAGE
62   - THP_FAULT_ALLOC,
63   - THP_FAULT_FALLBACK,
64   - THP_COLLAPSE_ALLOC,
65   - THP_COLLAPSE_ALLOC_FAILED,
66   - THP_SPLIT,
67   -#endif
68   - NR_VM_EVENT_ITEMS
69   -};
70 10  
71 11 extern int sysctl_stat_interval;
72 12