I have some amd64 machines which are doing 600+ gettimeofday/second
at quiet times and way more when they're busy and I'd quite like to
get them onto userland tsc, however they're dual socket and the skew
between cores on the different sockets is too great. There's no way to
disable a socket in BIOS settings, and physically removing a cpu would
be very inconvenient.
Where would I need to make changes (as a local patch obviously) to skip
a cpu? Can I just avoid doing the cpu_intr_init/cpu_start_secondary/
sched_init_cpu/ncpus++/etc from amd64/cpu.c 638-645 ? i.e. these bits
631 case CPU_ROLE_AP:
632 /*
633 * report on an AP
634 */
635 printf("apid %d (application processor)\n",
caa->cpu_apicid);
636
637 #if defined(MULTIPROCESSOR)
638 cpu_intr_init(ci);
639 cpu_start_secondary(ci);
640 sched_init_cpu(ci);
641 ncpus++;
642 if (ci->ci_flags & CPUF_PRESENT) {
643 ci->ci_next = cpu_info_list->ci_next;
644 cpu_info_list->ci_next = ci;
645 }
646 #else
647 printf("%s: not started\n", sc->sc_dev.dv_xname);
648 #endif