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

Reply via email to