git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] autodetect number of CPUs by default when using threads

From
Nicolas Pitre <nico@cam.org>
Date
Dec 11, 2008, 20:36 UTC
Message-ID
<alpine.LFD.2.00.0812111524370.14328@xanadu.home>

... and display the actual number of threads used when locally repacking. A remote server still won't tell you how many threads it uses during a fetch though.

Signed-off-by: Nicolas Pitre <nico@cam.org>
---

I've spent quite a while wondering why repacking in one repo was faster than repacking in a clone of that repo on the same machine. So let's display how many threads are actually used.

We have comprehensive test in Makefile to determine if threads are available, just to not use them by default. I think that code has proven itself for long enough now not to let people benefit from it.

diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index cedef52..619e597 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -78,7 +78,7 @@ static int progress = 1;
 static int window = 10;
 static uint32_t pack_size_limit, pack_size_limit_cfg;
 static int depth = 50;
-static int delta_search_threads = 1;
+static int delta_search_threads;
 static int pack_to_stdout;
 static int num_preferred_base;
 static struct progress *progress_state;
@@ -1612,6 +1612,9 @@ static void ll_find_deltas(struct object_entry **list, unsigned list_size,
 		find_deltas(list, &list_size, window, depth, processed);
 		return;
 	}
+	if (progress > pack_to_stdout)
+		fprintf(stderr, "Delta compression using %d threads.\n",
+				delta_search_threads);
 
 	/* Partition the work amongst work threads. */
 	for (i = 0; i < delta_search_threads; i++) {
Next: Junio C Hamano
Message 1 of 11 in “autodetect number of CPUs by default when using threads”
  1. autodetect number of CPUs by default when using threadsNicolas Pitre, Dec 11, 2008
  2. Junio C HamanoDec 11, 2008
  3. Nicolas PitreDec 12, 2008
  4. Jeff KingDec 13, 2008
  5. Nicolas PitreDec 13, 2008
  6. pack-objects: don't use too many threads with few objectsNicolas Pitre, Dec 13, 2008
  7. Jeff KingDec 14, 2008
  8. Mike RalphsonDec 15, 2008
  9. Junio C HamanoDec 16, 2008
  10. Jeff KingDec 16, 2008
  11. Nicolas PitreDec 16, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.