Message ID | 20180628105140.7125-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Op 28-06-18 om 12:51 schreef Chris Wilson: > drm_atomic_helper allows for up to one outstanding cleanup task to be in > flight before a new modeset (see stall_commit in stall_checks()), In > lieu of hooking up a debugfs to force flushing of the outstanding work, > submit enough blocking modesets to ensure that the pending work is > completed before continuing. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > --- > tests/kms_universal_plane.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c > index 58f329e68..f875fd194 100644 > --- a/tests/kms_universal_plane.c > +++ b/tests/kms_universal_plane.c > @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) > igt_plane_set_fb(primary, NULL); > igt_plane_set_fb(cursor, NULL); > igt_display_commit2(display, COMMIT_LEGACY); > + igt_display_commit2(display, COMMIT_LEGACY); > cursor_leak_test_fini(data, output, &background_fb, cursor_fb); > > /* We should be back to the same framebuffer count as when we started */ This won't work, we won't commit anything without anything changed, probably best to put the set_fb in the loop too. Testcase: kms_universal_plane@cursor-fb-leak-*
Quoting Maarten Lankhorst (2018-06-28 12:06:35) > Op 28-06-18 om 12:51 schreef Chris Wilson: > > drm_atomic_helper allows for up to one outstanding cleanup task to be in > > flight before a new modeset (see stall_commit in stall_checks()), In > > lieu of hooking up a debugfs to force flushing of the outstanding work, > > submit enough blocking modesets to ensure that the pending work is > > completed before continuing. > > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > --- > > tests/kms_universal_plane.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c > > index 58f329e68..f875fd194 100644 > > --- a/tests/kms_universal_plane.c > > +++ b/tests/kms_universal_plane.c > > @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) > > igt_plane_set_fb(primary, NULL); > > igt_plane_set_fb(cursor, NULL); > > igt_display_commit2(display, COMMIT_LEGACY); > > + igt_display_commit2(display, COMMIT_LEGACY); > > cursor_leak_test_fini(data, output, &background_fb, cursor_fb); > > > > /* We should be back to the same framebuffer count as when we started */ > > This won't work, we won't commit anything without anything changed, probably best to put the set_fb in the loop too. Fill in the details above. :-p Is that igt or the kernel? I have this belief that when I ask it to do something, it should ;) igt_display_commit3(display, COMMIT_LEGACY, DOIT); -Chris
Op 28-06-18 om 13:16 schreef Chris Wilson: > Quoting Maarten Lankhorst (2018-06-28 12:06:35) >> Op 28-06-18 om 12:51 schreef Chris Wilson: >>> drm_atomic_helper allows for up to one outstanding cleanup task to be in >>> flight before a new modeset (see stall_commit in stall_checks()), In >>> lieu of hooking up a debugfs to force flushing of the outstanding work, >>> submit enough blocking modesets to ensure that the pending work is >>> completed before continuing. >>> >>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>> --- >>> tests/kms_universal_plane.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c >>> index 58f329e68..f875fd194 100644 >>> --- a/tests/kms_universal_plane.c >>> +++ b/tests/kms_universal_plane.c >>> @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) >>> igt_plane_set_fb(primary, NULL); >>> igt_plane_set_fb(cursor, NULL); >>> igt_display_commit2(display, COMMIT_LEGACY); >>> + igt_display_commit2(display, COMMIT_LEGACY); >>> cursor_leak_test_fini(data, output, &background_fb, cursor_fb); >>> >>> /* We should be back to the same framebuffer count as when we started */ >> This won't work, we won't commit anything without anything changed, probably best to put the set_fb in the loop too. > Fill in the details above. :-p > > Is that igt or the kernel? I have this belief that when I ask it to do > something, it should ;) > > igt_display_commit3(display, COMMIT_LEGACY, DOIT); > -Chris But you didn't tell it to do anything, nothing changed from last commit, so nothing gets committed.
Quoting Maarten Lankhorst (2018-06-28 12:25:18) > Op 28-06-18 om 13:16 schreef Chris Wilson: > > Quoting Maarten Lankhorst (2018-06-28 12:06:35) > >> Op 28-06-18 om 12:51 schreef Chris Wilson: > >>> drm_atomic_helper allows for up to one outstanding cleanup task to be in > >>> flight before a new modeset (see stall_commit in stall_checks()), In > >>> lieu of hooking up a debugfs to force flushing of the outstanding work, > >>> submit enough blocking modesets to ensure that the pending work is > >>> completed before continuing. > >>> > >>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > >>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > >>> --- > >>> tests/kms_universal_plane.c | 1 + > >>> 1 file changed, 1 insertion(+) > >>> > >>> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c > >>> index 58f329e68..f875fd194 100644 > >>> --- a/tests/kms_universal_plane.c > >>> +++ b/tests/kms_universal_plane.c > >>> @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) > >>> igt_plane_set_fb(primary, NULL); > >>> igt_plane_set_fb(cursor, NULL); > >>> igt_display_commit2(display, COMMIT_LEGACY); > >>> + igt_display_commit2(display, COMMIT_LEGACY); > >>> cursor_leak_test_fini(data, output, &background_fb, cursor_fb); > >>> > >>> /* We should be back to the same framebuffer count as when we started */ > >> This won't work, we won't commit anything without anything changed, probably best to put the set_fb in the loop too. > > Fill in the details above. :-p > > > > Is that igt or the kernel? I have this belief that when I ask it to do > > something, it should ;) > > > > igt_display_commit3(display, COMMIT_LEGACY, DOIT); > > -Chris > > But you didn't tell it to do anything, nothing changed from last commit, so nothing gets committed. But I want it to reapply the commit I built up. That's how I think of it, since I'm used to a stateless API. -Chris
Op 28-06-18 om 13:34 schreef Chris Wilson: > Quoting Maarten Lankhorst (2018-06-28 12:25:18) >> Op 28-06-18 om 13:16 schreef Chris Wilson: >>> Quoting Maarten Lankhorst (2018-06-28 12:06:35) >>>> Op 28-06-18 om 12:51 schreef Chris Wilson: >>>>> drm_atomic_helper allows for up to one outstanding cleanup task to be in >>>>> flight before a new modeset (see stall_commit in stall_checks()), In >>>>> lieu of hooking up a debugfs to force flushing of the outstanding work, >>>>> submit enough blocking modesets to ensure that the pending work is >>>>> completed before continuing. >>>>> >>>>> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> >>>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >>>>> --- >>>>> tests/kms_universal_plane.c | 1 + >>>>> 1 file changed, 1 insertion(+) >>>>> >>>>> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c >>>>> index 58f329e68..f875fd194 100644 >>>>> --- a/tests/kms_universal_plane.c >>>>> +++ b/tests/kms_universal_plane.c >>>>> @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) >>>>> igt_plane_set_fb(primary, NULL); >>>>> igt_plane_set_fb(cursor, NULL); >>>>> igt_display_commit2(display, COMMIT_LEGACY); >>>>> + igt_display_commit2(display, COMMIT_LEGACY); >>>>> cursor_leak_test_fini(data, output, &background_fb, cursor_fb); >>>>> >>>>> /* We should be back to the same framebuffer count as when we started */ >>>> This won't work, we won't commit anything without anything changed, probably best to put the set_fb in the loop too. >>> Fill in the details above. :-p >>> >>> Is that igt or the kernel? I have this belief that when I ask it to do >>> something, it should ;) >>> >>> igt_display_commit3(display, COMMIT_LEGACY, DOIT); >>> -Chris >> But you didn't tell it to do anything, nothing changed from last commit, so nothing gets committed. > But I want it to reapply the commit I built up. That's how I think of > it, since I'm used to a stateless API. > -Chris But there's nothing to apply, the commit is already applied. That's how the api has always worked, at least. :) ~Maarten
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c index 58f329e68..f875fd194 100644 --- a/tests/kms_universal_plane.c +++ b/tests/kms_universal_plane.c @@ -638,6 +638,7 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output) igt_plane_set_fb(primary, NULL); igt_plane_set_fb(cursor, NULL); igt_display_commit2(display, COMMIT_LEGACY); + igt_display_commit2(display, COMMIT_LEGACY); cursor_leak_test_fini(data, output, &background_fb, cursor_fb); /* We should be back to the same framebuffer count as when we started */
drm_atomic_helper allows for up to one outstanding cleanup task to be in flight before a new modeset (see stall_commit in stall_checks()), In lieu of hooking up a debugfs to force flushing of the outstanding work, submit enough blocking modesets to ensure that the pending work is completed before continuing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- tests/kms_universal_plane.c | 1 + 1 file changed, 1 insertion(+)