Zack's Kernel News
Zack's Kernel News
Chronicler Zack Brown reports Opcode life cycles and naming conventions.
Opcode Life Cycles
In the Mariana Trench of Linux kernel development swims the elusive yet luminescent creature, the opcode. Rarely seen by user eyes, the opcode forms the basis of the elaborate computer ecosystem upon which rests the digital life and productivity of our entire planet.
Opcodes exist at the hardware level. They are implemented by the actual AND, OR, and other silicon-based logic gates that exist by the millions on chips that run nearly every CPU in the known universe. Quantum computers, Babbage difference engines, and Antikythera devices are something else again – Linux support coming soon.
Steven Rostedt recently caught a glimpse of the rare and elusive cmpxchg
opcode. This opcode compares and then potentially exchanges two values with one another, without allowing anything to interrupt it during the moment between the comparison and the actual data exchange. Ordinarily, in Linux and other multithreaded systems, operations are routinely interrupted by the kernel to provide that smooth and seamless feel of everyone using the system at the same time. The cmpxchg
opcode makes this easier by preventing the interruption coming at an inconvenient moment, when the data might be in an inconsistent state. Otherwise, the kernel would have to implement a more complex and robust batch of code to do the same operation safely.
[...]
Buy this article as PDF
(incl. VAT)