On 2025/05/08 10:33, Kirill A. Korinsky wrote: > Klemens, Benoit, > > rovert@ had noticed that git out of the box uses as many threads as the > system has CUPs. claudio@ had pointed that it is quite bad idea and use an > example that ld.lld with -Wl,--threads=1 reduces the configure time by 15% > and system time by 40%. > > So, here the diff which replaces 0 threads to 1 by default where it isn't 1 > already, and disabled try to use threads in name-hashing. > > Are you ok with it?
Certainly using the full number of online CPUs is a poor choice on OpenBSD, especially on systems with a large number of cores. FWIW I showed a shorter diff when this was mentioned (patch online_cpus to cap, I picked 4 out of the air, I do think there's some benefit to >1 in many cases but I didn't do a comparison) - that would also cover anywhere else that uses online_cpus (now and future). Index: patches/patch-thread-utils_c =================================================================== RCS file: /cvs/ports/devel/git/patches/patch-thread-utils_c,v diff -u -p -r1.2 patch-thread-utils_c --- patches/patch-thread-utils_c 11 Mar 2022 18:50:06 -0000 1.2 +++ patches/patch-thread-utils_c 8 May 2025 09:33:12 -0000 @@ -3,20 +3,22 @@ Use sysconf(_SC_NPROCESSORS_ONLN) to pro Index: thread-utils.c --- thread-utils.c.orig +++ thread-utils.c -@@ -25,9 +25,10 @@ int online_cpus(void) +@@ -24,10 +24,12 @@ int online_cpus(void) + return 1; #else #ifdef _SC_NPROCESSORS_ONLN ++#define MIN(a,b) (((a)<(b))?(a):(b)) long ncpus; -#endif -#ifdef GIT_WINDOWS_NATIVE + if ((ncpus = (long)sysconf(_SC_NPROCESSORS_ONLN)) > 0) -+ return (int)ncpus; ++ return MIN((int)ncpus, 4); +#elif defined(GIT_WINDOWS_NATIVE) SYSTEM_INFO info; GetSystemInfo(&info); -@@ -55,11 +56,6 @@ int online_cpus(void) +@@ -55,11 +57,6 @@ int online_cpus(void) if (!sysctl(mib, 2, &cpucount, &len, NULL, 0)) return cpucount; #endif /* defined(HAVE_BSD_SYSCTL) && defined(HW_NCPU) */