- Joined
- Jan 20, 2004
- Messages
- 34,761
- Reaction score
- 27,792
Well Linus Torvalds has step into the CPU war somewhat by saying he prefers Intel's honesty over a design that has been a part of Intel chips since 80286 and is heavily reworking it to resolve a nearly 3 decade old design. Apparently AMD shares this dated design in their chips and has to due with a performance hit the general purpose registers in the CPU by not efficiently buffering the individual registers data. So it would improve the processors interrupts and make better use of the register sets and reduce latency.
"
AMD was the first to come out with its proposed changes in February 2021: AMD Supervisor Entry Extensions. Intel followed in March with its flexible return and event delivery (FRED) design. What sparked Torvald's interest was when someone on the Real World Technologies deep technology conversation forum introduced the topic with the note: "x86 - why unite when you can fragment?"
Torvalds, however, doesn't see it that way. He wrote:
Honestly, it doesn't look too bad.
The AMD version is essentially "Fix known bugs in the exception handling definition."
The Intel version is basically "Yeah, the protected mode 80286 exception handling was bad, then 386 made it odder with the 32-bit extensions, and then syscall/sysenter made everything worse, and then the x86-64 extensions introduced even more problems. So let's add a mode bit where all the crap goes away."
In contrast, the AMD one is basically a minimal effort to fix actual fundamental problems with all that legacy-induced crap that is nasty to work around and that has caused issues.
So, what are these problems? They are hidden with the x86's architecture's Interrupt Descriptor Table (IDT). This is a data structure that implements an interrupt vector table. It comes, unfortunately, with numerous exception problems.
These, according to Torvalds, include:
"
Linus is the man he is not a fan of how AMD seeks to resolve this issue vs Intel.
https://www.zdnet.com/article/linus...hanging-how-processor-interrupts-are-handled/
"
AMD was the first to come out with its proposed changes in February 2021: AMD Supervisor Entry Extensions. Intel followed in March with its flexible return and event delivery (FRED) design. What sparked Torvald's interest was when someone on the Real World Technologies deep technology conversation forum introduced the topic with the note: "x86 - why unite when you can fragment?"
Torvalds, however, doesn't see it that way. He wrote:
Honestly, it doesn't look too bad.
The AMD version is essentially "Fix known bugs in the exception handling definition."
The Intel version is basically "Yeah, the protected mode 80286 exception handling was bad, then 386 made it odder with the 32-bit extensions, and then syscall/sysenter made everything worse, and then the x86-64 extensions introduced even more problems. So let's add a mode bit where all the crap goes away."
In contrast, the AMD one is basically a minimal effort to fix actual fundamental problems with all that legacy-induced crap that is nasty to work around and that has caused issues.
So, what are these problems? They are hidden with the x86's architecture's Interrupt Descriptor Table (IDT). This is a data structure that implements an interrupt vector table. It comes, unfortunately, with numerous exception problems.
These, according to Torvalds, include:
- IDT itself is a horrible nasty format and you shouldn't have to parse memory in odd ways to handle exceptions. It was fundamentally bad from the 80286 beginnings, it got a tiny bit harder to parse for 32-bit, and it arguably got much worse in x86-64.
- The %rsp general-purpose register is not being restored properly by return-to-user mode.
- Delayed debug traps into supervisor mode.
- Several bad exception nesting problems: Non-Maskable Interrupts (NMI), machine checks, and STI-shadow handling at the very least).
- Various atomicity problems with gsbase (swapgs) and stack pointer switching
- Several different exception stack layouts, and literally hundreds of different entry points for exceptions, interrupts and system calls (and that's not even counting the call gates that nobody should use in the first place).
"
Linus is the man he is not a fan of how AMD seeks to resolve this issue vs Intel.
https://www.zdnet.com/article/linus...hanging-how-processor-interrupts-are-handled/