On 09/01/2015 03:30 PM, Philippe Gerum wrote:
> On 09/01/2015 09:11 PM, Jorge Ramirez Ortiz wrote:
>> On 09/01/2015 02:27 PM, Dmitriy Cherkasov wrote:
>>> We have seen this before, but so far have not found a way to consistently
>>> reproduce it.
>>>
>>> There are some caveats with the current way context switching is done in 
>>> Xenomai.
>>>
>>> On armv7, there was a completely separate implementation of 
>>> xnarch_switch_to(),
>>> as well as separate fpu and TLS switching. At this stage for armv8 however, 
>>> we
>>> are doing a direct call to the kernel's __switch_to(), which then performs 
>>> the
>>> relevant register switches.
>>>
>>> Another possibility is that this may be lurking in the mm switch. During 
>>> calls 
>>> to check_and_switch_context(), the interrupt state may not always
>>> match what is expected according to the comments in the original
>>> version of that function. 
>>>
>>> Overall, this mechanism could definitely benefit from further review.
>>>
>>
>>
>> Thanks Dimitry.
>> I'll also try to look into this for this specific platform (however I am 
>> hopping
>> that either Gilles or Philippe can spend some time on this soon)
>>
>> Just for completeness, as things stand this is pretty much that value I am
>> seeing over consecutive runs.
>>
>> RTD|      4.167|      6.099|     11.667|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.217|     13.333|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.259|     11.667|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.226|     12.500|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.105|     11.667|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.181|     12.500|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.232|     12.500|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.483|     20.000|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      6.409|      9.167|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      5.707|     12.500|       0|     0|      3.333|     
>> 66.667
>> RTD|      4.167|      5.026|      6.667|       0|     0|      3.333|     
>> 66.667
>> RTT|  00:15:04  (periodic user-mode task, 1000 us period, priority 99)
>> RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat 
>> worst
>> RTD|      4.167|      5.025|      6.667|       0|     0|      3.333|     
>> 66.667
>> Load script terminated, terminating checked scripts
>> ---|-----------|-----------|-----------|--------|------|-------------------------
>> RTS|      3.333|      6.540|     66.667|       0|     0|    00:15:04/00:15:04
>> pipe_in: /tmp/xeno-test-in-9797
>>
> 
> This won't address the current issue, but the notification of the head
> domain on memory aborts needs fixing:
> 
> diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
> index f363368..e59da5e 100644


applied.
yes I still see the random translation faults (3 in total during the 15 minutes
test run)

feel free to post me suggestions of course. I have been chasing this one for
nearly three days now.


_______________________________________________
Xenomai mailing list
[email protected]
http://xenomai.org/mailman/listinfo/xenomai

Reply via email to