/linux/arch/riscv/kernel/ |
H A D | cacheinfo.c | 20 cache_get_priv_group(struct cacheinfo *this_leaf) in cache_get_priv_group() argument 23 return rv_cache_ops->get_priv_group(this_leaf); in cache_get_priv_group() 39 struct cacheinfo *this_leaf; in get_cacheinfo() local 43 this_leaf = this_cpu_ci->info_list + index; in get_cacheinfo() 44 if (this_leaf->level == level && this_leaf->type == type) in get_cacheinfo() 45 return this_leaf; in get_cacheinfo() 53 struct cacheinfo *this_leaf = get_cacheinfo(level, type); in get_cache_size() local 55 return this_leaf ? this_leaf->size : 0; in get_cache_size() 60 struct cacheinfo *this_leaf = get_cacheinfo(level, type); in get_cache_geometry() local 62 return this_leaf ? (this_leaf->ways_of_associativity << 16 | in get_cache_geometry() [all …]
|
/linux/drivers/base/ |
H A D | cacheinfo.c | 39 static inline bool cache_leaves_are_shared(struct cacheinfo *this_leaf, in cache_leaves_are_shared() argument 48 return (this_leaf->level != 1) && (sib_leaf->level != 1); in cache_leaves_are_shared() 51 (this_leaf->attributes & CACHE_ID)) in cache_leaves_are_shared() 52 return sib_leaf->id == this_leaf->id; in cache_leaves_are_shared() 54 return sib_leaf->fw_token == this_leaf->fw_token; in cache_leaves_are_shared() 121 static void cache_size(struct cacheinfo *this_leaf, struct device_node *np) in cache_size() argument 126 ct_idx = get_cacheinfo_idx(this_leaf->type); in cache_size() 129 of_property_read_u32(np, propname, &this_leaf->size); in cache_size() 133 static void cache_get_line_size(struct cacheinfo *this_leaf, in cache_get_line_size() argument 138 ct_idx = get_cacheinfo_idx(this_leaf->type); in cache_get_line_size() [all …]
|
/linux/arch/loongarch/kernel/ |
H A D | cacheinfo.c | 24 static inline bool cache_leaves_are_shared(struct cacheinfo *this_leaf, in cache_leaves_are_shared() argument 27 return (!(*(unsigned char *)(this_leaf->priv) & CACHE_PRIVATE) in cache_leaves_are_shared() 34 struct cacheinfo *this_leaf, *sib_leaf; in cache_cpumap_setup() local 40 this_leaf = this_cpu_ci->info_list + index; in cache_cpumap_setup() 42 if (!cpumask_empty(&this_leaf->shared_cpu_map)) in cache_cpumap_setup() 45 cpumask_set_cpu(cpu, &this_leaf->shared_cpu_map); in cache_cpumap_setup() 54 if (cache_leaves_are_shared(this_leaf, sib_leaf)) { in cache_cpumap_setup() 56 cpumask_set_cpu(i, &this_leaf->shared_cpu_map); in cache_cpumap_setup() 66 struct cacheinfo *this_leaf = this_cpu_ci->info_list; in populate_cache_leaves() local 72 this_leaf->type = cd->type; in populate_cache_leaves() [all …]
|
/linux/arch/x86/kernel/cpu/ |
H A D | cacheinfo.c | 362 static ssize_t show_cache_disable(struct cacheinfo *this_leaf, char *buf, in show_cache_disable() argument 366 struct amd_northbridge *nb = this_leaf->priv; in show_cache_disable() 380 struct cacheinfo *this_leaf = dev_get_drvdata(dev); \ 381 return show_cache_disable(this_leaf, buf, slot); \ 448 static ssize_t store_cache_disable(struct cacheinfo *this_leaf, in store_cache_disable() argument 454 struct amd_northbridge *nb = this_leaf->priv; in store_cache_disable() 459 cpu = cpumask_first(&this_leaf->shared_cpu_map); in store_cache_disable() 480 struct cacheinfo *this_leaf = dev_get_drvdata(dev); \ 481 return store_cache_disable(this_leaf, buf, count, slot); \ 489 struct cacheinfo *this_leaf = dev_get_drvdata(dev); in subcaches_show() local [all …]
|
/linux/arch/s390/kernel/ |
H A D | cache.c | 103 static void ci_leaf_init(struct cacheinfo *this_leaf, int private, in ci_leaf_init() argument 112 this_leaf->level = level + 1; in ci_leaf_init() 113 this_leaf->type = type; in ci_leaf_init() 114 this_leaf->coherency_line_size = ecag(EXTRACT_LINE_SIZE, level, ti); in ci_leaf_init() 115 this_leaf->ways_of_associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti); in ci_leaf_init() 116 this_leaf->size = ecag(EXTRACT_SIZE, level, ti); in ci_leaf_init() 117 num_sets = this_leaf->size / this_leaf->coherency_line_size; in ci_leaf_init() 118 num_sets /= this_leaf->ways_of_associativity; in ci_leaf_init() 119 this_leaf->number_of_sets = num_sets; in ci_leaf_init() 120 cpumask_set_cpu(cpu, &this_leaf->shared_cpu_map); in ci_leaf_init() [all …]
|
/linux/arch/mips/kernel/ |
H A D | cacheinfo.c | 81 struct cacheinfo *this_leaf = this_cpu_ci->info_list; in populate_cache_leaves() local 86 fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map); in populate_cache_leaves() 87 populate_cache(dcache, this_leaf, level, CACHE_TYPE_DATA); in populate_cache_leaves() 88 fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map); in populate_cache_leaves() 89 populate_cache(icache, this_leaf, level, CACHE_TYPE_INST); in populate_cache_leaves() 92 populate_cache(dcache, this_leaf, level, CACHE_TYPE_UNIFIED); in populate_cache_leaves() 98 fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map); in populate_cache_leaves() 99 populate_cache(vcache, this_leaf, level, CACHE_TYPE_UNIFIED); in populate_cache_leaves() 105 fill_cpumask_cluster(cpu, &this_leaf->shared_cpu_map); in populate_cache_leaves() 106 populate_cache(scache, this_leaf, level, CACHE_TYPE_UNIFIED); in populate_cache_leaves() [all …]
|
/linux/drivers/acpi/ |
H A D | pptt.c | 357 static void update_cache_properties(struct cacheinfo *this_leaf, in update_cache_properties() argument 364 this_leaf->fw_token = cpu_node; in update_cache_properties() 366 this_leaf->size = found_cache->size; in update_cache_properties() 368 this_leaf->coherency_line_size = found_cache->line_size; in update_cache_properties() 370 this_leaf->number_of_sets = found_cache->number_of_sets; in update_cache_properties() 372 this_leaf->ways_of_associativity = found_cache->associativity; in update_cache_properties() 376 this_leaf->attributes = CACHE_WRITE_THROUGH; in update_cache_properties() 379 this_leaf->attributes = CACHE_WRITE_BACK; in update_cache_properties() 386 this_leaf->attributes |= CACHE_READ_ALLOCATE; in update_cache_properties() 389 this_leaf->attributes |= CACHE_WRITE_ALLOCATE; in update_cache_properties() [all …]
|
/linux/arch/arm64/kernel/ |
H A D | cacheinfo.c | 34 static void ci_leaf_init(struct cacheinfo *this_leaf, in ci_leaf_init() argument 37 this_leaf->level = level; in ci_leaf_init() 38 this_leaf->type = type; in ci_leaf_init() 104 struct cacheinfo *this_leaf = this_cpu_ci->info_list; in populate_cache_leaves() local 110 ci_leaf_init(this_leaf++, CACHE_TYPE_DATA, level); in populate_cache_leaves() 111 ci_leaf_init(this_leaf++, CACHE_TYPE_INST, level); in populate_cache_leaves() 113 ci_leaf_init(this_leaf++, type, level); in populate_cache_leaves()
|
/linux/arch/riscv/include/asm/ |
H A D | cacheinfo.h | 13 *this_leaf);
|
/linux/drivers/cache/ |
H A D | sifive_ccache.c | 195 *this_leaf) in ccache_get_priv_group() argument 198 if (this_leaf->level == level) in ccache_get_priv_group()
|
/linux/include/linux/ |
H A D | cacheinfo.h | 114 const struct attribute_group *cache_get_priv_group(struct cacheinfo *this_leaf);
|