Sign in with
Sign up | Sign in
Your question

Bug in Gigabyte motherboards (and maybe other brands)

February 5, 2013 5:05:01 AM

Hi!
I think i have found bug in Gigabyte motherboards (and maybe other motherboard brands) when using AMD Piledriver CPUs.
I have Gigabyte GA-990FXA-UD3 rev 1.2 with latest BIOS and AMD FX 8350 and this motherboard report to the OS incorrect mapping of the logical CPU to the physical CPU, it's also affects to cache map:

* - means core
Physical Processor - means CPU module

  1. Coreinfo v3.2 - Dump information on system CPU and memory topology
  2. Copyright (C) 2008-2012 Mark Russinovich
  3. Sysinternals - www.sysinternals.com
  4.  
  5. Logical to Physical Processor Map:
  6. *------* Physical Processor 0 (Hyperthreaded)
  7. -*-*---- Physical Processor 1 (Hyperthreaded)
  8. --*-*--- Physical Processor 2 (Hyperthreaded)
  9. -----**- Physical Processor 3 (Hyperthreaded)
  10.  
  11. Logical Processor to Cache Map:
  12. *------- Data Cache 0, Level 1, 16 KB, Assoc 4, LineSize 64
  13. *------* Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
  14. *------* Unified Cache 0, Level 2, 2 MB, Assoc 16, LineSize 64
  15. ******** Unified Cache 1, Level 3, 8 MB, Assoc 64, LineSize 64
  16. -*------ Data Cache 1, Level 1, 16 KB, Assoc 4, LineSize 64
  17. -*-*---- Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
  18. -*-*---- Unified Cache 2, Level 2, 2 MB, Assoc 16, LineSize 64
  19. --*----- Data Cache 2, Level 1, 16 KB, Assoc 4, LineSize 64
  20. --*-*--- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
  21. --*-*--- Unified Cache 3, Level 2, 2 MB, Assoc 16, LineSize 64
  22. ---*---- Data Cache 3, Level 1, 16 KB, Assoc 4, LineSize 64
  23. ----*--- Data Cache 4, Level 1, 16 KB, Assoc 4, LineSize 64
  24. -----*-- Data Cache 5, Level 1, 16 KB, Assoc 4, LineSize 64
  25. -----**- Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
  26. -----**- Unified Cache 4, Level 2, 2 MB, Assoc 16, LineSize 64
  27. ------*- Data Cache 6, Level 1, 16 KB, Assoc 4, LineSize 64
  28. -------* Data Cache 7, Level 1, 16 KB, Assoc 4, LineSize 64


That map means that:
Module 0 consist of core 1 and 8
Module 1 consist of core 2 and 4
Module 2 consist of core 3 and 5
Module 3 consist of core 6 and 7

But when you look on CPU schema you will see that this map is incorrect:

By looking on this schema you clearly see that:
Module 0 consist of core 1 and 2
Module 1 consist of core 3 and 4
Module 2 consist of core 5 and 6
Module 3 consist of core 7 and 8

This incorrect maping lead to incorrect working of the OS scheduler and performance drops because of it.
And what's more intersting, on every reboot i have different mapping! When the CPU stays same as before.

I also asks some ofter people to give me info about their systems and what i get:

Microsoft Windows 8 Enterprise x64, Gigabyte GA-970A-UD3 (rev. 1.0/1.1) BIOS: F8a (also incorrect map)


ASUS SABERTOOTH 990FX R2.0 and FX 8320 (correct map, but incorrect cache map)
  1. Coreinfo v3.2 - Dump information on system CPU and memory topology
  2. Copyright (C) 2008-2012 Mark Russinovich
  3. Sysinternals - http://www.sysinternals.com
  4.  
  5. Logical to Physical Processor Map:
  6. **------ Physical Processor 0 (Hyperthreaded)
  7. --**---- Physical Processor 1 (Hyperthreaded)
  8. ----**-- Physical Processor 2 (Hyperthreaded)
  9. ------** Physical Processor 3 (Hyperthreaded)
  10.  
  11. Logical Processor to Cache Map:
  12. *------- Data Cache 0, Level 1, 16 KB, Assoc 4, LineSize 64
  13. *------- Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
  14. *------- Unified Cache 0, Level 2, 2 MB, Assoc 16, LineSize 64
  15. -*------ Data Cache 1, Level 1, 16 KB, Assoc 4, LineSize 64
  16. -*------ Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
  17. -*------ Unified Cache 1, Level 2, 2 MB, Assoc 16, LineSize 64
  18. --*----- Data Cache 2, Level 1, 16 KB, Assoc 4, LineSize 64
  19. --*----- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
  20. --*----- Unified Cache 2, Level 2, 2 MB, Assoc 16, LineSize 64
  21. ---*---- Data Cache 3, Level 1, 16 KB, Assoc 4, LineSize 64
  22. ---*---- Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
  23. ---*---- Unified Cache 3, Level 2, 2 MB, Assoc 16, LineSize 64
  24. ----*--- Data Cache 4, Level 1, 16 KB, Assoc 4, LineSize 64
  25. ----*--- Instruction Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
  26. ----*--- Unified Cache 4, Level 2, 2 MB, Assoc 16, LineSize 64
  27. -----*-- Data Cache 5, Level 1, 16 KB, Assoc 4, LineSize 64
  28. -----*-- Instruction Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
  29. -----*-- Unified Cache 5, Level 2, 2 MB, Assoc 16, LineSize 64
  30. ------*- Data Cache 6, Level 1, 16 KB, Assoc 4, LineSize 64
  31. ------*- Instruction Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
  32. ------*- Unified Cache 6, Level 2, 2 MB, Assoc 16, LineSize 64
  33. -------* Data Cache 7, Level 1, 16 KB, Assoc 4, LineSize 64
  34. -------* Instruction Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
  35. -------* Unified Cache 7, Level 2, 2 MB, Assoc 16, LineSize 64
  36. ******** Unified Cache 8, Level 3, 8 MB, Assoc 1, LineSize 64


