diff options
Diffstat (limited to 'include/linux/node.h')
-rw-r--r-- | include/linux/node.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/node.h b/include/linux/node.h index 4139d728f8b3..1a557c589ecb 100644 --- a/include/linux/node.h +++ b/include/linux/node.h | |||
@@ -35,10 +35,45 @@ struct node_hmem_attrs { | |||
35 | unsigned int write_latency; | 35 | unsigned int write_latency; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | enum cache_indexing { | ||
39 | NODE_CACHE_DIRECT_MAP, | ||
40 | NODE_CACHE_INDEXED, | ||
41 | NODE_CACHE_OTHER, | ||
42 | }; | ||
43 | |||
44 | enum cache_write_policy { | ||
45 | NODE_CACHE_WRITE_BACK, | ||
46 | NODE_CACHE_WRITE_THROUGH, | ||
47 | NODE_CACHE_WRITE_OTHER, | ||
48 | }; | ||
49 | |||
50 | /** | ||
51 | * struct node_cache_attrs - system memory caching attributes | ||
52 | * | ||
53 | * @indexing: The ways memory blocks may be placed in cache | ||
54 | * @write_policy: Write back or write through policy | ||
55 | * @size: Total size of cache in bytes | ||
56 | * @line_size: Number of bytes fetched on a cache miss | ||
57 | * @level: The cache hierarchy level | ||
58 | */ | ||
59 | struct node_cache_attrs { | ||
60 | enum cache_indexing indexing; | ||
61 | enum cache_write_policy write_policy; | ||
62 | u64 size; | ||
63 | u16 line_size; | ||
64 | u8 level; | ||
65 | }; | ||
66 | |||
38 | #ifdef CONFIG_HMEM_REPORTING | 67 | #ifdef CONFIG_HMEM_REPORTING |
68 | void node_add_cache(unsigned int nid, struct node_cache_attrs *cache_attrs); | ||
39 | void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs, | 69 | void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs, |
40 | unsigned access); | 70 | unsigned access); |
41 | #else | 71 | #else |
72 | static inline void node_add_cache(unsigned int nid, | ||
73 | struct node_cache_attrs *cache_attrs) | ||
74 | { | ||
75 | } | ||
76 | |||
42 | static inline void node_set_perf_attrs(unsigned int nid, | 77 | static inline void node_set_perf_attrs(unsigned int nid, |
43 | struct node_hmem_attrs *hmem_attrs, | 78 | struct node_hmem_attrs *hmem_attrs, |
44 | unsigned access) | 79 | unsigned access) |
@@ -53,6 +88,10 @@ struct node { | |||
53 | #if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS) | 88 | #if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS) |
54 | struct work_struct node_work; | 89 | struct work_struct node_work; |
55 | #endif | 90 | #endif |
91 | #ifdef CONFIG_HMEM_REPORTING | ||
92 | struct list_head cache_attrs; | ||
93 | struct device *cache_dev; | ||
94 | #endif | ||
56 | }; | 95 | }; |
57 | 96 | ||
58 | struct memory_block; | 97 | struct memory_block; |