x86info hacking.

Uncategorized

Spent much of the afternoon today working on some updates for x86info. The CPU database within it needs to be constantly updated whenever Intel (or any other vendor) release new processors. This means sifting through dozens of datasheets, and trying to come up with the logic to distinguish between them. Once upon a time, it was a simple case of matching the cpuid family/model/stepping pair. Then circa Pentium 3/Celeron era, things got more complicated, and you had to take the L2 cache size into consideration too. As time went on, more and more things needed to be checked before you could make a decision. The maximum MHz the CPU runs at for example. Or the number of cores on a die. It’s all getting really, really complicated.

It’s further complicated by the fact that in some cases, Intel have re-used part numbers.

x86info is a mess of nested if’s and switches as a result of the above. I toyed with the idea of making it somehow database driven a few years ago, but of course, it’s one of those projects that never seems to happen. Maybe one day I’ll get around to it.

Today I added recognition of Nehalem, Atom and a bunch of older Core2′s that I had missed in the last update.
I’m hoping to get an update out sometime in the next week or two. I still need to pore over a bunch of those datasheets, double-checking what else I’ve missed.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

3 Comments

3 Comments

  1. anon  •  Jan 15, 2009 @08:16

    I always wondered if there’s a way to detect ram timings under Linux (much like cpu-z [1] does).

    [1] http://www.cpuid.com/cpuz.php

  2. anon  •  Jan 15, 2009 @08:17

    By the way.. your blog won’t allow any comments with cookies disabled. This kinda sucks, please consider fixing ;)

  3. davej  •  Jan 15, 2009 @10:44

    That sort of info is available by reading registers in the PCI north bridge, (where the memory controller lives). It’s a little outside the remit of what x86info does.



  • huaglahglah huaglahglah