Message ID | 20180904102004.5726-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [i-g-t] lib/pm_rpm: Reload the module with full mmio debugging | expand |
On Tue, Sep 04, 2018 at 11:20:04AM +0100, Chris Wilson wrote: > Our unclaimed mmio access debugging is lazy, doing cheap checks > periodically and only if they fail do a full check around every mmio > access. When testing for runtime pm, enable the full mmio debugging from > the initial load. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Imre Deak <imre.deak@intel.com> > --- > tests/pm_rpm.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c > index e3bb6227a..91aef0889 100644 > --- a/tests/pm_rpm.c > +++ b/tests/pm_rpm.c > @@ -2058,7 +2058,7 @@ int main(int argc, char *argv[]) > igt_subtest("module-reload") { > igt_debug("Reload w/o display\n"); > igt_i915_driver_unload(); > - igt_assert_eq(igt_i915_driver_load("disable_display=1"), 0); > + igt_assert_eq(igt_i915_driver_load("disable_display=1 mmio_debug=2147483647"), 0); > > igt_assert(setup_environment()); > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > @@ -2066,13 +2066,16 @@ int main(int argc, char *argv[]) > > igt_debug("Reload as normal\n"); > igt_i915_driver_unload(); > - igt_assert_eq(igt_i915_driver_load(NULL), 0); > + igt_assert_eq(igt_i915_driver_load("mmio_debug=2147483647"), 0); Could've been in hex. > > igt_assert(setup_environment()); > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > if (enable_one_screen_with_type(&ms_data, SCREEN_TYPE_ANY)) > drm_resources_equal_subtest(); > teardown_environment(); > + > + /* Remove our mmio_debugging module */ > + igt_i915_driver_unload(); What loads it again? > } > > igt_exit(); > -- > 2.19.0.rc1 >
Quoting Imre Deak (2018-09-04 15:14:06) > On Tue, Sep 04, 2018 at 11:20:04AM +0100, Chris Wilson wrote: > > Our unclaimed mmio access debugging is lazy, doing cheap checks > > periodically and only if they fail do a full check around every mmio > > access. When testing for runtime pm, enable the full mmio debugging from > > the initial load. > > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Imre Deak <imre.deak@intel.com> > > --- > > tests/pm_rpm.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c > > index e3bb6227a..91aef0889 100644 > > --- a/tests/pm_rpm.c > > +++ b/tests/pm_rpm.c > > @@ -2058,7 +2058,7 @@ int main(int argc, char *argv[]) > > igt_subtest("module-reload") { > > igt_debug("Reload w/o display\n"); > > igt_i915_driver_unload(); > > - igt_assert_eq(igt_i915_driver_load("disable_display=1"), 0); > > + igt_assert_eq(igt_i915_driver_load("disable_display=1 mmio_debug=2147483647"), 0); > > > > igt_assert(setup_environment()); > > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > > @@ -2066,13 +2066,16 @@ int main(int argc, char *argv[]) > > > > igt_debug("Reload as normal\n"); > > igt_i915_driver_unload(); > > - igt_assert_eq(igt_i915_driver_load(NULL), 0); > > + igt_assert_eq(igt_i915_driver_load("mmio_debug=2147483647"), 0); > > Could've been in hex. -1 should work as well as INT_MAX, I was just a bit dubious about that claim at the time. But the kernel looks to be happy enough to start counting down from -1. > > igt_assert(setup_environment()); > > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > > if (enable_one_screen_with_type(&ms_data, SCREEN_TYPE_ANY)) > > drm_resources_equal_subtest(); > > teardown_environment(); > > + > > + /* Remove our mmio_debugging module */ > > + igt_i915_driver_unload(); > > What loads it again? We automatically load it upon a failed drm_driver_open(). We have a list of modules to try and modprobe if we find no matching /dev/dri/* fd. -Chris
On Tue, Sep 04, 2018 at 03:21:09PM +0100, Chris Wilson wrote: > Quoting Imre Deak (2018-09-04 15:14:06) > > On Tue, Sep 04, 2018 at 11:20:04AM +0100, Chris Wilson wrote: > > > Our unclaimed mmio access debugging is lazy, doing cheap checks > > > periodically and only if they fail do a full check around every mmio > > > access. When testing for runtime pm, enable the full mmio debugging from > > > the initial load. > > > > > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > > > Cc: Imre Deak <imre.deak@intel.com> > > > --- > > > tests/pm_rpm.c | 7 +++++-- > > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > > > diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c > > > index e3bb6227a..91aef0889 100644 > > > --- a/tests/pm_rpm.c > > > +++ b/tests/pm_rpm.c > > > @@ -2058,7 +2058,7 @@ int main(int argc, char *argv[]) > > > igt_subtest("module-reload") { > > > igt_debug("Reload w/o display\n"); > > > igt_i915_driver_unload(); > > > - igt_assert_eq(igt_i915_driver_load("disable_display=1"), 0); > > > + igt_assert_eq(igt_i915_driver_load("disable_display=1 mmio_debug=2147483647"), 0); > > > > > > igt_assert(setup_environment()); > > > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > > > @@ -2066,13 +2066,16 @@ int main(int argc, char *argv[]) > > > > > > igt_debug("Reload as normal\n"); > > > igt_i915_driver_unload(); > > > - igt_assert_eq(igt_i915_driver_load(NULL), 0); > > > + igt_assert_eq(igt_i915_driver_load("mmio_debug=2147483647"), 0); > > > > Could've been in hex. > -1 should work as well as INT_MAX, I was just a bit dubious about that > claim at the time. But the kernel looks to be happy enough to start > counting down from -1. > > > > igt_assert(setup_environment()); > > > igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); > > > if (enable_one_screen_with_type(&ms_data, SCREEN_TYPE_ANY)) > > > drm_resources_equal_subtest(); > > > teardown_environment(); > > > + > > > + /* Remove our mmio_debugging module */ > > > + igt_i915_driver_unload(); > > > > What loads it again? > > We automatically load it upon a failed drm_driver_open(). We have a list > of modules to try and modprobe if we find no matching /dev/dri/* fd. Ok, missed that. Looks ok: Reviewed-by: Imre Deak <imre.deak@intel.com> > -Chris
diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c index e3bb6227a..91aef0889 100644 --- a/tests/pm_rpm.c +++ b/tests/pm_rpm.c @@ -2058,7 +2058,7 @@ int main(int argc, char *argv[]) igt_subtest("module-reload") { igt_debug("Reload w/o display\n"); igt_i915_driver_unload(); - igt_assert_eq(igt_i915_driver_load("disable_display=1"), 0); + igt_assert_eq(igt_i915_driver_load("disable_display=1 mmio_debug=2147483647"), 0); igt_assert(setup_environment()); igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); @@ -2066,13 +2066,16 @@ int main(int argc, char *argv[]) igt_debug("Reload as normal\n"); igt_i915_driver_unload(); - igt_assert_eq(igt_i915_driver_load(NULL), 0); + igt_assert_eq(igt_i915_driver_load("mmio_debug=2147483647"), 0); igt_assert(setup_environment()); igt_assert(igt_wait(device_in_pci_d3(), 2000, 100)); if (enable_one_screen_with_type(&ms_data, SCREEN_TYPE_ANY)) drm_resources_equal_subtest(); teardown_environment(); + + /* Remove our mmio_debugging module */ + igt_i915_driver_unload(); } igt_exit();
Our unclaimed mmio access debugging is lazy, doing cheap checks periodically and only if they fail do a full check around every mmio access. When testing for runtime pm, enable the full mmio debugging from the initial load. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Imre Deak <imre.deak@intel.com> --- tests/pm_rpm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)