Message ID | 1402607917-12847-1-git-send-email-armin.c.reese@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 12, 2014 at 02:18:37PM -0700, armin.c.reese@intel.com wrote: > From: Armin Reese <armin.c.reese@intel.com> > > This subtest forces the driver down the code path in i915_gem_object_set_cache_level() > which unbinds VMAs and triggers the kernel panic described in VIZ-3721. This > test will pass if the bug fix is in place. > > Bugzilla: https://bugs.fredesktop.org/show_bug.cgi?id=76384 Where's that? -Chris
On Thu, Jun 12, 2014 at 02:18:37PM -0700, armin.c.reese@intel.com wrote: > From: Armin Reese <armin.c.reese@intel.com> > > This subtest forces the driver down the code path in i915_gem_object_set_cache_level() > which unbinds VMAs and triggers the kernel panic described in VIZ-3721. This > test will pass if the bug fix is in place. > > Bugzilla: https://bugs.fredesktop.org/show_bug.cgi?id=76384 > Signed-off-by: Armin Reese <armin.c.reese@intel.com> > --- > tests/gem_partial_pwrite_pread.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/tests/gem_partial_pwrite_pread.c b/tests/gem_partial_pwrite_pread.c > index 7945ba7..3e3ecc9 100644 > --- a/tests/gem_partial_pwrite_pread.c > +++ b/tests/gem_partial_pwrite_pread.c > @@ -131,6 +131,14 @@ static void test_partial_reads(void) > > } > > +static void test_set_cache(void) > +{ > + igt_info("checking set-cache\n"); > + > + blt_bo_fill(staging_bo, scratch_bo, 0); > + > +} Ok, my apologies for the unclear JIRA description. My idea was to have a tailor-made testcase with a minimal reproduction scenario (i.e. map into 2 ppgtt or ggtt + ppgtt, then do a set_caching ioctl). This here blows up because we do the set_caching as part of the fixture, so has a high risk that when someone decides to refactor the testcase we'll no longer test this bug. Hence the task to create a new, specific testcase. -Daniel > + > static void test_partial_writes(void) > { > int i, j; > @@ -244,6 +252,9 @@ static void do_tests(int cache_level, const char *suffix) > gem_set_caching(fd, scratch_bo->handle, cache_level); > } > > + igt_subtest_f("set-cache%s", suffix) > + test_set_cache(); > + > igt_subtest_f("reads%s", suffix) > test_partial_reads(); > > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Which of the I-G-Ts would be the best to house the set-cache subtest? Is gem_partial_pwrite_pread a good candidate? - Armin -----Original Message----- From: Daniel Vetter [mailto:daniel.vetter@ffwll.ch] On Behalf Of Daniel Vetter Sent: Friday, June 13, 2014 12:14 AM To: Reese, Armin C Cc: intel-gfx@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH] igt/gem_partial_pwrite_pread: Add set-cache subtest to validate JIRA VIZ-3721 On Thu, Jun 12, 2014 at 02:18:37PM -0700, armin.c.reese@intel.com wrote: > From: Armin Reese <armin.c.reese@intel.com> > > This subtest forces the driver down the code path in > i915_gem_object_set_cache_level() which unbinds VMAs and triggers the > kernel panic described in VIZ-3721. This test will pass if the bug fix is in place. > > Bugzilla: https://bugs.fredesktop.org/show_bug.cgi?id=76384 > Signed-off-by: Armin Reese <armin.c.reese@intel.com> > --- > tests/gem_partial_pwrite_pread.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/tests/gem_partial_pwrite_pread.c > b/tests/gem_partial_pwrite_pread.c > index 7945ba7..3e3ecc9 100644 > --- a/tests/gem_partial_pwrite_pread.c > +++ b/tests/gem_partial_pwrite_pread.c > @@ -131,6 +131,14 @@ static void test_partial_reads(void) > > } > > +static void test_set_cache(void) > +{ > + igt_info("checking set-cache\n"); > + > + blt_bo_fill(staging_bo, scratch_bo, 0); > + > +} Ok, my apologies for the unclear JIRA description. My idea was to have a tailor-made testcase with a minimal reproduction scenario (i.e. map into 2 ppgtt or ggtt + ppgtt, then do a set_caching ioctl). This here blows up because we do the set_caching as part of the fixture, so has a high risk that when someone decides to refactor the testcase we'll no longer test this bug. Hence the task to create a new, specific testcase. -Daniel > + > static void test_partial_writes(void) { > int i, j; > @@ -244,6 +252,9 @@ static void do_tests(int cache_level, const char *suffix) > gem_set_caching(fd, scratch_bo->handle, cache_level); > } > > + igt_subtest_f("set-cache%s", suffix) > + test_set_cache(); > + > igt_subtest_f("reads%s", suffix) > test_partial_reads(); > > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch
On Fri, Jul 11, 2014 at 05:55:41PM +0000, Reese, Armin C wrote: > Which of the I-G-Ts would be the best to house the set-cache subtest? > Is gem_partial_pwrite_pread a good candidate? I guess you could just create a new test binary if there's nothing suitable. Especially for tests I'm leaning towards "code reuse is overrated". And with igt_simple_main there's really no boilerplate (besides the obligatory license header) left. -Daniel > - Armin > > -----Original Message----- > From: Daniel Vetter [mailto:daniel.vetter@ffwll.ch] On Behalf Of Daniel Vetter > Sent: Friday, June 13, 2014 12:14 AM > To: Reese, Armin C > Cc: intel-gfx@lists.freedesktop.org > Subject: Re: [Intel-gfx] [PATCH] igt/gem_partial_pwrite_pread: Add set-cache subtest to validate JIRA VIZ-3721 > > On Thu, Jun 12, 2014 at 02:18:37PM -0700, armin.c.reese@intel.com wrote: > > From: Armin Reese <armin.c.reese@intel.com> > > > > This subtest forces the driver down the code path in > > i915_gem_object_set_cache_level() which unbinds VMAs and triggers the > > kernel panic described in VIZ-3721. This test will pass if the bug fix is in place. > > > > Bugzilla: https://bugs.fredesktop.org/show_bug.cgi?id=76384 > > Signed-off-by: Armin Reese <armin.c.reese@intel.com> > > --- > > tests/gem_partial_pwrite_pread.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/tests/gem_partial_pwrite_pread.c > > b/tests/gem_partial_pwrite_pread.c > > index 7945ba7..3e3ecc9 100644 > > --- a/tests/gem_partial_pwrite_pread.c > > +++ b/tests/gem_partial_pwrite_pread.c > > @@ -131,6 +131,14 @@ static void test_partial_reads(void) > > > > } > > > > +static void test_set_cache(void) > > +{ > > + igt_info("checking set-cache\n"); > > + > > + blt_bo_fill(staging_bo, scratch_bo, 0); > > + > > +} > > Ok, my apologies for the unclear JIRA description. My idea was to have a tailor-made testcase with a minimal reproduction scenario (i.e. map into 2 ppgtt or ggtt + ppgtt, then do a set_caching ioctl). > > This here blows up because we do the set_caching as part of the fixture, so has a high risk that when someone decides to refactor the testcase we'll no longer test this bug. Hence the task to create a new, specific testcase. > -Daniel > > > + > > static void test_partial_writes(void) { > > int i, j; > > @@ -244,6 +252,9 @@ static void do_tests(int cache_level, const char *suffix) > > gem_set_caching(fd, scratch_bo->handle, cache_level); > > } > > > > + igt_subtest_f("set-cache%s", suffix) > > + test_set_cache(); > > + > > igt_subtest_f("reads%s", suffix) > > test_partial_reads(); > > > > -- > > 1.9.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch
diff --git a/tests/gem_partial_pwrite_pread.c b/tests/gem_partial_pwrite_pread.c index 7945ba7..3e3ecc9 100644 --- a/tests/gem_partial_pwrite_pread.c +++ b/tests/gem_partial_pwrite_pread.c @@ -131,6 +131,14 @@ static void test_partial_reads(void) } +static void test_set_cache(void) +{ + igt_info("checking set-cache\n"); + + blt_bo_fill(staging_bo, scratch_bo, 0); + +} + static void test_partial_writes(void) { int i, j; @@ -244,6 +252,9 @@ static void do_tests(int cache_level, const char *suffix) gem_set_caching(fd, scratch_bo->handle, cache_level); } + igt_subtest_f("set-cache%s", suffix) + test_set_cache(); + igt_subtest_f("reads%s", suffix) test_partial_reads();