Lines Matching +full:cpu +full:- +full:capacity

1 // SPDX-License-Identifier: GPL-2.0
39 : "d" (r1), "a" (sysinfo), "K" (-EOPNOTSUPP) in __stsi()
46 * stsi - store system information
70 case 2: /* UTF-8 */ in convert_ext_name()
84 EBCASC(info->manufacturer, sizeof(info->manufacturer)); in stsi_1_1_1()
85 EBCASC(info->type, sizeof(info->type)); in stsi_1_1_1()
86 EBCASC(info->model, sizeof(info->model)); in stsi_1_1_1()
87 EBCASC(info->sequence, sizeof(info->sequence)); in stsi_1_1_1()
88 EBCASC(info->plant, sizeof(info->plant)); in stsi_1_1_1()
89 EBCASC(info->model_capacity, sizeof(info->model_capacity)); in stsi_1_1_1()
90 EBCASC(info->model_perm_cap, sizeof(info->model_perm_cap)); in stsi_1_1_1()
91 EBCASC(info->model_temp_cap, sizeof(info->model_temp_cap)); in stsi_1_1_1()
92 seq_printf(m, "Manufacturer: %-16.16s\n", info->manufacturer); in stsi_1_1_1()
93 seq_printf(m, "Type: %-4.4s\n", info->type); in stsi_1_1_1()
94 if (info->lic) in stsi_1_1_1()
95 seq_printf(m, "LIC Identifier: %016lx\n", info->lic); in stsi_1_1_1()
103 seq_printf(m, "Model: %-16.16s", info->model_capacity); in stsi_1_1_1()
104 if (info->model[0] != '\0') in stsi_1_1_1()
105 seq_printf(m, " %-16.16s", info->model); in stsi_1_1_1()
107 seq_printf(m, "Sequence Code: %-16.16s\n", info->sequence); in stsi_1_1_1()
108 seq_printf(m, "Plant: %-4.4s\n", info->plant); in stsi_1_1_1()
109 seq_printf(m, "Model Capacity: %-16.16s %08u\n", in stsi_1_1_1()
110 info->model_capacity, info->model_cap_rating); in stsi_1_1_1()
111 if (info->model_perm_cap_rating) in stsi_1_1_1()
112 seq_printf(m, "Model Perm. Capacity: %-16.16s %08u\n", in stsi_1_1_1()
113 info->model_perm_cap, in stsi_1_1_1()
114 info->model_perm_cap_rating); in stsi_1_1_1()
115 if (info->model_temp_cap_rating) in stsi_1_1_1()
116 seq_printf(m, "Model Temp. Capacity: %-16.16s %08u\n", in stsi_1_1_1()
117 info->model_temp_cap, in stsi_1_1_1()
118 info->model_temp_cap_rating); in stsi_1_1_1()
119 if (info->ncr) in stsi_1_1_1()
120 seq_printf(m, "Nominal Cap. Rating: %08u\n", info->ncr); in stsi_1_1_1()
121 if (info->npr) in stsi_1_1_1()
122 seq_printf(m, "Nominal Perm. Rating: %08u\n", info->npr); in stsi_1_1_1()
123 if (info->ntr) in stsi_1_1_1()
124 seq_printf(m, "Nominal Temp. Rating: %08u\n", info->ntr); in stsi_1_1_1()
125 if (info->cai) { in stsi_1_1_1()
126 seq_printf(m, "Capacity Adj. Ind.: %d\n", info->cai); in stsi_1_1_1()
127 seq_printf(m, "Capacity Ch. Reason: %d\n", info->ccr); in stsi_1_1_1()
128 seq_printf(m, "Capacity Transient: %d\n", info->t); in stsi_1_1_1()
130 if (info->p) { in stsi_1_1_1()
131 for (i = 1; i <= ARRAY_SIZE(info->typepct); i++) { in stsi_1_1_1()
133 i, info->typepct[i - 1]); in stsi_1_1_1()
147 seq_printf(m, "CPU Topology HW: "); in stsi_15_1_x()
149 seq_printf(m, " %d", info->mag[i]); in stsi_15_1_x()
153 seq_printf(m, "CPU Topology SW: "); in stsi_15_1_x()
155 seq_printf(m, " %d", info->mag[i]); in stsi_15_1_x()
168 ((unsigned long) info + info->acc_offset); in stsi_1_2_2()
169 seq_printf(m, "CPUs Total: %d\n", info->cpus_total); in stsi_1_2_2()
170 seq_printf(m, "CPUs Configured: %d\n", info->cpus_configured); in stsi_1_2_2()
171 seq_printf(m, "CPUs Standby: %d\n", info->cpus_standby); in stsi_1_2_2()
172 seq_printf(m, "CPUs Reserved: %d\n", info->cpus_reserved); in stsi_1_2_2()
173 if (info->mt_installed) { in stsi_1_2_2()
174 seq_printf(m, "CPUs G-MTID: %d\n", info->mt_gtid); in stsi_1_2_2()
175 seq_printf(m, "CPUs S-MTID: %d\n", info->mt_stid); in stsi_1_2_2()
181 * a floating point number in the kernel is a no-no, in stsi_1_2_2()
183 * The user-space needs to know about the strange in stsi_1_2_2()
184 * encoding of the alternate cpu capability. in stsi_1_2_2()
186 seq_printf(m, "Capability: %u", info->capability); in stsi_1_2_2()
187 if (info->format == 1) in stsi_1_2_2()
188 seq_printf(m, " %u", ext->alt_capability); in stsi_1_2_2()
190 if (info->nominal_cap) in stsi_1_2_2()
191 seq_printf(m, "Nominal Capability: %d\n", info->nominal_cap); in stsi_1_2_2()
192 if (info->secondary_cap) in stsi_1_2_2()
193 seq_printf(m, "Secondary Capability: %d\n", info->secondary_cap); in stsi_1_2_2()
194 for (i = 2; i <= info->cpus_total; i++) { in stsi_1_2_2()
195 seq_printf(m, "Adjustment %02d-way: %u", in stsi_1_2_2()
196 i, info->adjustment[i-2]); in stsi_1_2_2()
197 if (info->format == 1) in stsi_1_2_2()
198 seq_printf(m, " %u", ext->alt_adjustment[i-2]); in stsi_1_2_2()
207 EBCASC(info->name, sizeof(info->name)); in stsi_2_2_2()
209 seq_printf(m, "LPAR Number: %d\n", info->lpar_number); in stsi_2_2_2()
211 if (info->characteristics & LPAR_CHAR_DEDICATED) in stsi_2_2_2()
213 if (info->characteristics & LPAR_CHAR_SHARED) in stsi_2_2_2()
215 if (info->characteristics & LPAR_CHAR_LIMITED) in stsi_2_2_2()
218 seq_printf(m, "LPAR Name: %-8.8s\n", info->name); in stsi_2_2_2()
219 seq_printf(m, "LPAR Adjustment: %d\n", info->caf); in stsi_2_2_2()
220 seq_printf(m, "LPAR CPUs Total: %d\n", info->cpus_total); in stsi_2_2_2()
221 seq_printf(m, "LPAR CPUs Configured: %d\n", info->cpus_configured); in stsi_2_2_2()
222 seq_printf(m, "LPAR CPUs Standby: %d\n", info->cpus_standby); in stsi_2_2_2()
223 seq_printf(m, "LPAR CPUs Reserved: %d\n", info->cpus_reserved); in stsi_2_2_2()
224 seq_printf(m, "LPAR CPUs Dedicated: %d\n", info->cpus_dedicated); in stsi_2_2_2()
225 seq_printf(m, "LPAR CPUs Shared: %d\n", info->cpus_shared); in stsi_2_2_2()
226 if (info->mt_installed) { in stsi_2_2_2()
227 seq_printf(m, "LPAR CPUs G-MTID: %d\n", info->mt_gtid); in stsi_2_2_2()
228 seq_printf(m, "LPAR CPUs S-MTID: %d\n", info->mt_stid); in stsi_2_2_2()
229 seq_printf(m, "LPAR CPUs PS-MTID: %d\n", info->mt_psmtid); in stsi_2_2_2()
231 if (convert_ext_name(info->vsne, info->ext_name, sizeof(info->ext_name))) { in stsi_2_2_2()
232 seq_printf(m, "LPAR Extended Name: %-.256s\n", info->ext_name); in stsi_2_2_2()
233 seq_printf(m, "LPAR UUID: %pUb\n", &info->uuid); in stsi_2_2_2()
240 size_t len = sizeof(info->ext_names[lvl]); in print_ext_name()
242 if (!convert_ext_name(info->vm[lvl].evmne, info->ext_names[lvl], len)) in print_ext_name()
244 seq_printf(m, "VM%02d Extended Name: %-.256s\n", lvl, in print_ext_name()
245 info->ext_names[lvl]); in print_ext_name()
250 if (uuid_is_null(&info->vm[i].uuid)) in print_uuid()
252 seq_printf(m, "VM%02d UUID: %pUb\n", i, &info->vm[i].uuid); in print_uuid()
261 for (i = 0; i < info->count; i++) { in stsi_3_2_2()
262 EBCASC(info->vm[i].name, sizeof(info->vm[i].name)); in stsi_3_2_2()
263 EBCASC(info->vm[i].cpi, sizeof(info->vm[i].cpi)); in stsi_3_2_2()
265 seq_printf(m, "VM%02d Name: %-8.8s\n", i, info->vm[i].name); in stsi_3_2_2()
266 seq_printf(m, "VM%02d Control Program: %-16.16s\n", i, info->vm[i].cpi); in stsi_3_2_2()
267 seq_printf(m, "VM%02d Adjustment: %d\n", i, info->vm[i].caf); in stsi_3_2_2()
268 seq_printf(m, "VM%02d CPUs Total: %d\n", i, info->vm[i].cpus_total); in stsi_3_2_2()
269 seq_printf(m, "VM%02d CPUs Configured: %d\n", i, info->vm[i].cpus_configured); in stsi_3_2_2()
270 seq_printf(m, "VM%02d CPUs Standby: %d\n", i, info->vm[i].cpus_standby); in stsi_3_2_2()
271 seq_printf(m, "VM%02d CPUs Reserved: %d\n", i, info->vm[i].cpus_reserved); in stsi_3_2_2()
323 return -EEXIST; in register_service_level()
325 list_add_tail(&slr->list, &service_level_list); in register_service_level()
334 int rc = -ENOENT; in unregister_service_level()
340 list_del(&ptr->list); in unregister_service_level()
370 slr->seq_print(m, slr); in service_level_show()
411 * CPU capability might have changed. Therefore recalculate loops_per_jiffy.
425 * Major sigh. The cpu capability encoding is "special". in s390_adjust_jiffies()
426 * If the first 9 bits of info->capability are 0 then it in s390_adjust_jiffies()
430 * higher cpu capacity. Bogomips are the other way round. in s390_adjust_jiffies()
432 * by the cpu capability number. Yes, that means a floating in s390_adjust_jiffies()
448 : "Q" (info->capability), "d" (10000000), "d" (0) in s390_adjust_jiffies()
455 * cpu information. Report 42.0 bogomips. in s390_adjust_jiffies()
479 file->private_data = (void *) get_zeroed_page(GFP_KERNEL); \
480 if (!file->private_data) \
481 return -ENOMEM; \
482 if (stsi(file->private_data, fc, s1, s2)) { \
483 free_page((unsigned long)file->private_data); \
484 file->private_data = NULL; \
485 return -EACCES; \
499 free_page((unsigned long)file->private_data); in stsi_release()
505 return simple_read_from_buffer(buf, size, ppos, file->private_data, PAGE_SIZE); in stsi_read()
554 debugfs_create_file(sf->name, 0400, stsi_root, NULL, sf->fops); in stsi_init_debugfs()