All in-tree consumers have been converted to callout(9).
Will need a __FreeBSD_version bump probably.
It is not clear if we want to really treat the soft clock thread on CPU 0 different going forward. If not, we would retire cc_default_cpu using PCPU_GET(cpuid) instead and merge these two tunable to be a single tunable perhaps.
For this commit I should drop the XXX, however, there is an open question I think perhaps as a followup if we should not force timeouts onto CPU 0 but just let them use whatever CPU they are created on as the default?
This looks very much as a material for other commit ('remove timeout_t typedef'), but again it raises a question why remove this useful typedef.
I do not see much sense in cc_default_cpu. We use curcpu for callouts otherwise, and I believe we should just extend the practice there.
Maybe throw a reference in a .Sh HISTORY section? Not a big deal.
There may be some power saving benefit on (relatively common) 2-4? 8? core mobile hardware of coalescing callouts onto a single core, because you can wake fewer cores less often.
On the other hand, on big machines with a lot of callouts you can make a big queue on cpu 0. I might coalesce nonspecific callouts to cpu % 4 or cpu % 8 to sort of meet halfway? I haven't thought that through thoroughly.