X-Recipient: archive-cygwin@delorie.com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:from:to:subject:date:message-id:mime-version
	:content-type; q=dns; s=default; b=KyY4a8E4lOSyms6ZSEQ/jJ5Wgthmb
	I4H8IDqpH2/eQBbDv1/IAMXNl+ehkKLt/uHx9qOj8euvAyFWIaRWohbP5dW6GPly
	2GITECbqygdz9YW/UCrHlfZXx74KGduqJqVeQYgKMdAWHLA72tPKrkuY29BiCGbV
	lAmAkKIr+/ZGOA=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:from:to:subject:date:message-id:mime-version
	:content-type; s=default; bh=XKWLFlGmz/00ckEZA5FLpr2lC4Y=; b=D9v
	GxmJLwl4OUW2KSkhOYS9iZ3h6Ka/et5lEgMJ4gTfhyBcsguhDD8QlTjhqQ6GSb/9
	b+93bh9v3V5OxPaFYggjhZSucuuhYeDWjtcNDQY1IClhgyOskWTmeSn1ccHsIQGJ
	5P5vESzzKS/swbvexFLgMY7SBzkX4dSwaW5yF9HA=
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=blogs, advertised, UD:t, interestingly
X-HELO: mx009.vodafonemail.xion.oxcs.net
From: Achim Gratz <Stromeko@nexgo.de>
To: cygwin@cygwin.com
Subject: More oddities with multiple processor groups
Date: Wed, 11 Apr 2018 20:05:04 +0200
Message-ID: <87in8xwre7.fsf@Rainer.invalid>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-VADE-STATUS: LEGIT


I seem to be the first to try Cygwin on a box that has multiple
processor groups, which seems odd.  Anyway, I've already noticed two
more things that indicate that Cygwin and/or Cygwin applications
currently don't deal well with the situation:

1. Trying to run top, it shows only the first 16 processors and then
exits with an error that "openproc failed".  Interestingly enough it
will keep running despite this error when running under strace (still
only showing the processors from one group, presumably the one that top
got started in).

2. Git will correctly determine that it can use 32 threads for garbage
collection, but it starts them all in the same processor group.

The problem here is that on Linux you don't need to do anything extra to
use any of the advertised logical processors from a single application,
while on Windows you need to first create a thread and set it's affinity
to a different group than where your process was started in, then assign
each new thread an affinity to one of the available groups.  If you
don't do that, all threads will be restricted to the original group.


Some more info on these differences (and already a bit outdated
w.r.t. the way processor groups are formed):

https://software.intel.com/en-us/blogs/2010/12/16/tbb-30-high-end-many-cores-and-windows-processor-groups

If it would be possible for Cygwin to hide that ugliness from Cygwin
applications I think that'd be highly welcome.  Otherwise there might
need to be some option to restrict Cygwin to a single processor group
for some applications to work (correctly).


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

