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

--- Comment #198 from Don Lewis <truck...@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.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to