[igt-dev] [Intel-gfx] [PATCH i-g-t] tests/core_hotunplug: Show device PCI bus address on errors
Bernatowicz, Marcin
marcin.bernatowicz at linux.intel.com
Fri Nov 26 08:00:06 UTC 2021
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>
More information about the igt-dev
mailing list