[Bug 47068] New: fixme:ntdll: create_logical_proc_info Only 64 Threads are usable
https://bugs.winehq.org/show_bug.cgi?id=47068 Bug ID: 47068 Summary: fixme:ntdll:create_logical_proc_info Only 64 Threads are usable Product: Wine Version: 4.6 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs(a)winehq.org Reporter: coolx67(a)gmx.at Distribution: --- When running heavy multi threaded programs such as scientific applications or benchmarks it shows that only 64 threads can be used.
002a:fixme:ntdll:create_logical_proc_info Improve CPU info reporting: system supports 96 logical cores, but only 64 supported!
The problem is here https://github.com/wine-mirror/wine/blob/master/dlls/ntdll/nt.c#L1687 I don't know how much time I have to fix this. But if someone would brainstorm this with me. It were my first 5 minutes in the Wine code so please have some understanding. If there would be some mentor who would give me some advice I could probably fix some of the 22k+ FIMES in the code :) Here the WINEDBG from Cinebench https://pastebin.com/FrgSGxGw -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 Robert Walker <bob.mt.wya(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bob.mt.wya(a)gmail.com -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 --- Comment #1 from Roman Stingler <coolx67(a)gmx.at> --- Thanks Bob for stepping by I have further information and thoughts. http://download.microsoft.com/download/a/d/f/adf1347d-08dc-41a4-9084-623b119... What I found in the docs
"Support for systems that have more than 64 logical processors is based on the concept of a processor group, which is a static set of up to 64 logical processors that is treated as a single scheduling entity. Processor groups are numbered starting with 0. Systems with fewer than 64 logical processors always have a single group, Group 0."
In the ntdll code there is the comment " * - ULONG_PTR masks as used in data structures can't hold all cores. Requires splitting * data appropriately into "processor groups". We are hard coding 1. * - Thread affinity code in wineserver and our CPU parsing code here work independently." I was asking me why there should be hardcoded 1 group? when I run cpuz I figured out that it was showng me 2cpu's, 1 with 64 cores and one with 32cores but it's the benchmark is also using just 64 cores. so maybe there are more processor groups in the wineserver code, due to the detection of 2 cpu's, but maybe there is the wrong information or missing variables that cpu-z shows a full processor group (64) and one filled with the rest. Furthermore, in the reading: "The reason for initially limiting all threads to a single group is that 64 processors is more than adequate for the typical application. An application that requires the use of multiple groups so that it can run on more than 64 processors must intentionally determine where to run its threads. The application is responsible for setting thread affinities to the desired groups." Due to the fact that windows is using more than 64 threads in cinebench or cpu-z benchmark, just to name a few, this tools must be able to assign more than 64 threads to the process (haven't looked if it splits into multiple processes which assigns processor groups). When I start cpu-z i get https://pastebin.com/7krSQfzf when benchmarking it's following situation https://postimg.cc/k2HwPdBz tomorrow I will have a look into GetLogicalProcessorInformationEx() and maybe if I have time into the wineserver code In the IRC Thunderbird told me "I see the discussion now.. blackout, reworking the cpu core reporting is not easy. Others poked me about it too recently (e.g. AMD for Rome) among the issues is we need to deal with "groups" as well and rework all the thread priority code up to wineserver it is quite a big effort, I honestly didn't really want to touch our cpu code.. it is a bit fragile to say the least zf, the thread priority stuff is the biggest part. There won't be a match between the "mask" to pthread_set_affinity and the windows code. Right now if I recall correctly they are the same (by luck)" So maybe we should plan a refactor of the cpu code. I would like to plan this and continually add some code or refactor some of it. It would be great if someone more experienced would give me some hints. By now I have spent maybe 3h with the wine code and some tests and therefore I don't have the big picture where to start or what essential parts are missing. It would be really nice to see some sort of brainstorming and a plan how to refactor the whole core of cpu code. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 --- Comment #2 from Roman Stingler <coolx67(a)gmx.at> --- Due to the lack of suitable hardware for most of the devs here, I'm currently trying to implement the necessary functions and macros to support more than 64 threads. Please be patient, I'm completely new here and just started. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 Alex <lxtakc(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lxtakc(a)gmail.com --- Comment #3 from Alex <lxtakc(a)gmail.com> --- We are facing the same issue for our application. We wanted to run benchmark on a 96 core system. Are there any updates? In any case we have the system to run tests. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|fixme:ntdll:create_logical_ |GetLogicalProcessorInformat |proc_info Only 64 Threads |ion() returns inaccurate |are usable |information for systems | |with more than 64 | |processors CC| |z.figura12(a)gmail.com --- Comment #4 from Zebediah Figura <z.figura12(a)gmail.com> --- To be clear, only 64 processors are reported to the application, but as long as it doesn't set affinity masks based on the result, there's nothing preventing it from using all of the processors in the system. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |alon(a)skylinesoft.com --- Comment #5 from Zebediah Figura <z.figura12(a)gmail.com> --- *** Bug 49188 has been marked as a duplicate of this bug. *** -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 sl1pkn07 <sl1pkn07(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sl1pkn07(a)gmail.com --- Comment #6 from sl1pkn07 <sl1pkn07(a)gmail.com> --- Hi i face the same problem, but in my 24c/48th machine Dual E5-2687W on Asus Z10pe-D8 0140:fixme:ntdll:create_logical_proc_info Improve CPU info reporting: system supports 48 logical cores, but only 32 supported! in my case say only support max 32 cores greetings -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 --- Comment #7 from sl1pkn07 <sl1pkn07(a)gmail.com> --- (In reply to sl1pkn07 from comment #6)
Hi
i face the same problem, but in my 24c/48th machine
Dual E5-2687W on Asus Z10pe-D8
0140:fixme:ntdll:create_logical_proc_info Improve CPU info reporting: system supports 48 logical cores, but only 32 supported!
in my case say only support max 32 cores
greetings
as note, using wine --version wine-8.2-110-g4d0d7e49b9b (Staging) greetings -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 rabidcode(a)gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rabidcode(a)gmail.com --- Comment #8 from rabidcode(a)gmail.com --- I'd love to see this get fixed. If hardware for testing and debugging is an issue... I have a dual cpu 128 core machine that I can do testing on. Or if it helps, maybe set up an account with ssh access for devs here who would like to have a go. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 Melroy <melroy(a)melroy.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |melroy(a)melroy.org -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47068 --- Comment #9 from Melroy <melroy(a)melroy.org> --- Same here with my threadripper: 0024:fixme:ntdll:create_logical_proc_info Improve CPU info reporting: system supports 48 logical cores, but only 32 supported! 0120:fixme:ntdll:create_logical_proc_info Improve CPU info reporting: system supports 48 logical cores, but only 32 supported! But I do not think its an error. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla