[Intel-gfx] [PATCH i-g-t] tests/core_hotunplug: Show device PCI bus address on errors
Janusz Krzysztofik
janusz.krzysztofik at linux.intel.com
Fri Nov 26 09:24:27 UTC 2021
On Friday, 26 November 2021 09:00:06 CET Bernatowicz, Marcin wrote:
>
> On 11/18/2021 9:41 AM, Janusz Krzysztofik wrote:
> > Strange -ENODEV responses from the kernel to i915 driver rebind attempts
> > have been sporadically observed. After successfully unbinding the driver
> > from a device by writing a string representing its PCI bus address to
> > /sys/bus/pci/driver/i915/unbind, the test then fails while writing the
> > same device PCI bus address string to /sys/bus/pci/drivers/i915/bind. It
> > is unlikely that the device disappears from the bus when this happens --
> > the test would attempt to rescan the bus in such cases while it doesn't.
> >
> > To shed more light on what may be going on, extend error messages emitted
> > by the test with the device PCI bus address string it uses also printed.
> >
> > Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
> > ---
> > tests/core_hotunplug.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c
> > index b36616688..2f2fb7ac1 100644
> > --- a/tests/core_hotunplug.c
> > +++ b/tests/core_hotunplug.c
> > @@ -174,11 +174,11 @@ static void driver_unbind(struct hotunplug *priv, const char *prefix,
> > igt_set_timeout(timeout, "Driver unbind timeout!");
> > igt_assert_f(igt_sysfs_set(priv->fd.sysfs_drv, "unbind",
> > priv->dev_bus_addr),
> > - "Driver unbind failure!\n");
> > + "Driver unbind failure (%s)!\n", priv->dev_bus_addr);
> > igt_reset_timeout();
> >
> > igt_assert_f(faccessat(priv->fd.sysfs_drv, priv->dev_bus_addr, F_OK, 0),
> > - "Unbound device still present\n");
> > + "Unbound device still present (%s)\n", priv->dev_bus_addr);
> > }
> >
> > /* Re-bind the driver to the device */
> > @@ -190,12 +190,12 @@ static void driver_bind(struct hotunplug *priv, int timeout)
> > igt_set_timeout(timeout, "Driver re-bind timeout!");
> > igt_assert_f(igt_sysfs_set(priv->fd.sysfs_drv, "bind",
> > priv->dev_bus_addr),
> > - "Driver re-bind failure\n!");
> > + "Driver re-bind failure (%s)!\n", priv->dev_bus_addr);
> > igt_reset_timeout();
> >
> > igt_fail_on_f(faccessat(priv->fd.sysfs_drv, priv->dev_bus_addr,
> > F_OK, 0),
> > - "Rebound device not present!\n");
> > + "Rebound device not present (%s)!\n", priv->dev_bus_addr);
> >
> > if (priv->snd_unload)
> > igt_kmod_load("snd_hda_intel", NULL);
> > @@ -223,7 +223,7 @@ static void device_unplug(struct hotunplug *priv, const char *prefix,
> > igt_assert_eq(priv->fd.sysfs_dev, -1);
> >
> > igt_assert_f(faccessat(priv->fd.sysfs_bus, priv->dev_bus_addr, F_OK, 0),
> > - "Unplugged device still present\n");
> > + "Unplugged device still present (%s)\n", priv->dev_bus_addr);
> > }
> >
> > /* Re-discover the device by rescanning its bus */
> > @@ -239,7 +239,7 @@ static void bus_rescan(struct hotunplug *priv, int timeout)
> >
> > igt_fail_on_f(faccessat(priv->fd.sysfs_bus, priv->dev_bus_addr,
> > F_OK, 0),
> > - "Fakely unplugged device not rediscovered!\n");
> > + "Fakely unplugged device not rediscovered (%s)!\n", priv->dev_bus_addr);
> > }
> >
> > static void cleanup(struct hotunplug *priv)
> >
> LGTM,
> Reviewed-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
Thanks Marcin, pushed.
Janusz
More information about the Intel-gfx
mailing list