The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=df0aca0d73064a1a199dbae3857012951f96cf2d
commit df0aca0d73064a1a199dbae3857012951f96cf2d Author: Mitchell Horne <[email protected]> AuthorDate: 2026-07-13 19:15:19 +0000 Commit: Mitchell Horne <[email protected]> CommitDate: 2026-07-13 19:40:42 +0000 smp: remove unused hlt_cpus_mask It is a relic, apparently once populated by a machdep.hlt_cpus sysctl. The sysctl was removed, and ULE has never honored this mask. It is now safe to remove. Remove the mask, and its few remaining references in: sched_4bsd(4), hwpmc(4), and hwt(4). Reviewed by: olce, kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58158 --- sys/dev/hwt/hwt_ioctl.c | 5 ----- sys/dev/hwt/hwt_vm.c | 6 ------ sys/kern/kern_pmc.c | 3 +-- sys/kern/sched_4bsd.c | 17 ----------------- sys/kern/subr_smp.c | 1 - sys/sys/smp.h | 1 - 6 files changed, 1 insertion(+), 32 deletions(-) diff --git a/sys/dev/hwt/hwt_ioctl.c b/sys/dev/hwt/hwt_ioctl.c index 184c7e72f986..7d76a3feee55 100644 --- a/sys/dev/hwt/hwt_ioctl.c +++ b/sys/dev/hwt/hwt_ioctl.c @@ -304,11 +304,6 @@ hwt_ioctl_alloc_mode_cpu(struct thread *td, struct hwt_owner *ho, return (error); CPU_FOREACH_ISSET(cpu_id, &cpu_map) { -#ifdef SMP - /* Ensure CPU is not halted. */ - if (CPU_ISSET(cpu_id, &hlt_cpus_mask)) - return (ENXIO); -#endif #if 0 /* TODO: Check if the owner have this cpu configured already. */ ctx = hwt_owner_lookup_ctx_by_cpu(ho, halloc->cpu); diff --git a/sys/dev/hwt/hwt_vm.c b/sys/dev/hwt/hwt_vm.c index 42fc636e7abc..eca3f6170673 100644 --- a/sys/dev/hwt/hwt_vm.c +++ b/sys/dev/hwt/hwt_vm.c @@ -209,12 +209,6 @@ hwt_vm_start_cpu_mode(struct hwt_context *ctx) CPU_ZERO(&enable_cpus); CPU_FOREACH_ISSET(cpu_id, &ctx->cpu_map) { -#ifdef SMP - /* Ensure CPU is not halted. */ - if (CPU_ISSET(cpu_id, &hlt_cpus_mask)) - continue; -#endif - hwt_backend_configure(ctx, cpu_id, cpu_id); CPU_SET(cpu_id, &enable_cpus); diff --git a/sys/kern/kern_pmc.c b/sys/kern/kern_pmc.c index 15afe1a46d07..90ce8c6a17c1 100644 --- a/sys/kern/kern_pmc.c +++ b/sys/kern/kern_pmc.c @@ -152,8 +152,7 @@ int pmc_cpu_is_active(int cpu) { #ifdef SMP - return (pmc_cpu_is_present(cpu) && - !CPU_ISSET(cpu, &hlt_cpus_mask)); + return (pmc_cpu_is_present(cpu)); #else return (1); #endif diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index a47fe3ce72c3..043a4d291c9f 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -1187,7 +1187,6 @@ forward_wakeup(int cpunum) CPU_SETOF(me, &dontuse); CPU_OR(&dontuse, &dontuse, &stopped_cpus); - CPU_OR(&dontuse, &dontuse, &hlt_cpus_mask); CPU_ZERO(&map2); if (forward_wakeup_use_loop) { STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) { @@ -1389,7 +1388,6 @@ sched_4bsd_add(struct thread *td, int flags) } else { if (!single_cpu) { tidlemsk = idle_cpus_mask; - CPU_ANDNOT(&tidlemsk, &tidlemsk, &hlt_cpus_mask); CPU_CLR(cpuid, &tidlemsk); if (!CPU_ISSET(cpuid, &idle_cpus_mask) && @@ -1827,22 +1825,7 @@ sched_4bsd_affinity(struct thread *td) static bool sched_4bsd_do_timer_accounting(void) { -#ifdef SMP - /* - * Don't do any accounting for the disabled HTT cores, since it - * will provide misleading numbers for the userland. - * - * No locking is necessary here, since even if we lose the race - * when hlt_cpus_mask changes it is not a big deal, really. - * - * Don't do that for ULE, since ULE doesn't consider hlt_cpus_mask - * and unlike other schedulers it actually schedules threads to - * those CPUs. - */ - return (!CPU_ISSET(PCPU_GET(cpuid), &hlt_cpus_mask)); -#else return (true); -#endif } static int diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 148b366e7435..dd2e829aefbf 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -90,7 +90,6 @@ smp_topo_none(void) volatile cpuset_t stopped_cpus; volatile cpuset_t started_cpus; volatile cpuset_t suspended_cpus; -cpuset_t hlt_cpus_mask; cpuset_t logical_cpus_mask; void (*cpustop_restartfunc)(void); diff --git a/sys/sys/smp.h b/sys/sys/smp.h index 493dc91043bd..ae767c238e96 100644 --- a/sys/sys/smp.h +++ b/sys/sys/smp.h @@ -161,7 +161,6 @@ extern volatile cpuset_t started_cpus; /* cpus to let out of stop pen */ extern volatile cpuset_t stopped_cpus; /* cpus in stop pen */ extern volatile cpuset_t suspended_cpus; /* cpus [near] sleeping in susp pen */ extern volatile cpuset_t toresume_cpus; /* cpus to let out of suspend pen */ -extern cpuset_t hlt_cpus_mask; /* XXX 'mask' is detail in old impl */ extern cpuset_t logical_cpus_mask; #endif /* SMP */
