It appears to be possible to pin down a process to a particular core via the cpuset(1) utility. It is possible to tell the scheduler to avoid that particular core with all other processes (current and futures ones)?
Preventing scheduler to use certain cores on FreeBSD
freebsd;scheduling
You can read up on the old scheduler in Process Management in the FreeBSD Operating SystemThe new ULE scheduler was introduced in FreeBSD 5 but was not enabled by default until 7.1. You can find a paper describing it here. This will give a good understanding of how the scheduler works.TIP: When playing with CPU affinity it is good to know the CPU topology:    $ sysctl kern.sched.topology_specTIP: procstat with the -S flag is also help for overview of cpusets used: $ procstat -a -SAnd yes - you can tell the scheduler to avoid cores by managing the cpusets. Have a look at the examples in the man page for cpuset(1). Cpuset 1 is the default set. You simply modify that set.From the man page:Modify the    cpuset all threads are in by default to contain only the  first 4 CPUs, leaving the rest idle:cpuset -l 0-3 -s 1If we imagine we have 8 CPUs we have now moved all threads in the default cpuset to the first 4. As we modified the default set (By default processes are started in set 1) this will now avoid the remaining cores which are left idle.You could create a new cpuset (ie. number 2) for the remaining CPUs you then assign when you want to use them.