Tiefergehende CPU-Informationen sammeln



  • Hi. 😉

    Ich implementiere gerade für das Wine-Projekt die Windows-Funktion GetLogicalProcessorInformation ( http://msdn.microsoft.com/en-us/library/ms686694(v=vs.85).aspx ).

    So sieht die Struktur aus, die füllen möchte:

    typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
      ULONG_PTR                      ProcessorMask;
      LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
      union {
        struct {
          BYTE Flags;
        } ProcessorCore;
        struct {
          DWORD NodeNumber;
        } NumaNode;
        CACHE_DESCRIPTOR Cache;
        ULONGLONG        Reserved[2];
      };
    } SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
    

    http://msdn.microsoft.com/en-us/library/ms686694(v=vs.85).aspx

    Jetzt bin ich echt am Kämpfen, wie ich die einzelnen Felder füllen kann.
    /proc/cpuinfo hilft immerhin für ProcessorMask (Logische CPUs zählen und Bitmask setzen), aber spätestens bei der Bestimmung von L1/L2/L3 Cache kann ich diesen Weg knicken.
    Gibt es keinen anderen Weg, Linux CPU-Informationen zu entlocken?
    Würde mich wundern wenn Windows da mehr anbietet als das Frickler-OS überhaupt. 😉

    Danke schon mal!
    Grüße,
    Ethon


  • Mod

    Kurzes Googlen verrät mir (und ein Test hat dies bestätigt): Mit dmidecode wirst du mit solchen Infos überhäuft. lshw ist ebenfalls äußerst auskunftsfreudig. Alle leider nur als Superuser zu benutzen.

    Nur für CPU-Cache helfen dir auch die Dateien wie diese:
    /sys/devices/system/cpu/cpu0/cache/index0/size (mit index0 bis index2)
    Oder allgemein mal in diesen Verzeichnissen rumbrowsen für mehr CPU-Details. Diese Dateien zu benutzen ist vermutlich die beste Idee, weil es wirklich das repräsentiert was Linux benutzt (dmidecode ist die BIOS-Information). Außerdem ohne Adminrechte einsehbar und sollte auf jedem System gleich aufgebaut sein.



  • Ethon schrieb:

    Würde mich wundern wenn Windows da mehr anbietet als das Frickler-OS überhaupt. 😉

    ach doch, u.a. sowas wie
    http://www.cpuinfo.de/
    http://www.cpuid.com/softwares/cpu-z.html
    Herstellertreiber und andere Software etc.

    Dann gibt es aber auch noch für alle
    http://de.wikipedia.org/wiki/Wikipedia:Hauptseite
    und
    http://sandpile.org/ia32/cpuid.htm
    (Zur Not, wenn man ein wenig Zeit hat)


Anmelden zum Antworten