summaryrefslogtreecommitdiffstats
path: root/include/linux/node.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/node.h')
-rw-r--r--include/linux/node.h39
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
38enum cache_indexing {
39 NODE_CACHE_DIRECT_MAP,
40 NODE_CACHE_INDEXED,
41 NODE_CACHE_OTHER,
42};
43
44enum 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 */
59struct 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
68void node_add_cache(unsigned int nid, struct node_cache_attrs *cache_attrs);
39void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs, 69void node_set_perf_attrs(unsigned int nid, struct node_hmem_attrs *hmem_attrs,
40 unsigned access); 70 unsigned access);
41#else 71#else
72static inline void node_add_cache(unsigned int nid,
73 struct node_cache_attrs *cache_attrs)
74{
75}
76
42static inline void node_set_perf_attrs(unsigned int nid, 77static 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
58struct memory_block; 97struct memory_block;