[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86emul: suppress general register update upon AVX gather failures
>>> On 01.04.19 at 16:04, <andrew.cooper3@xxxxxxxxxx> wrote: > On 29/03/2019 09:39, Jan Beulich wrote: >> --- a/xen/arch/x86/x86_emulate/x86_emulate.c >> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c >> @@ -8547,6 +8547,9 @@ x86_emulate( >> invoke_stub("", "", "+m" (mask) : "a" (&mask)); >> put_stub(stub); >> >> + if ( rc != X86EMUL_OKAY ) >> + goto done; > > This obviously is needed to fix the problem as it manifested for George, > but in the case that we take a fault/retry on iteration 0, shouldn't we > skip the writeback as well? No, not really, or at least not in all cases: "If the data size and index size are different, part of the destination register and part of the mask register do not correspond to any elements being gathered. This instruction sets those parts to zero. It may do this to one or both of those registers even if the instruction triggers an exception, and even if the instruction triggers the exception before gathering any elements." I realize this is all "may", but iirc I had tried it out on some of the hardware I have, and it indeed did so there. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |