Hello Martin,
On 07/13/2015 12:47 PM, Martin Stein wrote:
When looking at your raw counter values, I assume that this is caused by overflows. Some of your hardware values are near (uint32_t)~0 while your Qemu values are all relatively small. I've addressed this issue recently in [1]. Commit [2] there introduces 64 bit counter values, but maybe its also a good idea to check for overflows. The commits are on genodelabs/staging but not on genodelabs/master yet. Could you please give staging a try?
I cherry-picked the above mentioned commit (d9ec7fa...) and the test now passes successfully:
[init -> init_2 -> test_fast] quota super period 1000000 [init -> init_2 -> test_fast] quota 599975 [init -> init_2 -> test_fast] counter A 8587417160 [init -> init_2 -> test_fast] counter B 16330577199 [init -> init_2 -> test_fast] done [init -> init_2 -> test_midl] quota super period 1000000 [init -> init_2 -> test_midl] quota 199981 [init -> init_2 -> test_midl] counter A 3729701872 [init -> init_2 -> test_midl] counter B 5928486521 [init -> init_2 -> test_midl] done [init -> init_1 -> test_slow] quota super period 1000000 [init -> init_1 -> test_slow] quota 49987 [init -> init_1 -> test_slow] counter A 1947120741 [init -> init_1 -> test_slow] counter B 2045329877 [init -> init_1 -> test_slow] done Good: Slow counter A received 5.048 % CPU (goal 4.75 %) Good: Slow counter B received 5.303 % CPU (goal 5.25 %) Good: Middle counter A received 9.67 % CPU (goal 9.625 %) Good: Middle counter B received 15.371 % CPU (goal 15.375 %) Good: Fast counter A received 22.265 % CPU (goal 22.625 %) Good: Fast counter B received 42.342 % CPU (goal 42.375 %) Test succeeded
Thanks for all the help.
Regards, Adrian