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