S3C2440A strange perfomance issue

Владимир Фещенко vladimir-its at yandex.ru
Thu May 12 17:31:42 UTC 2011


12.05.2011, 18:13, "Mark Tinguely" <marktinguely at gmail.com>:
> On 5/12/2011 3:29 AM, Владимир Фещенко wrote:
>
>>  %cc -O0 -o test test.c
>>
>>  and execute it:
>>
>>  Code:
>>
>>  %/usr/bin/time -l ./test
>>         120.16 real       119.44 user         0.16 sys
>>        12177  involuntary context switches
>>
>>  time of execution is over 120 sec ... but after system reboot:
>>
>>  Code:
>>
>>  %/usr/bin/time -l ./test
>>           2.85 real         2.55 user         0.25 sys
>>          292  involuntary context switches
>>
>>  execution time is 2.85(!) sec, but it's not all!
>>
>>  Code:
>>
>>  %cat test>  /dev/null
>>
>>  %/usr/bin/time -l ./test
>>         120.40 real       119.51 user         0.23 sys
>>        12201  involuntary context switches
>>
>>  Once the file has been opened for reading (cat test>  /dev/null), execution time again increased to 120 sec (until the next reboot).
>>
>>  What is it?!
>
> Sounds like the executable cache gets disabled on the executable page
> that is also writable issue that we talked about year or so ago. If you
> want a quick test, in pmap_fix_cache(), and exit the routine immediately
> if the mapping is executable. I did some tracing, and there are cases
> where this is not the correct solution - executable mappings that are
> really shared and cache should be disabled. I have a idea level patch
> for this but never tested it well enough.
>
> I also notice a huge jump in "involuntary context switch" counts in your
> runs.
>
> --Mark Tinguely

please, i want code sample for use pmap_fix_cache() :)
may be this issue is caching problem ... but why 'open for read' make this effect?


More information about the freebsd-arm mailing list