[Bug 219399] System panics after several hours of 14-threads-compilation orgies using poudriere on AMD Ryzen...

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Aug 2 16:42:50 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219399

--- Comment #198 from Don Lewis <truckman at FreeBSD.org> ---
(In reply to rozhuk.im from comment #190)
The slide deck here:
 
https://github.com/xoreaxeaxeax/sandsifter/blob/master/references/domas_breaking_the_x86_isa.pdf
is pretty informative.  It turns out that this problem affects the Geode.  The
difference in behavior is mentioned in Table 8-8 of the document that I
previously sited.

I think what is happening is that is that in the case of invalid instructions,
the hardware still does a preliminary determination of their length to
determine how many bytes to fetch.  If a page fault happens while fetching the
remaining bytes, then a page fault exception is supposed to happen, but in this
case, the hardware has already decided that the instruction is invalid and
raises an undefined instruction exception instead.

It looks to me like the only real damage is that this breaks the algorithm that
sandsifter uses to determine instruction lengths.  It doesn't look like it
causes valid instructions to be flagged as invalid if they can't be fetched
without causing a page fault.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list