[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2015-06-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3798

Andrei Alexandrescu  changed:

   What|Removed |Added

Version|2.040   |D2

--


[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2010-03-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3798


Don  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #5 from Don  2010-03-10 20:49:23 PST ---
Fixed DMD2.041.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2010-02-13 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3798



--- Comment #4 from Don  2010-02-13 12:49:21 PST ---
(In reply to comment #3)
> > Please add ++level;  as the last line of that loop, so that it ends as:
> > ++level;
> > } while (a!=0 || b!=0);
> > 
> > Does that fix it? I don't have access to a Core i7, so I'm flying blind 
> > based
> > on the Intel manuals.
> 
> Yep, that fixes it. Please fold into druntime for the next release.

Excellent! Druntime svn 245.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2010-02-13 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3798



--- Comment #3 from David Simcha  2010-02-13 07:54:38 PST ---
> Please add ++level;  as the last line of that loop, so that it ends as:
> ++level;
> } while (a!=0 || b!=0);
> 
> Does that fix it? I don't have access to a Core i7, so I'm flying blind based
> on the Intel manuals.

Yep, that fixes it. Please fold into druntime for the next release.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2010-02-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3798


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #2 from Don  2010-02-12 20:35:48 PST ---
(In reply to comment #1)
> The problem appears to be that the termination condition for the following 
> loop
> never becomes true:
> 
> do {
> asm {
> mov EAX, 0x0B;
> mov ECX, level;
> cpuid;
> mov a, EAX;
> mov b, EAX;
> mov c, ECX;
> mov d, EDX;
> }
> if (b!=0) {
>// I'm not sure about this. The docs state that there
>// are 2 hyperthreads per core if HT is factory enabled.
> if (level==0) maxThreads = b & 0x;
> else if (level==1) maxCores = b & 0x;
> 
> }
> } while (a!=0 || b!=0);

Please add ++level;  as the last line of that loop, so that it ends as:
++level;
} while (a!=0 || b!=0);

Does that fix it? I don't have access to a Core i7, so I'm flying blind based
on the Intel manuals.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3798] core.cpuid locks systems with Xeon E5530 CPU

2010-02-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3798



--- Comment #1 from David Simcha  2010-02-12 12:24:55 PST ---
ASsa  temporary workaround, I'm using:

if (0) { //max_cpuid >=0x0B) {
// For Intel i7 and later, use function 0x0B to determine
// cores and hyperthreads.
getCpuInfo0B();
} else {
if (hyperThreadingBit) maxThreads = (apic>>>16) & 0xFF;
else maxThreads = maxCores;
}

The problem appears to be that the termination condition for the following loop
never becomes true:

do {
asm {
mov EAX, 0x0B;
mov ECX, level;
cpuid;
mov a, EAX;
mov b, EAX;
mov c, ECX;
mov d, EDX;
}
if (b!=0) {
   // I'm not sure about this. The docs state that there
   // are 2 hyperthreads per core if HT is factory enabled.
if (level==0) maxThreads = b & 0x;
else if (level==1) maxCores = b & 0x;

}
} while (a!=0 || b!=0);

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---