3 ms·
(To addon to parent poster) Unfortunately fuzzing ultimately has a random component An instruction which accepts 2 registers and returns 1 register has a
by valarauca1 10y ago
(To addon to parent poster)
Unfortunately fuzzing ultimately has a random component
An instruction which accepts 2 registers and returns 1 register has a 192bit problem space to validate. This complexity is present in an instruction as simple as `add`.
As AVX2 instructions which accepts 3 registers and outputs 1 has a 1024bit problem space to validate.
This occurred in FMA3 with a ~512bit problem space.
Repeat for _every_ instruction (HUNDREDS). You can see how a few bugs slip though the cracks. The problem space is as large as some cryptographic functions!! I'm honestly surprised we don't see more of them.
- cwzwarich 10y agoThe specific result produced by the data path is probably not very relevant in the case of a lockup. The control path involved with instruction decoding, register renaming, out-of-order execution, SMT, etc. is generally the cause of issues like this. With interactions between different blocks of the CPU and the size of some of the data structures involved, the full verification space is much, much larger.
- valarauca1 10y agoThis isn't a lock up. If you read the source (TechPowerUp is terrible why it isn't banned is beyond me) it is actually an _illegal instruction_ error. Which just crashes the current application. Also if SMT is not disable the error doesn't occur. Also if the chip isn't over clocked the error doesn't occur. So it is very clearly power related.
- wongarsu 10y agoQuoting from http://forum.hwbot.org/showthread.php?t=167605 http://forum.hwbot.org/showthread.php?t=167605: > this always hard freezes the computer: >- At all clock speeds. >- When running single-threaded, it happens to any core that I pin it to. It should be at worst an illegal instruction, but instead the whole core freezes, even on underclocked computers.
- makomk 10y agoI don't know about that. As I understand it, interesting things can happen if a large number data lines toggle at the same time, and this obviously depends on both the data and the control path. Huge space of possible states.