All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Etienne Buira <etienne.buira@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/2] Remove spurious 'no threads support' warnings
Date: Mon, 13 Oct 2014 12:54:52 -0700	[thread overview]
Message-ID: <xmqqbnpf3fub.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <8d057560e40fb5edaa3a32f204718c5e561a207a.1413038338.git.etienne.buira@gmail.com> (Etienne Buira's message of "Sat, 11 Oct 2014 16:46:27 +0200")

Etienne Buira <etienne.buira@gmail.com> writes:

> Threads count being defaulted to 0 (autodetect), and --disable-pthreads
> build checking that thread count==1, there were spurious warnings about
> threads being ignored, despite not specified on command line/conf.
>
> Fixes tests 5521 and 5526 that were broken in --disable-pthreads builds
> because of those warnings.
>
> Signed-off-by: Etienne Buira <etienne.buira@gmail.com>
> ---

I am not sure if this is the right fix.

Shouldn't a --threads=0 from the command line (when there is a
pack.threads configuration hardcoding some number to override it)
give a chance to the auto detection codepath to ask online_cpus()
and receive 1 on NO_PTHREADS build to avoid triggering the same
warning you are squelching with this patch?

That is, something like this instead, perhaps?

-- >8 --
Subject: [PATCH] pack-objects: set number of threads before checking and warning

Under NO_PTHREADS build, we warn when delta_search_threads is not
set to 1, because that is the only sensible value on a single
threaded build.

However, the auto detection that kicks in when that variable is set
to 0 (e.g. there is no configuration variable or command line option,
or an explicit --threads=0 is given from the command line to override
the pack.threads configuration to force auto-detection) was not done
before the condition to issue this warning was tested.

Move the auto-detection code and place it at an appropriate spot.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/pack-objects.c | 6 ++++--
 thread-utils.h         | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index d391934..a715237 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -1972,8 +1972,6 @@ static void ll_find_deltas(struct object_entry **list, unsigned list_size,
 
 	init_threaded_search();
 
-	if (!delta_search_threads)	/* --threads=0 means autodetect */
-		delta_search_threads = online_cpus();
 	if (delta_search_threads <= 1) {
 		find_deltas(list, &list_size, window, depth, processed);
 		cleanup_threaded_search();
@@ -2685,6 +2683,10 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
 		pack_compression_level = Z_DEFAULT_COMPRESSION;
 	else if (pack_compression_level < 0 || pack_compression_level > Z_BEST_COMPRESSION)
 		die("bad pack compression level %d", pack_compression_level);
+
+	if (!delta_search_threads)	/* --threads=0 means autodetect */
+		delta_search_threads = online_cpus();
+
 #ifdef NO_PTHREADS
 	if (delta_search_threads != 1)
 		warning("no threads support, ignoring --threads");
diff --git a/thread-utils.h b/thread-utils.h
index 6fb98c3..d9a769d 100644
--- a/thread-utils.h
+++ b/thread-utils.h
@@ -7,5 +7,9 @@
 extern int online_cpus(void);
 extern int init_recursive_mutex(pthread_mutex_t*);
 
+#else
+
+#define online_cpus() 1
+
 #endif
 #endif /* THREAD_COMPAT_H */
-- 
2.1.2-468-g1a77c5b

  reply	other threads:[~2014-10-13 19:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-11 14:42 [PATCH 1/2] fix compilation with --disable-pthreads Etienne Buira
2014-10-11 14:46 ` [PATCH 2/2] Remove spurious 'no threads support' warnings Etienne Buira
2014-10-13 19:54   ` Junio C Hamano [this message]
2014-10-14 14:46     ` Etienne Buira
2014-10-13 19:10 ` [PATCH 1/2] fix compilation with --disable-pthreads Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqbnpf3fub.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=etienne.buira@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.