Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
(kms_cursor_legacy:2891) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:2891) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:2891) CRITICAL: completed 947 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-toggle failed.
(kms_cursor_legacy:5583) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:5583) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:5583) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:5583) CRITICAL: completed 836 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-atomic failed.
(kms_cursor_legacy:7212) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:7212) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:7212) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:7212) CRITICAL: completed 2836 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-atomic-transitions failed.
(kms_cursor_legacy:13431) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:13431) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:13431) CRITICAL: completed 1456 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-varying-size failed.
(kms_cursor_legacy:4401) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:4401) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:4401) CRITICAL: completed 819 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-varying-size failed.
(kms_cursor_legacy:1786) CRITICAL: Test assertion failure function cursor_vs_flip, file kms_cursor_legacy.c:1066:
(kms_cursor_legacy:1786) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1786) CRITICAL: completed 880 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-legacy failed.
(kms_cursor_legacy:1416) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1100:
(kms_cursor_legacy:1416) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1416) CRITICAL: completed 7404 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-varying-size failed.
(kms_cursor_legacy:2541) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1100:
(kms_cursor_legacy:2541) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:2541) CRITICAL: completed 7542 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-toggle failed.
(kms_cursor_legacy:1384) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1100:
(kms_cursor_legacy:1384) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1384) CRITICAL: completed 7581 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-toggle failed.
(kms_cursor_legacy:1727) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1100:
(kms_cursor_legacy:1727) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1727) CRITICAL: completed 7105 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-toggle failed.
(kms_cursor_legacy:1338) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1101:
(kms_cursor_legacy:1338) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1338) CRITICAL: completed 7240 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-toggle failed.
Starting subtest: cursor-vs-flip-atomic-transitions-varying-size
(kms_cursor_legacy:5035) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1101:
(kms_cursor_legacy:5035) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:5035) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:5035) CRITICAL: completed 1222 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-atomic-transitions-varying-size failed.
Starting subtest: cursor-vs-flip-atomic-transitions-varying-size
(kms_cursor_legacy:4834) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1101:
(kms_cursor_legacy:4834) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:4834) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:4834) CRITICAL: completed 1260 cursor updated in a period of 30 flips, we expect to complete approximately 7680 updates, with the threshold set at 3840
Subtest cursor-vs-flip-atomic-transitions-varying-size failed.
Starting subtest: cursor-vs-flip-atomic-transitions
(kms_cursor_legacy:1344) CRITICAL: Test assertion failure function cursor_vs_flip, file ../tests/kms_cursor_legacy.c:1101:
(kms_cursor_legacy:1344) CRITICAL: Failed assertion: shared[0] > vrefresh*target / 2
(kms_cursor_legacy:1344) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:1344) CRITICAL: completed 1784 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680
Subtest cursor-vs-flip-atomic-transitions failed.
The test is checking how many cursor updates we can fit between vblanks, and treating that as a baseline. Then it does 30 flips and checks whether we fit expected (num_of_flips * baseline / 8) amount of cursor updates. The check is done 50 times.
We fails this check but yet the cursor refresh rate for each failure is well above 1k (per 30 flips) and there are really no sense in having mouses with refresh rates higher than 1kHz.
The customer impact is low.
The test needs some rethinking and possibly updated pass criteria.
The test is checking how many cursor updates we can fit between vblanks, and
treating that as a baseline. Then it does 30 flips and checks whether we fit
expected (num_of_flips * baseline / 8) amount of cursor updates. The check
is done 50 times.
We fails this check but yet the cursor refresh rate for each failure is well
above 1k (per 30 flips) and there are really no sense in having mouses with
refresh rates higher than 1kHz.
The customer impact is low.
The test needs some rethinking and possibly updated pass criteria.
Anusha, please update the test to clip the wanted refresh rate to 1kHz, anything above above is useless and just adds noise.
The test is checking how many cursor updates we can fit between vblanks, and
treating that as a baseline. Then it does 30 flips and checks whether we fit
expected (num_of_flips * baseline / 8) amount of cursor updates. The check
is done 50 times.
We fails this check but yet the cursor refresh rate for each failure is well
above 1k (per 30 flips) and there are really no sense in having mouses with
refresh rates higher than 1kHz.
The customer impact is low.
The test needs some rethinking and possibly updated pass criteria.
Anusha, please update the test to clip the wanted refresh rate to 1kHz,
anything above above is useless and just adds noise.
I dont think that will work. The test checks that a certain amount (targeteted amount) of cursor updates happens between vblanks and that flip do not affect vblank counter. The subtest already sets the targetted cursor updates to a pretty low value, despite that the test fails. We need to understand -
1. how the flips are affecting the vblanks
2. why particularly in ICL we are not able to do that many number of cursor updates. (that is assuming this test was passing on non ICL systems). I plan on seeing the behaviour on my KBL system.
Also, just out of curiosity I did change the target value to see if at any point the test passes. it doesnt. Regardless of how less we set the cursor update, we fail to achieve that in the given interval.
I dont think that will work. The test checks that a certain amount
(targeteted amount) of cursor updates happens between vblanks and that flip
do not affect vblank counter. The subtest already sets the targetted cursor
updates to a pretty low value, despite that the test fails. We need to
understand -
how the flips are affecting the vblanks
why particularly in ICL we are not able to do that many number of cursor
updates. (that is assuming this test was passing on non ICL systems). I plan
on seeing the behaviour on my KBL system.
Also, just out of curiosity I did change the target value to see if at any
point the test passes. it doesnt. Regardless of how less we set the cursor
update, we fail to achieve that in the given interval.
Hey,
Just to be sure that I understand the test correctly:
1. we fork and do DRM_IOCTL_MODE_CURSOR in a "busy" loop
2. we wait for 30 flips (vrefresh/2, vrefresh=60)
3. we check how many MODE_CURSOR have succeeded
4. we compare the number of times we managed to call the IOCTL vs our target*30
Currently the "target" comes from get_cursor_updates_per_vblank() which from the number of MODE_CURSOR ioctl we manage to squeeze in between two vblanks divided by 8.
We have seen a lot of failures where the target was not hit, but still all of them managed to do about 1.5k cursor updates in that time, which means about 3kHz cursor update rate, which is plenty.
That would mean if we have over 500 updates in that 30 frame window (0.5s) we would hit the 1kHz requirement.
I dont think that will work. The test checks that a certain amount
(targeteted amount) of cursor updates happens between vblanks and that flip
do not affect vblank counter. The subtest already sets the targetted cursor
updates to a pretty low value, despite that the test fails. We need to
understand -
how the flips are affecting the vblanks
why particularly in ICL we are not able to do that many number of cursor
updates. (that is assuming this test was passing on non ICL systems). I plan
on seeing the behaviour on my KBL system.
Also, just out of curiosity I did change the target value to see if at any
point the test passes. it doesnt. Regardless of how less we set the cursor
update, we fail to achieve that in the given interval.
Hey,
Just to be sure that I understand the test correctly:
1. we fork and do DRM_IOCTL_MODE_CURSOR in a "busy" loop
2. we wait for 30 flips (vrefresh/2, vrefresh=60)
3. we check how many MODE_CURSOR have succeeded
4. we compare the number of times we managed to call the IOCTL vs our
target*30
Currently the "target" comes from get_cursor_updates_per_vblank() which from
the number of MODE_CURSOR ioctl we manage to squeeze in between two vblanks
divided by 8.
We have seen a lot of failures where the target was not hit, but still all
of them managed to do about 1.5k cursor updates in that time, which means
about 3kHz cursor update rate, which is plenty.
That would mean if we have over 500 updates in that 30 frame window (0.5s)
we would hit the 1kHz requirement.
What am I missing in this reasoning?
Yes. that is how I have understood it too. In the D stepping that I am using, we are doing only about 1350 updates max. I tried to play around with reducing the threshold just to see at what point the test passes and the lesser we reduce the threshold value to, the lesser updates we are doing. Which is very weird....
I tried to play around with reducing the threshold just to see at
what point the test passes and the lesser we reduce the threshold
value to, the lesser updates we are doing. Which is very weird....
Interesting. 'target' does not play any role in the test other than
serving as the baseline for comparison at the very end of an iteration.
The only thing that comes to my mind is that cursor gets progressively
slower. Can you check that, as I don't have ICL at hands?
We do nloops=50 of iterations for cursor-vs-flip. You can turn the
igt_assert_f() to an igt_debug() and see how the shared[0], which
has the number of performed updates, changes over the course
of execution.