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) */

Reply via email to