Lines Matching refs:cpu
73 static int cpuctl_do_msr(int cpu, cpuctl_msr_args_t *data, u_long cmd,
75 static int cpuctl_do_cpuid(int cpu, cpuctl_cpuid_args_t *data,
77 static int cpuctl_do_cpuid_count(int cpu, cpuctl_cpuid_count_args_t *data,
79 static int cpuctl_do_eval_cpu_features(int cpu, struct thread *td);
80 static int cpuctl_do_update(int cpu, cpuctl_update_args_t *data,
82 static int update_intel(int cpu, cpuctl_update_args_t *args,
84 static int update_amd(int cpu, cpuctl_update_args_t *args, struct thread *td);
85 static int update_via(int cpu, cpuctl_update_args_t *args,
102 cpu_enabled(int cpu) in cpu_enabled() argument
105 return (pmc_cpu_is_disabled(cpu) == 0); in cpu_enabled()
126 set_cpu(int cpu, struct thread *td) in set_cpu() argument
129 KASSERT(cpu >= 0 && cpu <= mp_maxid && cpu_enabled(cpu), in set_cpu()
130 ("[cpuctl,%d]: bad cpu number %d", __LINE__, cpu)); in set_cpu()
132 sched_bind(td, cpu); in set_cpu()
134 KASSERT(td->td_oncpu == cpu, in set_cpu()
136 cpu, td->td_oncpu)); in set_cpu()
157 int cpu, ret; in cpuctl_ioctl() local
159 cpu = dev2unit(dev); in cpuctl_ioctl()
160 if (cpu > mp_maxid || !cpu_enabled(cpu)) { in cpuctl_ioctl()
161 DPRINTF("[cpuctl,%d]: bad cpu number %d\n", __LINE__, cpu); in cpuctl_ioctl()
172 ret = cpuctl_do_msr(cpu, (cpuctl_msr_args_t *)data, cmd, td); in cpuctl_ioctl()
180 ret = cpuctl_do_msr(cpu, (cpuctl_msr_args_t *)data, cmd, td); in cpuctl_ioctl()
183 ret = cpuctl_do_cpuid(cpu, (cpuctl_cpuid_args_t *)data, td); in cpuctl_ioctl()
189 ret = cpuctl_do_update(cpu, (cpuctl_update_args_t *)data, td); in cpuctl_ioctl()
192 ret = cpuctl_do_cpuid_count(cpu, in cpuctl_ioctl()
196 ret = cpuctl_do_eval_cpu_features(cpu, td); in cpuctl_ioctl()
210 cpuctl_do_cpuid_count(int cpu, cpuctl_cpuid_count_args_t *data, in cpuctl_do_cpuid_count() argument
216 KASSERT(cpu >= 0 && cpu <= mp_maxid, in cpuctl_do_cpuid_count()
217 ("[cpuctl,%d]: bad cpu number %d", __LINE__, cpu)); in cpuctl_do_cpuid_count()
222 __LINE__, data->level, data->level_type, cpu); in cpuctl_do_cpuid_count()
229 set_cpu(cpu, td); in cpuctl_do_cpuid_count()
236 cpuctl_do_cpuid(int cpu, cpuctl_cpuid_args_t *data, struct thread *td) in cpuctl_do_cpuid() argument
244 error = cpuctl_do_cpuid_count(cpu, &cdata, td); in cpuctl_do_cpuid()
253 cpuctl_do_msr(int cpu, cpuctl_msr_args_t *data, u_long cmd, struct thread *td) in cpuctl_do_msr() argument
260 KASSERT(cpu >= 0 && cpu <= mp_maxid, in cpuctl_do_msr()
261 ("[cpuctl,%d]: bad cpu number %d", __LINE__, cpu)); in cpuctl_do_msr()
268 data->msr, cpu); in cpuctl_do_msr()
275 set_cpu(cpu, td); in cpuctl_do_msr()
304 cpuctl_do_update(int cpu, cpuctl_update_args_t *data, struct thread *td) in cpuctl_do_update() argument
312 KASSERT(cpu >= 0 && cpu <= mp_maxid, in cpuctl_do_update()
313 ("[cpuctl,%d]: bad cpu number %d", __LINE__, cpu)); in cpuctl_do_update()
314 DPRINTF("[cpuctl,%d]: XXX %d", __LINE__, cpu); in cpuctl_do_update()
316 ret = cpuctl_do_cpuid(cpu, &args, td); in cpuctl_do_update()
324 ret = update_intel(cpu, data, td); in cpuctl_do_update()
326 ret = update_amd(cpu, data, td); in cpuctl_do_update()
329 ret = update_via(cpu, data, td); in cpuctl_do_update()
337 int cpu; member
347 if (PCPU_GET(cpuid) == d->cpu) in ucode_intel_load_rv()
352 update_intel(int cpu, cpuctl_update_args_t *args, struct thread *td) in update_intel() argument
381 set_cpu(cpu, td); in update_intel()
383 d.cpu = cpu; in update_intel()
415 update_amd(int cpu, cpuctl_update_args_t *args, struct thread *td) in update_amd() argument
449 update_via(int cpu, cpuctl_update_args_t *args, struct thread *td) in update_via() argument
479 set_cpu(cpu, td); in update_via()
522 cpuctl_do_eval_cpu_features(int cpu, struct thread *td) in cpuctl_do_eval_cpu_features() argument
527 KASSERT(cpu >= 0 && cpu <= mp_maxid, in cpuctl_do_eval_cpu_features()
528 ("[cpuctl,%d]: bad cpu number %d", __LINE__, cpu)); in cpuctl_do_eval_cpu_features()
536 set_cpu(cpu, td); in cpuctl_do_eval_cpu_features()
558 int cpu; in cpuctl_open() local
560 cpu = dev2unit(dev); in cpuctl_open()
561 if (cpu > mp_maxid || !cpu_enabled(cpu)) { in cpuctl_open()
563 cpu); in cpuctl_open()
574 int cpu; in cpuctl_modevent() local
582 CPU_FOREACH(cpu) in cpuctl_modevent()
583 if (cpu_enabled(cpu)) in cpuctl_modevent()
584 cpuctl_devs[cpu] = make_dev(&cpuctl_cdevsw, cpu, in cpuctl_modevent()
585 UID_ROOT, GID_KMEM, 0640, "cpuctl%d", cpu); in cpuctl_modevent()
588 CPU_FOREACH(cpu) { in cpuctl_modevent()
589 if (cpuctl_devs[cpu] != NULL) in cpuctl_modevent()
590 destroy_dev(cpuctl_devs[cpu]); in cpuctl_modevent()