cpuid wrapper
notknown
notknown at none.com
Wed Oct 25 04:49:24 PDT 2006
Tomas Lindquist Olsen kirjoitti:
> notknown wrote:
>> Tomas Lindquist Olsen kirjoitti:
>>> notknown wrote:
>>>>
>>>> Vendor string: AuthenticAMD
>>>> Processor string: AMD Sempron(tm)
>>>> Features: MMX SSE 3DNow! 3DNow!+ MMX+
>>>> Multithreading: 0 threads / 0 cores
>>>>
>>>> 0 threads sounds weird, I am on Linux though.
>>>
>>> Weird indeed. The thread and core fields are initialised to one, and
>>> only if HTT is available is the code that set them invoked. As you
>>> dont have HTT on the list this really does not make sense. Can you
>>> try printing the value of those fields before the 'if
>>> (hyperThreading)' in CPUID.this ?
>>
>> Okay,
>>
>> I added these lines right before that if:
>>
>> writefln("flags=", flags);
>> writefln("misc=", misc);
>> writefln("exflags=", exflags);
>> writefln("apic=", apic);
>> writefln("vendorStr=", vendorStr);
>> writefln("processorStr=", processorStr);
>> writefln("maxThreads=", maxThreads);
>> writefln("maxCores=", maxCores);
>> writefln("manufac=", manufac);
>>
>>
>> It prints now:
>>
>> flags=58981375
>> misc=0
>> exflags=3251371007
>> apic=0
>> vendorStr=AuthenticAMD
>> processorStr=AMD Sempron(tm)
>> maxThreads=0
>> maxCores=0
>> manufac=2
>> Vendor string: AuthenticAMD
>> Processor string: AMD Sempron(tm)
>> Features: MMX SSE 3DNow! 3DNow!+ MMX+
>> Multithreading: 0 threads / 0 cores
> This seems like a compiler bug. It's declared:
> uint maxThreads=1;
>
> Am I missing something?
Could it be because you run the code from constructor?
Maybe it is not yet set at that point, just guessing?
More information about the Digitalmars-d-announce
mailing list