ASUS M5A88M-Evo and AMD FX 8320 (same as above)
  1. Logical to Physical Processor Map:
  2. **------ Physical Processor 0 (Hyperthreaded)
  3. --**---- Physical Processor 1 (Hyperthreaded)
  4. ----**-- Physical Processor 2 (Hyperthreaded)
  5. ------** Physical Processor 3 (Hyperthreaded)
  6.  
  7.  
  8. Logical Processor to Cache Map:
  9. *------- Data Cache 0, Level 1, 16 KB, Assoc 4, LineSize 64
  10. *------- Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
  11. *------- Unified Cache 0, Level 2, 2 MB, Assoc 16, LineSize 64
  12. -*------ Data Cache 1, Level 1, 16 KB, Assoc 4, LineSize 64
  13. -*------ Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
  14. -*------ Unified Cache 1, Level 2, 2 MB, Assoc 16, LineSize 64
  15. --*----- Data Cache 2, Level 1, 16 KB, Assoc 4, LineSize 64
  16. --*----- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
  17. --*----- Unified Cache 2, Level 2, 2 MB, Assoc 16, LineSize 64
  18. ---*---- Data Cache 3, Level 1, 16 KB, Assoc 4, LineSize 64
  19. ---*---- Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
  20. ---*---- Unified Cache 3, Level 2, 2 MB, Assoc 16, LineSize 64
  21. ----*--- Data Cache 4, Level 1, 16 KB, Assoc 4, LineSize 64
  22. ----*--- Instruction Cache 4, Level 1, 64 KB, Assoc 2, LineSize 64
  23. ----*--- Unified Cache 4, Level 2, 2 MB, Assoc 16, LineSize 64
  24. -----*-- Data Cache 5, Level 1, 16 KB, Assoc 4, LineSize 64
  25. -----*-- Instruction Cache 5, Level 1, 64 KB, Assoc 2, LineSize 64
  26. -----*-- Unified Cache 5, Level 2, 2 MB, Assoc 16, LineSize 64
  27. ------*- Data Cache 6, Level 1, 16 KB, Assoc 4, LineSize 64
  28. ------*- Instruction Cache 6, Level 1, 64 KB, Assoc 2, LineSize 64
  29. ------*- Unified Cache 6, Level 2, 2 MB, Assoc 16, LineSize 64
  30. -------* Data Cache 7, Level 1, 16 KB, Assoc 4, LineSize 64
  31. -------* Instruction Cache 7, Level 1, 64 KB, Assoc 2, LineSize 64
  32. -------* Unified Cache 7, Level 2, 2 MB, Assoc 16, LineSize 64
  33. ******** Unified Cache 8, Level 3, 8 MB, Assoc 1, LineSize 64


And for example system with AMD FX8150 and ASUS M5A88-V EVO with correct CPU and cache map.
  1. Coreinfo v3.2 - Dump information on system CPU and memory topology
  2. Copyright (C) 2008-2012 Mark Russinovich
  3. Sysinternals - www.sysinternals.com
  4.  
  5. Logical to Physical Processor Map:
  6. **------ Physical Processor 0 (Hyperthreaded)
  7. --**---- Physical Processor 1 (Hyperthreaded)
  8. ----**-- Physical Processor 2 (Hyperthreaded)
  9. ------** Physical Processor 3 (Hyperthreaded)
  10.  
  11. Logical Processor to Cache Map:
  12. *------- Data Cache 0, Level 1, 16 KB, Assoc 4, LineSize 64
  13. **------ Instruction Cache 0, Level 1, 64 KB, Assoc 2, LineSize 64
  14. **------ Unified Cache 0, Level 2, 2 MB, Assoc 16, LineSize 64
  15. ******** Unified Cache 1, Level 3, 8 MB, Assoc 64, LineSize 64
  16. -*------ Data Cache 1, Level 1, 16 KB, Assoc 4, LineSize 64
  17. --*----- Data Cache 2, Level 1, 16 KB, Assoc 4, LineSize 64
  18. --**---- Instruction Cache 1, Level 1, 64 KB, Assoc 2, LineSize 64
  19. --**---- Unified Cache 2, Level 2, 2 MB, Assoc 16, LineSize 64
  20. ---*---- Data Cache 3, Level 1, 16 KB, Assoc 4, LineSize 64
  21. ----*--- Data Cache 4, Level 1, 16 KB, Assoc 4, LineSize 64
  22. ----**-- Instruction Cache 2, Level 1, 64 KB, Assoc 2, LineSize 64
  23. ----**-- Unified Cache 3, Level 2, 2 MB, Assoc 16, LineSize 64
  24. -----*-- Data Cache 5, Level 1, 16 KB, Assoc 4, LineSize 64
  25. ------*- Data Cache 6, Level 1, 16 KB, Assoc 4, LineSize 64
  26. ------** Instruction Cache 3, Level 1, 64 KB, Assoc 2, LineSize 64
  27. ------** Unified Cache 4, Level 2, 2 MB, Assoc 16, LineSize 64
  28. -------* Data Cache 7, Level 1, 16 KB, Assoc 4, LineSize 64


After seeing all this maps that made me wonder even more. Why same CPU have different map on different motherboards?
Thats why i need your help. Can you post you config info (motherboard model, CPU, BIOS version and OS) by running this tool with this arguments -c -l I think it will be very intersting to compare maps of same CPU on different boards (maps must be same on the every board, as you already understand). Intel users can participate in this too.
!