> 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
> 
> 

Reply via email to