[haiku-development] Re: Fixing get_cpu_model_string(), Ticket 3541

  • From: Richard Jasmin <jasminr@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 20 Jun 2009 14:41:36 -0400

noticed that inconsistency myself as well as a timing issue.The code I already have has a newer timing fix, but doesn't get that detailed as of yet.Could you send me your 'extreme' ident lists please, will try and implement same.I'm in FPC, so watch the includes please or attach everything not in the standard c libs please.<stdio.c> I don't have all of the includes, even those with the kernel sources, which I do have access to. Clib I have, but is already in my system unit.




Christian Packmann wrote:
Bruno Albuquerque - 2009-06-20 11:43 :
The only problem I see with this is that you are breaking other CPU descriptions to fix yours and this is not a good fix for obvious reasons (I have a Core 2 Quad Extreme).

Uhm, I hope to fix all current and future CPU descriptions, not just mine.

Maybe you didn't understand the problem. Currently Haiku will determine the CPU string only by a CPUs signature, as determined by CPUID function 0x00000001, register EDX. At the moment the CPU signature 0x1067a is assigned to "Intel Core 2 Extreme" in Haiku. However, this very same signature is also used by (at least) the following CPUs, according to Intels Specification Updates:

Core2Duo: E7400, E7500, E7600, E8400, E8500, E8600
Core2Quad: Q8200S, Q8300, Q8400, Q8400S, Q9400, Q9400S, Q9550, Q9550S, Q9650
Xeon: X3320, X3330, X3350, X3360, X3370, X3380
(I didn't bother searching for the Extreme editions)

All these CPUs will be misidentified by Haiku as "Intel Core 2 Extreme". If the old system should be retained, that should be changed to "Intel Core 2", because this is basically the only thing all these CPU have in common. And using the old approach, there's no way that a proper CPU identification can be done; the CPU signature alone is not sufficient anymore.

My approach would allow using the correct information but also generating short CPU strings which can be used in the GUI without looking strange (Pulse, AboutHaiku). Er, that assumes that I'm not alone in thinking that the default CPU brand strings are fugly to look at. :)

Also, my system adapts to new models automatically, unless the structure of the brand strings is altered significantly. The only string constants I use are "(R)", "(TM)", "(Tm)", "(tm)", "CPU family", "CPU", "processor", "Processor", "Quad-Core", "Dual Core", " Duo", " Quad", " Extreme"
and
"MHz", "GHz".
All the rest is string processing. This means that any new Intel or AMD CPU following the current naming scheme will automatically be parsed correctly. Changes will be required once Octo and Hexadeca CPUs hit, but even then changes to my code should be easier and more reliable than hard-coding all the CPU signatures.

And BTW, I just ran two Core2 Extreme brand strings against my algorithm:

Intel(R) Core(TM)2 Extreme CPU X9650 @ 3.00GHz
Intel(R) Core(tm)2 Extreme CPU Q6850 @ 3.00GHz
->
Intel Core2 X9650
Intel Core2 Q6850

Which I hope will be acceptable to you.

Christian


____________________________________________________________________________________
Use the link below to report this message as spam.
https://lavabit.com/apps/teacher?sig=622503&key=2901753250
____________________________________________________________________________________



Other related posts: