Opened 5 years ago
Closed 3 years ago
#5412 closed defect (fixed)
HardwareDetection - AMD processor - ACPI SRAT table contains unknown APIC IDs
Reported by: | Drain | Owned by: | Imarok |
---|---|---|---|
Priority: | Release Blocker | Milestone: | Alpha 24 |
Component: | Core engine | Keywords: | |
Cc: | Patch: | Phab:D1789 |
Description (last modified by )
I am on Windows 7 and when I want to execute 0ad, I get an error message containing the following: (I will also attach the crashlog to this ticket.)
Function call failed: return value was -100010 (Logic error in code) Location: apic.cpp:121 (IndexFromApicId) Call stack: IndexFromApicId (apic.cpp:121) apicIds = 0x014DBA64 -> [8] { 0 (0x00), 1 (0x01), 2 (0x02), 3 (0x03), 8 (0x08), 9 (0x09), 10 (0x0A), 11 (0x0B) } apicId = 4 (0x04) ProcessorFromApicId (apic.cpp:131) apicId = 4 (0x04) ExtractProximityDomainsFromSRAT (wnuma.cpp:236) srat = 0x00000000 proximityDomainNumber = 0 (0x00000000) InitTopology (wnuma.cpp:277) proximityDomains = (unsupported map<size_t,ProximityDomain >) ModuleInit (module_init.cpp:47) initState = 0x014D9B0C -> 4294867266 (0xFFFE7942) init = 0x013B14E0 -> (InitTopology) numa_NumNodes (wnuma.cpp:297) RunHardwareDetection (hwdetect.cpp:313) LINE_202_ = m_t0 = 0.963197 (0x3FEED2826A286D36) m_description = 0x0145EB84 -> "RunHardwareDetection" rq = mContext = 0x0639CA40 -> (JSContext) global = { (js::ValueOperations<JS::Rooted<JS::Value> >) } stack = 0x81818080 -> (unavailable - internal error) prev = 0x83838282 -> (js::RootedBase<void *>) stack = (unavailable - internal error) prev = (unavailable - internal error) ptr = (unavailable - internal error) ptr = data = asBits = -8680821844409482108 (0x8787868685858484) s = { payload = i32 = 2240119940 (0x85858484) u32 = 2240119940 (0x85858484) boo = 2240119940 (0x85858484) str = 0x85858484 -> (JSString) sym = 0x85858484 (see above) obj = 0x85858484 (see above) cell = 0x85858484 (see above) ptr = 0x85858484 (see above) why = -2054847356 word = 2240119940 (0x85858484) uintptr = 2240119940 (0x85858484) , tag = -2021161338 } asDouble = -2.17437e-272 (0x8787868685858484) asPtr = 0x85858484 (see above) caps3 = 2139061886 (0x7F7F7E7E) un = sysname = "Win7" nodename = "STEFAN-PC" release = "SP 1" version = "6.1.7601" machine = "x86" file = m_Buffer = (shared_ptr<unsigned char>) m_BufferSize = 12383 (0x0000305F) code = (unsupported basic_string<char,char_traits<char> >) tmpVal = { (js::ValueOperations<JS::Rooted<JS::Value> >) } stack = 0x8D8D8C8C -> (unavailable - internal error) prev = 0x8F8F8E8E -> (js::RootedBase<void *>) stack = (unavailable - internal error) prev = (unavailable - internal error) ptr = (unavailable - internal error) ptr = data = asBits = -7812739770352562032 (0x9393929291919090) s = { payload = i32 = 2442236048 (0x91919090) u32 = 2442236048 (0x91919090) boo = 2442236048 (0x91919090) str = 0x91919090 -> (JSString) sym = 0x91919090 (see above) obj = 0x91919090 (see above) cell = 0x91919090 (see above) ptr = 0x91919090 (see above) why = -1852731248 word = 2442236048 (0x91919090) uintptr = 2442236048 (0x91919090) , tag = -1819045230 } asDouble = -2.27107e-214 (0x9393929291919090) asPtr = 0x91919090 (see above) caps0 = 2105375868 (0x7D7D7C7C) scriptInterface = m_CxPrivate = { pScriptInterface = 0x0028E850 -> m_CxPrivate = { pScriptInterface = 0x0028E850 (see above), pCBData = 0x97979696 } m = (unique_ptr<ScriptInterface_impl,default_delete<ScriptInterface_impl> >) m_rng = 0x9B9B9A9A -> lcf = _x = (unavailable - internal error) m_CustomObjectTypes = (unsupported map<basic_string<char,char_traits<char> >,ScriptInterface::CustomType >) , pCBData = 0x97979696 (see above) } m = (unique_ptr<ScriptInterface_impl,default_delete<ScriptInterface_impl> >) m_rng = 0x9B9B9A9A (see above) m_CustomObjectTypes = (unsupported map<basic_string<char,char_traits<char> >,ScriptInterface::CustomType >) settings = { (js::ValueOperations<JS::Rooted<JS::Value> >) } stack = 0x0639CA74 -> 0x0028E86C -> (js::RootedBase<void *>) stack = 0x0639CA74 (see above) prev = 0x00000000 ptr = 0x05461A60 prev = 0x00000000 ptr = data = asBits = -515307595168 (0xFFFFFF8805461A60) s = { payload = i32 = 88480352 (0x05461A60) u32 = 88480352 (0x05461A60) boo = 88480352 (0x05461A60) str = 0x05461A60 (see above) sym = 0x05461A60 (see above) obj = 0x05461A60 (see above) cell = 0x05461A60 (see above) ptr = 0x05461A60 (see above) why = 88480352 word = 88480352 (0x05461A60) uintptr = 88480352 (0x05461A60) , tag = -120 } asDouble = -1.#QNAN (0xFFFFFF8805461A60) asPtr = 0x05461A60 (see above) caps2 = 2307491976 (0x89898888) caps1 = 2341177994 (0x8B8B8A8A) InitGraphics (gamesetup.cpp:1004) args = (unavailable) flags = (unavailable) installedMods = (unavailable) profilerGPUEnable = (bool)0x65 setup_vmode = (bool)0x77 context = [2048] 0 (0x00) 80 (0x50) 4 (0x04) 0 (0x00) 0 (0x00) 240 (0xF0) 255 (0xFF) 118 (0x76) 240 (0xF0) 0 (0x00) 252 (0xFC) 118 (0x76) 0 (0x00) 0 (0x00) 0 (0x00) 0 (0x00) ... buf = [500] 27694 29934 61809 29935 740 0 5788 0 4388 0 62464 40 ('(') ... context = [2048] 0 (0x00) 80 (0x50) 4 (0x04) 0 (0x00) 0 (0x00) 240 (0xF0) 255 (0xFF) 118 (0x76) 240 (0xF0) 0 (0x00) 252 (0xFC) 118 (0x76) 0 (0x00) 0 (0x00) 0 (0x00) 0 (0x00) ... context = [2048] 0 (0x00) 80 (0x50) 4 (0x04) 0 (0x00) 0 (0x00) 240 (0xF0) 255 (0xFF) 118 (0x76) 240 (0xF0) 0 (0x00) 252 (0xFC) 118 (0x76) 0 (0x00) 0 (0x00) 0 (0x00) 0 (0x00) ... rq = mContext = 0x000007A0 setup_gui = (bool)0x20 data = { (js::ValueOperations<JS::Rooted<JS::Value> >) } stack = 0x00000000 prev = 0x00000000 ptr = data = asBits = 1996226560 (0x0000000076FC0000) s = { payload = i32 = 1996226560 (0x76FC0000) u32 = 1996226560 (0x76FC0000) boo = 1996226560 (0x76FC0000) str = 0x76FC0000 -> (JSString) sym = 0x76FC0000 (see above) obj = 0x76FC0000 (see above) cell = 0x76FC0000 (see above) ptr = 0x76FC0000 (see above) why = 1996226560 word = 1996226560 (0x76FC0000) uintptr = 1996226560 (0x76FC0000) , tag = 0 } asDouble = 9.86267e-315 (0x0000000076FC0000) asPtr = 0x76FC0000 (see above) scriptInterface = (shared_ptr<ScriptInterface>) e = 0x00000001 RunGameOrAtlas (main.cpp:632) argc = 1 (0x00000001) argv = 0x002B0008 -> 0x002B0028 -> "C:\Users\Stefan\AppData\Local\0 A.D. alpha\binaries\system\pyrogenesis.exe" replayFile = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 47 ('/') modsToInstall = (unsupported vector<Path >) scriptEngine = (Singleton<ScriptEngine>) m_Runtimes = (unsupported list<JSRuntime const * >) args = m_Args = (unsupported vector<pair<CStr8,CStr8> >) m_Arg0 = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 92 ('\') m_ArgsWithoutName = (unsupported vector<CStr8 >) res = 2.86287e-010 (0x3DF3AC6964BA1217) modPath = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 60713 paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 2047 m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 16385 m_gameData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 m_userData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 13319 m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 15232 m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 19712 m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 312 replay = m_Stream = 0x3DF3AC69 -> (basic_istream<char,char_traits<char> >) mod = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 31792 zip = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 mods = (unsupported vector<CStr8 >) paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 13409 m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 11 m_gameData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 15300 m_userData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 56488 m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 63336 m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 63364 m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 builder = m_VFS = (shared_ptr<IVFS>) m_Files = (unsupported vector<Path >) m_TempDir = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 52533 m_NumBaseMods = 6095160 (0x005D0138) installedMods = (unsupported vector<CStr8 >) installer = m_VFS = (shared_ptr<IVFS>) m_ModsDir = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 m_TempDir = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 m_CacheDir = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 160 m_InstalledMods = (unsupported vector<CStr8 >) paths = m_root = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 13409 m_rdata = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 11 m_gameData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 15300 m_userData = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 56488 m_config = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 63336 m_cache = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 63364 m_logs = path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >) separator = 0 SDL_main (main.cpp:680) argc = 1 (0x00000001) argv = 0x002B0008 (see above) main_utf8 (sdl_windows_main.c:126) argc = 1 (0x00000001) argv = 0x002B0008 (see above) wmain (sdl_windows_main.c:151) argc = 1 (0x00000001) wargv = 0x0062BCA8 -> 0x0062BCB0 -> 67 (0x0043) wenvp = 0x0062D510 -> 14800 (0x39D0) argv = 0x002B0008 (see above) retval = 0 (0x00000000) i = 1 (0x00000001) CallStartupWithinTryBlock (wseh.cpp:364) ret = 0 (0x00000000) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (No error reported here) OS error = 0 (no error code was set)
Attachments (2)
Change History (16)
by , 5 years ago
Attachment: | crashlog.txt added |
---|
follow-up: 3 comment:1 by , 5 years ago
follow-up: 4 comment:2 by , 5 years ago
Hi, I have small questions for you. How many processors does your computer have and if are all allowed to be used by game.
Thank you.
comment:3 by , 5 years ago
Replying to stanislas69:
Hello and thanks for the report. Can you try disabling GLSL and Postprocessing in the game options to see if that fixes it ? Thanks in advance.
Thank you for your answer. I am not sure how I disable those settings, since I can't access the game options. (the error message pops up directly after executing pryogenesis.exe) I found the file "default.cfg" and the following settings are set:
preferglsl = false postproc = false
So I assume the settings you mentioned are disabled.
comment:4 by , 5 years ago
Replying to Angen:
Hi, I have small questions for you. How many processors does your computer have and if are all allowed to be used by game.
Thank you.
My PC has 4 processors and the game is allowed to use all.
follow-up: 6 comment:5 by , 5 years ago
Hi Drain! Thanks for the report and for taking the time to give us more information :-)
There is an inconsistency between the list of APIC IDs of your processors and the SRAT table: the latter contains an affinity for a processor whose APIC ID is not known.
Could you give us the cpuid output on your system? On Windows, it looks like you can use CPU-Z. Start it, then click on the bottom of the window on Tools > Save Report as .TXT, and please share the report here. Thanks in advance!
comment:6 by , 5 years ago
Replying to Itms:
Hi Drain! Thanks for the report and for taking the time to give us more information :-)
There is an inconsistency between the list of APIC IDs of your processors and the SRAT table: the latter contains an affinity for a processor whose APIC ID is not known.
Could you give us the cpuid output on your system? On Windows, it looks like you can use CPU-Z. Start it, then click on the bottom of the window on Tools > Save Report as .TXT, and please share the report here. Thanks in advance!
I used CPU-Z to get the info, but there is too much additional info in the file I'd rather not share. Is this what you are looking for?
Socket 1 ID = 0 Number of cores 4 (max 4) Number of threads 8 (max 8) Name AMD Ryzen 5 1500X Codename Summit Ridge Specification AMD Ryzen 5 1500X Quad-Core Processor Package Socket AM4 (1331) CPUID F.1.1 Extended CPUID 17.1 Core Stepping ZP-B1 Technology 14 nm TDP Limit 65.0 Watts Core Speed 1546.9 MHz Multiplier x Bus Speed 15.5 x 99.8 MHz Base frequency (cores) 99.8 MHz Base frequency (ext.) 99.8 MHz Instructions sets MMX (+), SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4A, x86-64, AMD-V, AES, AVX, AVX2, FMA3, SHA Microcode Revision 0x8001105 L1 Data cache 4 x 32 KBytes, 8-way set associative, 64-byte line size L1 Instruction cache 4 x 64 KBytes, 4-way set associative, 64-byte line size L2 cache 4 x 512 KBytes, 8-way set associative, 64-byte line size L3 cache 2 x 8 MBytes, 16-way set associative, 64-byte line size Max CPUID level 0000000Dh Max CPUID ext. level 8000001Fh Cache descriptor Level 1, D, 32 KB, 2 thread(s) Cache descriptor Level 1, I, 64 KB, 2 thread(s) Cache descriptor Level 2, U, 512 KB, 2 thread(s) Cache descriptor Level 3, U, 8 MB, 4 thread(s) FID/VID Control yes # of P-States 3 P-State FID 0x88C - VID 0x32 (35.00x - 1.237 V) P-State FID 0x878 - VID 0x40 (30.00x - 1.150 V) P-State FID 0x107C - VID 0x6A (15.50x - 0.887 V)
comment:7 by , 5 years ago
Milestone: | Backlog → Work In Progress |
---|---|
Patch: | → Phab:D1789 |
Summary: | Crash at the start of the game (Windows 7) → HardwareDetection - AMD processor - ACPI SRAT table contains unknown APIC IDs |
Hello, and thanks for the extra information! Indeed, it seems like neither 0 A.D. nor cpuid are allowed to use some of your logical processors. Core IDs 2 and 3 don't appear, and they would get the APIC IDs 4 and 5, and 6 and 7, respectively. The SRAT contains affinity information for those IDs (well, at least number 4).
So I believe the sensible thing to do would just be to ignore the affinity information for the processors that 0 A.D. doesn't know about. I have written a short patch for this.
Would you have interest in getting the development version of the game and testing the patch for us? It would be greatly appreciated. The instructions are in BuildInstructions. Once you have the development version built, you can apply the attached patch with TortoiseSVN "Apply patch", and rebuild the game.
Don't hesitate to ask if you have questions :)
by , 5 years ago
Attachment: | D1789.diff added |
---|
comment:8 by , 5 years ago
Description: | modified (diff) |
---|
follow-up: 11 comment:9 by , 3 years ago
Priority: | Should Have → Release Blocker |
---|
The patch is needed to be able to start the game on Threadripper CPUs.
follow-up: 12 comment:11 by , 3 years ago
Replying to OptimusShepard:
The patch is needed to be able to start the game on Threadripper CPUs.
Why so you talk about Threadripper CPUs? Afaics this bug happened with a AMD Ryzen 5 1500X, right?
follow-up: 13 comment:12 by , 3 years ago
Replying to Imarok:
Replying to OptimusShepard:
The patch is needed to be able to start the game on Threadripper CPUs.
Why so you talk about Threadripper CPUs? Afaics this bug happened with a AMD Ryzen 5 1500X, right?
https://wildfiregames.com/forum/topic/28367-amd-ryzen-threadripper-user-read-before-posting/
https://wildfiregames.com/forum/topic/28771-problems-with-ryzon-tr-3960x-256gb-ram/
comment:13 by , 3 years ago
Replying to OptimusShepard:
Replying to Imarok:
Replying to OptimusShepard:
The patch is needed to be able to start the game on Threadripper CPUs.
Why so you talk about Threadripper CPUs? Afaics this bug happened with a AMD Ryzen 5 1500X, right?
https://wildfiregames.com/forum/topic/28367-amd-ryzen-threadripper-user-read-before-posting/
https://wildfiregames.com/forum/topic/28771-problems-with-ryzon-tr-3960x-256gb-ram/
Former sounds more like #4360 while latter looks like a new bug.
Hello and thanks for the report. Can you try disabling GLSL and Postprocessing in the game options to see if that fixes it ? Thanks in advance.