3 ms·
> For example, there was one bug that manifested itself in incorrect instruction decoding if a conditional branch instruction had just the right sequence of tak
by dingo_bat 10y ago
> For example, there was one bug that manifested itself in incorrect instruction decoding if a conditional branch instruction had just the right sequence of taken/not-taken history, and the branch instruction was followed immediately by a selector load, and one of the first two instructions at the destination of the branch was itself a jump, call, or return.
My brain hurts imagining how they figured out and verified that this bug exists.
- jakub_h 10y agoJudging from the Matt Dillon case, a lot of "nah, the bug must be in my code" must have been involved.
- greglindahl 10y agoI used crashme to discover a bug in the Broadcom Sibyte CPU that depended on branch prediction history.
- dingo_bat 10y agoI'd love to read details about your experience. Have you had a chance to write it up?
- greglindahl 10y agoI never wrote it up. The only weird thing about it was that unmodified crashme wouldn't run because of a prefetch bug in the silicon, plus there was a debugging trap that wasn't handled in the kernel. I added a trivial handler for the trap and pre-processed the randomly-generated crashme code to nop prefetches... 15 seconds later, I saw the hang.