sysctl hw|egrep '(ncpu|smt)'
hw.ncpu=8
hw.ncpufound=8
hw.ncpuonline=4
In case of hyperthreading, obsd might not activate all found threads and only have the scheduler use the "real" cores.
For better or worse, but ncpuonline=X is probably the sysctl you should use.
sysctl hw|egrep '(ncpu|smt)'
hw.ncpu=8
hw.ncpufound=8
hw.ncpuonline=4
In case of hyperthreading, obsd might not activate all found threads and only have the scheduler use the "real" cores.
For better or worse, but ncpuonline=X is probably the sysctl you should use.