[Barrelfish-users] Bug fix related to FPU context switch on LRPC path for x86_64
Simon Peter
speter at inf.ethz.ch
Wed Jan 18 05:17:17 CET 2017
Great catch! I don't think I had implemented FPU context switch upon
LRPC since that was mostly disabled at the time. Andrei's code looks
fine to me.
If I were pedantic, I could add that there likely should be a more
efficient way to context switch the FPU upon LRPC than to replicate
what's in the dispatch handler (in particular all the branches).
-- Simon
On 01/16/2017 01:36 AM, Timothy Roscoe wrote:
>
> Dear Andrei,
>
> Many thanks - that's great. Adam: could you have a look at this?
>
> Cheers,
>
> -- Mothy
>
> At Sat, 14 Jan 2017 14:24:34 +0100, Andrei Poenaru <poenarua at ethz.ch> wrote:
>> Dear all,
>>
>> While working on context switching I found a bug regarding the FPU context
>> switching on the LRPC path: no FPU switching is performed on that path.
>>
>> When 2 domains (using the FPU) communicate via LRPC the data stored in the
>> registers is not correctly preserved. I was able to derive a test starting
>> from 'lrpc_bench'.
>>
>> In order to fix the issue, I implemented in assembly, on the LRPC path, the
>> same logic as in 'fpu_lazy_top' (function called during a context switch on
>> the normal kernel path).
>>
>> The test and the proposed fix can be found in the attached patch.
>>
>> Best regards,
>> Andrei
>>
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
>
More information about the Barrelfish-users
mailing list