> Date: Sat, 27 Nov 2021 20:28:39 +0000 > From: Stuart Henderson <s...@spacehopper.org> > > 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.
I don't think ~1000 system calls per second is something you really need to be worried about. > > 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 Best way is probably to skip attaching the CPUs in dev/acpi/acpimadt.c > 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 > >