| ▲ | bjackman 10 hours ago |
| I work in CPU security and it's the same with microarchitecture. You wanna know if a machine is vulnerable to a certain issue? - The technical experts (including Intel engineers) will say something like "it affects Blizzard Creek and Windy Bluff models' - Intel's technical docs will say "if CPUID leaf 0x3aa asserts bit 63 then the CPU is affected". (There is no database for this you can only find it out by actually booting one up). - The spec sheet for the hardware calls it a "Xeon Osmiridium X36667-IA" Absolutely none of these forms of naming have any way to correlate between them. They also have different names for the same shit depending on whether it's a consumer or server chip. Meanwhile, AMD's part numbers contain a digit that increments with each year but is off-by-one with regard to the "Zen" brand version. Usually I just ask the LLM and accept that it's wrong 20% of the time. |
|
| ▲ | josephg 8 hours ago | parent | next [-] |
| > - Intel's technical docs will say "if CPUID leaf 0x3aa asserts bit 63 then the CPU is affected". (There is no database for this you can only find it out by actually booting one up). I’m doing some OS work at the moment and running into this. I’m really surprised there’s no caniuse.com for cpu features. I’m planning on requiring support for all the features that have been in every cpu that shipped in the last 10+ years. But it’s basically impossible to figure that out. Especially across Intel and amd. Can I assume apic? Iommu stuff? Is acpi 2 actually available on all CPUs or do I need to have to have support for the old version as well? It’s very annoying. |
| |
| ▲ | johncolanduoni 4 hours ago | parent | next [-] | | Even more fun is that some of those (IOMMU and ACPI version) depend on motherboard/firmware support. Inevitably there is some bargain-bin board for each processor generation that doesn’t support anything that isn’t literally required for the CPU/chipset to POST. For userspace CPU features the new x86_64-v3/v4 profiles that Clang/LLVM support are good Schelling points, but they don’t cover e.g. page table features. Windows has specific platform requirements they spell out for each version - those are generally your best bet on x86. ARM devs have it way worse so I guess we shouldn’t complain. | | |
| ▲ | throwaway173738 3 hours ago | parent [-] | | At least on ARM you can get trms or data sheets that cover all of the features of a specific processor and also the markings on the chip that differentiate it from models within the same family. |
| |
| ▲ | throw0101a 3 hours ago | parent | prev | next [-] | | > I’m planning on requiring support for all the features that have been in every cpu that shipped in the last 10+ years. But it’s basically impossible to figure that out. The easiest thing would probably to specify the need for "x86-64-v3": * https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level... RHEL9 mandated "x86-64-v2", and v3 is being considered for RHEL10: > The x86-64-v3 level has been implemented first in Intel’s Haswell CPU generation (2013). AMD implemented x86-64-v3 support with the Excavator microarchitecture (2015). Intel’s Atom product line added x86-64-v3 support with the Gracemont microarchitecture (2021), but Intel has continued to release Atom CPUs without AVX support after that (Parker Ridge in 2022, and an Elkhart Lake variant in 2023). * https://developers.redhat.com/articles/2024/01/02/exploring-... | | |
| ▲ | cesarb 2 hours ago | parent [-] | | > The easiest thing would probably to specify the need for "x86-64-v3" AFAIK, that only specifies the user-space-visible instruction set extensions, not the presence and version of operating-system-level features like APIC or IOMMU. |
| |
| ▲ | baq 8 hours ago | parent | prev [-] | | I’m pretty sure the number of people at Intel who can tell you offhandedly the answer to your questions about only Intel processors is approximately zero give or take couple. Digging would be required. If you were willing to accept only the relatively high power variants it’d be easier. | | |
| ▲ | josephg 4 hours ago | parent [-] | | I'd be happy to support the low power variants as well, but without spending a bunch of money, I have no idea what features they have and what they're missing. Its very annoying. For anyone not familiar with caniuse, its indispensable for modern web development. Say you want to put images on a web page. You've heard of webp. Can you use it? https://caniuse.com/webp At a glance you see the answer. 95% of global web users use a web browser with webp support. Its available in all the major browsers, and has been for several years. You can query basically any browser feature like this to see its support status. | | |
| ▲ | jdiff 4 hours ago | parent [-] | | That initial percentage is a little misleading. It includes everything that caniuse isn't sure about. Really it should be something like 97.5±2.5 but the issue's been stalled for years. Even the absolute most basic features that have been well supported for 30 years, like the HTML "div" element, cap out at 96%. Change the drop-down from "all users" to "all tracked" and you'll get a more representative answer. |
|
|
|
|
| ▲ | duxup 29 minutes ago | parent | prev | next [-] |
| That's been the case with hardware at several companies I was at. I was convinced that the process was encouraged by folks who used it as a sort of weird gatekeeping by folks who only used the magic code names. Even better I worked at a place where they swapped code names between two products at one time... it wasn't without any reason, but it mean that a lot of product documentation suddenly conflicted. I eventually only refereed to exact part numbers and model numbers and refused to play the code name game. This turned into an amusing situation where some managers who only used code names were suddenly silent as they clearly didn't know the product / part to code name convention. |
|
| ▲ | automatic6131 6 hours ago | parent | prev | next [-] |
| > AMD's part numbers contain a digit that increments with each year Aha, but which digit? Sure, that's easy for server, HEDT and desktop (it's the first one) but if you look at their line of laptop chips then it all breaks down. |
| |
| ▲ | pezezin 3 hours ago | parent [-] | | Lol no, for servers (Epyc) it is the last digit. Why? Who knows, to make it more confusing I guess. | | |
| ▲ | zamadatix an hour ago | parent [-] | | I admit it took me until the 4th gen Epyc to realize this. I laughed out loud at myself/the numbering scheme. |
|
|
|
| ▲ | wyldfire an hour ago | parent | prev | next [-] |
| > Absolutely none of these forms of naming have any way to correlate between them. I've found that -- as of a ~decade ago, at least, ark.intel.com had a really good way to cross-reference among codenames / SKUs / part numbers / feature set/specs. I've never seen errata there but they might be. Also, I haven't used it in a long time so it could've gotten worse. |
|
| ▲ | mastax an hour ago | parent | prev | next [-] |
| Also technically the code names are only for unreleased products so on ark it’ll say “products formerly Ice Lake” but the intel will continue to calm them Ice Lake. |
|
| ▲ | balou23 3 hours ago | parent | prev | next [-] |
| I hear you. Coincidentally, if anyone knows how to figure out which Intel CPUs actually support 5-level paging / the CPUID flag known as la57, please tell me. |
|
| ▲ | 7bees 8 hours ago | parent | prev | next [-] |
| You can correlate microarchitecture to product SKUs using the Intel site that the article links. AMD has a similar site with similar functionality (except that AFAIK it won't let you easily get a list of products with a given uarch). These both have their faults, but I'd certainly pick them over an LLM. But you're correct that for anything buried in the guts of CPUID, your life is pain. And Intel's product branding has been a disaster for years. |
| |
| ▲ | masklinn 4 hours ago | parent [-] | | > You can correlate microarchitecture to product SKUs using the Intel site that the article links. Intel removed most things older than SB late 2024 (a few xeons remain but afaik anything consumer was wiped with no warning). It’s virtually guaranteed that Intel will remove more stuff in the future. |
|
|
| ▲ | countWSS 7 hours ago | parent | prev | next [-] |
| I've also found the same thing a decade ago,
apparently lots of features(e.g. specific instruction, igpu)
are broadly advertised as belonging to specific arch,
but pentium/celeron(or for premium stuff non-xeon) models often lack them entirely and
the only way to detect is lscpu/feature bits/digging in UEFI settings. |
|
| ▲ | zrm 5 hours ago | parent | prev | next [-] |
| These have been my go-to for a while now: https://en.wikipedia.org/wiki/List_of_Intel_Core_processors https://en.wikipedia.org/wiki/List_of_Intel_Xeon_processors It doesn't have the CPUID but it's a pretty good mapping of model numbers to code names and on top of that has the rest of the specs. |
|
| ▲ | 7bit 7 hours ago | parent | prev | next [-] |
| I have three Ubuntu servers and the naming pisses me off so much. Why can't they just stick with their YY.MM. naming scheme everywhere. Instead, they mostly use code names and I never know what codename I am currently using and what is the latest code name. When I have to upgrade or find a specific Python ppa for whatever OS I am running, I need to research 30 minutes to correlate all these dumb codenames to the actual version numbers. Same with Intel. STOP USING CODENAMES. USE NUMBERS! |
| |
| ▲ | Saris 2 minutes ago | parent | next [-] | | Same problem I have with Debian. At least Fedora just uses a version number! | |
| ▲ | kalleboo 7 hours ago | parent | prev | next [-] | | As an Apple user, the macOS code names stopped being cute once they ran out of felines, and now I can't remember which of Sonoma or Sequoia was first. Android have done this right: when they used codenames they did them in alphabetical order, and at version 10 they just stopped being clever and went to numbers. | | |
| ▲ | black3r 5 hours ago | parent [-] | | Ubuntu has alphabetical order too, but that's only useful if you want to know if "noble" is newer than "jammy", and useless if you know you have 24.04 but have no idea what its codename is and Android also sucks for developers because they have the public facing numbers and then API versions which are different and not always scaling linearly (sometimes there is something like "Android 8.1" or "Android 12L" with a newer API), and as developers you always deal with the API numbers (you specify minimum API version, not the minimum "OS version" your code runs in your code), and have to map that back to version numbers the users and managers know to present it to them when you're upping the minimum requirements... | | |
| ▲ | happymellon 3 hours ago | parent | next [-] | | > Ubuntu has alphabetical order too, but that's only useful if you want to know if "noble" is newer than "jammy" Well, it was until they looped. Xenial Xerus is older than Questing Quokka. As someone out of the Ubuntu loop for a very long time, I wouldn't know what either of those mean anyway and would have guessed the age wrong. | |
| ▲ | 3 hours ago | parent | prev [-] | | [deleted] |
|
| |
| ▲ | taneliv 5 hours ago | parent | prev | next [-] | | Protip, if you have access to the computer: `lsb_release -a` should list both release and codename. This command is not specific to Ubuntu. Finding the latest release and codename is indeed a research task. I use Wikipedia[1] for that, but I feel like this should be more readily available from the system itself. Perhaps it is, and I just don't know how? [1] https://en.wikipedia.org/wiki/Ubuntu#Releases | | |
| ▲ | yjftsjthsd-h 3 hours ago | parent [-] | | > Protip, if you have access to the computer: `lsb_release -a` should list both release and codename. This command is not specific to Ubuntu. I typically prefer cat /etc/os-release
which seems to be a little more portable / likely to work out of the box on many distros. | | |
| ▲ | cesarb 2 hours ago | parent [-] | | That's only if the distro is recent enough; sooner or later, you'll encounter a box running a distro version from before /etc/os-release became the standard, and you'll have to look for the older distro-specific files like /etc/debian_version. |
|
| |
| ▲ | daedric7 5 hours ago | parent | prev | next [-] | | They can't. They used to, until they tried to patent 586... | | | |
| ▲ | throwaway173738 2 hours ago | parent | prev | next [-] | | Try cat /etc/os-release. The codenames are probably there. I know they are for Debian. | | |
| ▲ | ramses0 2 hours ago | parent [-] | | Thank you! I was just about to kvetch about how difficult it was to map (eg) "Trixie" == "13" because /etc/debian_version didn't have it... I always ended up having to search the internet for it which seemed especially dumb for Debian! |
| |
| ▲ | skeletal88 7 hours ago | parent | prev [-] | | Yes, I agree, codenames are stupid, they are not funny or clever. I want a version number that I can compare to other versions, to be able to easily see which one is newer or older, to know what I can or should install. I don't want to figure out and remember your product's clever nicknames. |
|
|
| ▲ | andrewf 9 hours ago | parent | prev | next [-] |
| >"it affects Blizzard Creek and Windy Bluff models' "Products formerly Blizzard Creek" WTF does that even mean? |
| |
| ▲ | 7bees 9 hours ago | parent | next [-] | | Intel doesn't like to officially use codenames for products once they have shipped, but those codenames are used widely to delineate different families (even by them!), so they compromise with the awkward "products formerly x" wording. Have done for a long time. | | |
| ▲ | orthoxerox 8 hours ago | parent [-] | | I wouldn't mind them coming up with better codenames anyway. "Some lower-end SKUs branded as Raptor Lake are based on Alder Lake, with Golden Cove P-cores and Alder Lake-equivalent cache and memory configurations." How can anyone memorize this endless churn of lakes, coves and monts? They could've at least named them in the alphabetical order. | | |
| ▲ | jorvi 5 hours ago | parent | next [-] | | AMD does this subterfuge as well. Put Zen 2 cores from 2019 (!) in some new chip packaging and sell it as Ryzen 10 / 100. Suddenly these chips seem as fresh as Zen 5. It's fraud, plain and simple. | |
| ▲ | tormeh 7 hours ago | parent | prev [-] | | The entire point of code names is that you can delay coming up with a marketing name. If the end user sees the code name then what is even the point? Using the code name in external communication is really really dumb. They need to decide if it should be printed on the box or if it's only for internal use, and don't do anything in between. | | |
| ▲ | adrian_b 24 minutes ago | parent [-] | | The problem, especially at Intel, but also at AMD, is that they sell very different CPUs under approximately identical names. In a very distant past, AMD was publishing what the CPUID instruction will return for each CPU model that they were selling. Now this is no longer true, so you have to either buy a CPU to discover what it really is, or to hope that a charitable soul who has bought such a CPU will publish on the Internet the result. Without having access to the CPUID information, the next best is to find on the Intel Ark site, whether the CPU model you see listed by some shop is described for instance as belonging to 'Products formerly Arrow Lake S", as that will at least identify the product microarchitecture. This is still not foolproof, because the products listed as "formerly ..." may still be packaged in several variants and they may have various features disabled during production, so you can still have surprises when you test them for the first time. |
|
|
| |
| ▲ | baq 8 hours ago | parent | prev | next [-] | | Product lines are in design and development for years, two years is lightning fast, code names can be found for things five or more years before they were released, so everyone who works with them knows them better (much better) than the retail names. | |
| ▲ | numpad0 7 hours ago | parent | prev [-] | | It means Intel M14 and M15 base designs. Except they don't use numbers. |
|
|
| ▲ | ErroneousBosh 6 hours ago | parent | prev | next [-] |
| I feel like it's a cultural thing with the designers. Ceragon were the exact same when I used to do microwave links. Happy to provide demo kit, happy to provide sales support, happy to actually come up and go through their product range. But if you want any deep and complex technical info out of them, like oh maybe how to configure it to fit UK/EU regulatory domain RF rules? Haha no chance. We ended up hiring a guy fluent in Hebrew just to talk to their support guys. Super nice kit, but I guess no-one was prepared to pay for an interface layer between the developers and the outside world. |
|
| ▲ | greggsy 6 hours ago | parent | prev | next [-] |
| Do you just have banks of old CPUs from every generation to test against? |
|
| ▲ | TiredOfLife 4 hours ago | parent | prev | next [-] |
| > Meanwhile, AMD's part numbers contain a digit that increments with each year but is off-by-one with regard to the "Zen" brand version. Under https://en.wikipedia.org/wiki/Ryzen#Mobile_6 Ryzen 7000 series you could get zen2, zen3, zen3+, zen4 |
|
| ▲ | numpad0 6 hours ago | parent | prev [-] |
| - sSpec S0ABC = "Blizzard Creek" Xeon type 8 version 5 grade 6 getConfig(HT=off, NX=off, ECC=on, VT-x=off, VT-d=on)=4X Stepping B0
- "Blizzard Creek" Xeon type 8 -> V3 of Socket FCBGA12345 -> chipset "Pleiades Mounds"
- CPUID leaf 0x3aa = Model specific feature set checks for "Blizzard Creek" and "Windy Bluff(aka Blizzard Creek V2)"
- asserts bit 63 = that buggy VT-d circuit is not off
- "Xeon Osmiridium X36667-IA" = marketing name to confuse specifically you(but also IA-36-667 = (S0ABC|S9DFG|S9QWE|QA45P))
disclaimer: above is all made up and I don't work at any of relevant companies |