Lines Matching +full:cache +full:- +full:unified

1 // SPDX-License-Identifier: GPL-2.0
3 * Extract CPU cache information and expose them via sysfs.
58 "Unified",
71 struct cacheinfo *cache; in show_cacheinfo() local
77 for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) { in show_cacheinfo()
78 cache = this_cpu_ci->info_list + idx; in show_cacheinfo()
79 seq_printf(m, "cache%-11d: ", idx); in show_cacheinfo()
80 seq_printf(m, "level=%d ", cache->level); in show_cacheinfo()
81 seq_printf(m, "type=%s ", cache_type_string[cache->type]); in show_cacheinfo()
83 cache->disable_sysfs ? "Shared" : "Private"); in show_cacheinfo()
84 seq_printf(m, "size=%dK ", cache->size >> 10); in show_cacheinfo()
85 seq_printf(m, "line_size=%u ", cache->coherency_line_size); in show_cacheinfo()
86 seq_printf(m, "associativity=%d", cache->ways_of_associativity); in show_cacheinfo()
96 if (ci->scope != CACHE_SCOPE_SHARED && ci->scope != CACHE_SCOPE_PRIVATE) in get_cache_type()
98 return cache_type_map[ci->type]; in get_cache_type()
115 this_leaf->level = level + 1; in ci_leaf_init()
116 this_leaf->type = type; in ci_leaf_init()
117 this_leaf->coherency_line_size = ecag(EXTRACT_LINE_SIZE, level, ti); in ci_leaf_init()
118 this_leaf->ways_of_associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti); in ci_leaf_init()
119 this_leaf->size = ecag(EXTRACT_SIZE, level, ti); in ci_leaf_init()
120 num_sets = this_leaf->size / this_leaf->coherency_line_size; in ci_leaf_init()
121 num_sets /= this_leaf->ways_of_associativity; in ci_leaf_init()
122 this_leaf->number_of_sets = num_sets; in ci_leaf_init()
123 cpumask_set_cpu(cpu, &this_leaf->shared_cpu_map); in ci_leaf_init()
125 this_leaf->disable_sysfs = true; in ci_leaf_init()
136 return -EOPNOTSUPP; in init_cache_level()
138 return -EINVAL; in init_cache_level()
147 this_cpu_ci->num_levels = level; in init_cache_level()
148 this_cpu_ci->num_leaves = leaves; in init_cache_level()
155 struct cacheinfo *this_leaf = this_cpu_ci->info_list; in populate_cache_leaves()
161 return -EOPNOTSUPP; in populate_cache_leaves()
163 for (idx = 0, level = 0; level < this_cpu_ci->num_levels && in populate_cache_leaves()
164 idx < this_cpu_ci->num_leaves; idx++, level++) { in populate_cache_leaves()
166 return -EINVAL; in populate_cache_leaves()