* [PATCH v5 0/2] Let userspace know when snd-hda-intel needs i915 @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: Mauro Carvalho Chehab, mauro.chehab, Greg KH, intel-gfx, dri-devel, Lucas De Marchi, Kai Vehmanen, Pierre-Louis Bossart, Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-kernel, linux-modules, Daniel Vetter, David Airlie Currently, kernel/module annotates module dependencies when request_symbol is used, but it doesn't cover more complex inter-driver dependencies that are subsystem and/or driver-specific. In the case of hdmi sound, depending on the CPU/GPU, sometimes the snd_hda_driver can talk directly with the hardware, but sometimes, it uses the i915 driver. When the snd_hda_driver uses i915, it should first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915 driver cause driver issues, as as reported by CI tools with different GPU models: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html In the past, just a few CPUs were doing such bindings, but this issue now applies to all "modern" Intel CPUs that have onboard graphics, as well as to the newer discrete GPUs. With the discrete GPU case, the HDA controller is physically separate and requires i915 to power on the hardware for all hardware access. In this case, the issue is hit basicly 100% of the time. With on-board graphics, i915 driver is needed only when the display codec is accessed. If i915 is unbind during runtime suspend, while snd-hda-intel is still bound, nothing bad happens, but unbinding i915 on other situations may also cause issues. So, add support at kernel/modules to allow snd-hda drivers to properly annotate when a dependency on a DRM driver dependencies exists, and add a call to such new function at the snd-hda driver when it successfully binds into the DRM driver. This would allow userspace tools to check and properly remove the audio driver before trying to remove or unbind the GPU driver. It should be noticed that this series conveys the hidden module dependencies. Other changes are needed in order to allow removing or unbinding the i915 driver while keeping the snd-hda-intel driver loaded/bound. With that regards, there are some discussions on how to improve this at alsa-devel a while back: https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html So, future improvements on both in i915 and the audio drivers could be made. E.g. with discrete GPUs, it's the only codec of the card, so it seems feasible to detach the ALSA card if i915 is bound (using infra made for VGA switcheroo), but, until these improvements are done and land in upstream, audio drivers needs to be unbound if i915 driver goes unbind. Yet, even if such fixes got merged, this series is still needed, as it makes such dependencies more explicit and easier to debug. PS.: This series was generated against next-20220428. --- v5: - while v4 works fine, it ends calling try_module_format() recursively, which is not what it it was supposed to do. So, change the logic to avoid such recursion, by adding a static __try_module_format() and renaming the new version that takes two arguments as try_module_format_owner(). v4: - fix a compilation warning reported by Intel's Kernel robot when !CONFIG_MODULE_UNLOAD or !CONFIG_MODULE. v3: minor fixes: - fixed a checkpatch warning; - use a single line for the new function prototype. v2: - the dependencies are now handled directly at try_module_get(). Mauro Carvalho Chehab (2): module: update dependencies at try_module_get() ALSA: hda - identify when audio is provided by a video driver include/linux/module.h | 8 +++-- kernel/module/main.c | 65 ++++++++++++++++++++++++++++++-------- sound/hda/hdac_component.c | 2 +- 3 files changed, 57 insertions(+), 18 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v5 0/2] Let userspace know when snd-hda-intel needs i915 @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, David Airlie, linux-modules, Daniel Vetter, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Currently, kernel/module annotates module dependencies when request_symbol is used, but it doesn't cover more complex inter-driver dependencies that are subsystem and/or driver-specific. In the case of hdmi sound, depending on the CPU/GPU, sometimes the snd_hda_driver can talk directly with the hardware, but sometimes, it uses the i915 driver. When the snd_hda_driver uses i915, it should first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915 driver cause driver issues, as as reported by CI tools with different GPU models: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html In the past, just a few CPUs were doing such bindings, but this issue now applies to all "modern" Intel CPUs that have onboard graphics, as well as to the newer discrete GPUs. With the discrete GPU case, the HDA controller is physically separate and requires i915 to power on the hardware for all hardware access. In this case, the issue is hit basicly 100% of the time. With on-board graphics, i915 driver is needed only when the display codec is accessed. If i915 is unbind during runtime suspend, while snd-hda-intel is still bound, nothing bad happens, but unbinding i915 on other situations may also cause issues. So, add support at kernel/modules to allow snd-hda drivers to properly annotate when a dependency on a DRM driver dependencies exists, and add a call to such new function at the snd-hda driver when it successfully binds into the DRM driver. This would allow userspace tools to check and properly remove the audio driver before trying to remove or unbind the GPU driver. It should be noticed that this series conveys the hidden module dependencies. Other changes are needed in order to allow removing or unbinding the i915 driver while keeping the snd-hda-intel driver loaded/bound. With that regards, there are some discussions on how to improve this at alsa-devel a while back: https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html So, future improvements on both in i915 and the audio drivers could be made. E.g. with discrete GPUs, it's the only codec of the card, so it seems feasible to detach the ALSA card if i915 is bound (using infra made for VGA switcheroo), but, until these improvements are done and land in upstream, audio drivers needs to be unbound if i915 driver goes unbind. Yet, even if such fixes got merged, this series is still needed, as it makes such dependencies more explicit and easier to debug. PS.: This series was generated against next-20220428. --- v5: - while v4 works fine, it ends calling try_module_format() recursively, which is not what it it was supposed to do. So, change the logic to avoid such recursion, by adding a static __try_module_format() and renaming the new version that takes two arguments as try_module_format_owner(). v4: - fix a compilation warning reported by Intel's Kernel robot when !CONFIG_MODULE_UNLOAD or !CONFIG_MODULE. v3: minor fixes: - fixed a checkpatch warning; - use a single line for the new function prototype. v2: - the dependencies are now handled directly at try_module_get(). Mauro Carvalho Chehab (2): module: update dependencies at try_module_get() ALSA: hda - identify when audio is provided by a video driver include/linux/module.h | 8 +++-- kernel/module/main.c | 65 ++++++++++++++++++++++++++++++-------- sound/hda/hdac_component.c | 2 +- 3 files changed, 57 insertions(+), 18 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Intel-gfx] [PATCH v5 0/2] Let userspace know when snd-hda-intel needs i915 @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, David Airlie, linux-modules, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Currently, kernel/module annotates module dependencies when request_symbol is used, but it doesn't cover more complex inter-driver dependencies that are subsystem and/or driver-specific. In the case of hdmi sound, depending on the CPU/GPU, sometimes the snd_hda_driver can talk directly with the hardware, but sometimes, it uses the i915 driver. When the snd_hda_driver uses i915, it should first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915 driver cause driver issues, as as reported by CI tools with different GPU models: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html In the past, just a few CPUs were doing such bindings, but this issue now applies to all "modern" Intel CPUs that have onboard graphics, as well as to the newer discrete GPUs. With the discrete GPU case, the HDA controller is physically separate and requires i915 to power on the hardware for all hardware access. In this case, the issue is hit basicly 100% of the time. With on-board graphics, i915 driver is needed only when the display codec is accessed. If i915 is unbind during runtime suspend, while snd-hda-intel is still bound, nothing bad happens, but unbinding i915 on other situations may also cause issues. So, add support at kernel/modules to allow snd-hda drivers to properly annotate when a dependency on a DRM driver dependencies exists, and add a call to such new function at the snd-hda driver when it successfully binds into the DRM driver. This would allow userspace tools to check and properly remove the audio driver before trying to remove or unbind the GPU driver. It should be noticed that this series conveys the hidden module dependencies. Other changes are needed in order to allow removing or unbinding the i915 driver while keeping the snd-hda-intel driver loaded/bound. With that regards, there are some discussions on how to improve this at alsa-devel a while back: https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html So, future improvements on both in i915 and the audio drivers could be made. E.g. with discrete GPUs, it's the only codec of the card, so it seems feasible to detach the ALSA card if i915 is bound (using infra made for VGA switcheroo), but, until these improvements are done and land in upstream, audio drivers needs to be unbound if i915 driver goes unbind. Yet, even if such fixes got merged, this series is still needed, as it makes such dependencies more explicit and easier to debug. PS.: This series was generated against next-20220428. --- v5: - while v4 works fine, it ends calling try_module_format() recursively, which is not what it it was supposed to do. So, change the logic to avoid such recursion, by adding a static __try_module_format() and renaming the new version that takes two arguments as try_module_format_owner(). v4: - fix a compilation warning reported by Intel's Kernel robot when !CONFIG_MODULE_UNLOAD or !CONFIG_MODULE. v3: minor fixes: - fixed a checkpatch warning; - use a single line for the new function prototype. v2: - the dependencies are now handled directly at try_module_get(). Mauro Carvalho Chehab (2): module: update dependencies at try_module_get() ALSA: hda - identify when audio is provided by a video driver include/linux/module.h | 8 +++-- kernel/module/main.c | 65 ++++++++++++++++++++++++++++++-------- sound/hda/hdac_component.c | 2 +- 3 files changed, 57 insertions(+), 18 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v5 0/2] Let userspace know when snd-hda-intel needs i915 @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, David Airlie, linux-modules, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Currently, kernel/module annotates module dependencies when request_symbol is used, but it doesn't cover more complex inter-driver dependencies that are subsystem and/or driver-specific. In the case of hdmi sound, depending on the CPU/GPU, sometimes the snd_hda_driver can talk directly with the hardware, but sometimes, it uses the i915 driver. When the snd_hda_driver uses i915, it should first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915 driver cause driver issues, as as reported by CI tools with different GPU models: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html In the past, just a few CPUs were doing such bindings, but this issue now applies to all "modern" Intel CPUs that have onboard graphics, as well as to the newer discrete GPUs. With the discrete GPU case, the HDA controller is physically separate and requires i915 to power on the hardware for all hardware access. In this case, the issue is hit basicly 100% of the time. With on-board graphics, i915 driver is needed only when the display codec is accessed. If i915 is unbind during runtime suspend, while snd-hda-intel is still bound, nothing bad happens, but unbinding i915 on other situations may also cause issues. So, add support at kernel/modules to allow snd-hda drivers to properly annotate when a dependency on a DRM driver dependencies exists, and add a call to such new function at the snd-hda driver when it successfully binds into the DRM driver. This would allow userspace tools to check and properly remove the audio driver before trying to remove or unbind the GPU driver. It should be noticed that this series conveys the hidden module dependencies. Other changes are needed in order to allow removing or unbinding the i915 driver while keeping the snd-hda-intel driver loaded/bound. With that regards, there are some discussions on how to improve this at alsa-devel a while back: https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html So, future improvements on both in i915 and the audio drivers could be made. E.g. with discrete GPUs, it's the only codec of the card, so it seems feasible to detach the ALSA card if i915 is bound (using infra made for VGA switcheroo), but, until these improvements are done and land in upstream, audio drivers needs to be unbound if i915 driver goes unbind. Yet, even if such fixes got merged, this series is still needed, as it makes such dependencies more explicit and easier to debug. PS.: This series was generated against next-20220428. --- v5: - while v4 works fine, it ends calling try_module_format() recursively, which is not what it it was supposed to do. So, change the logic to avoid such recursion, by adding a static __try_module_format() and renaming the new version that takes two arguments as try_module_format_owner(). v4: - fix a compilation warning reported by Intel's Kernel robot when !CONFIG_MODULE_UNLOAD or !CONFIG_MODULE. v3: minor fixes: - fixed a checkpatch warning; - use a single line for the new function prototype. v2: - the dependencies are now handled directly at try_module_get(). Mauro Carvalho Chehab (2): module: update dependencies at try_module_get() ALSA: hda - identify when audio is provided by a video driver include/linux/module.h | 8 +++-- kernel/module/main.c | 65 ++++++++++++++++++++++++++++++-------- sound/hda/hdac_component.c | 2 +- 3 files changed, 57 insertions(+), 18 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v5 1/2] module: update dependencies at try_module_get() 2022-04-30 20:04 ` Mauro Carvalho Chehab (?) (?) @ 2022-04-30 20:04 ` Mauro Carvalho Chehab -1 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: Mauro Carvalho Chehab, Daniel Vetter, David Airlie, Greg KH, Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel, linux-modules, mauro.chehab, Dan Williams Sometimes, device drivers are bound into each other via try_module_get(), making such references invisible when looking at /proc/modules or lsmod. Add a function to allow setting up module references for such cases, and call it when try_module_get() is used. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ include/linux/module.h | 8 ++++-- kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index 46d4d5f2516e..3d9d38c426b4 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); /* This is the Right Way to get a module: if it fails, it's being removed, * so pretend it's not there. */ -extern bool try_module_get(struct module *module); +extern bool try_module_get_owner(struct module *module, struct module *this); extern void module_put(struct module *module); #else /*!CONFIG_MODULE_UNLOAD*/ -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return !module || module_is_live(module); } @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) { } -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return true; } @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) } #endif /* CONFIG_MODULE_SIG */ +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) + int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data); diff --git a/kernel/module/main.c b/kernel/module/main.c index 05a42d8fcd7a..218c4308bb7a 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) } EXPORT_SYMBOL(unregister_module_notifier); +static bool __try_module_get(struct module *module) +{ + bool ret = true; + + if (module) { + preempt_disable(); + /* Note: here, we can fail to get a reference */ + if (likely(module_is_live(module) && + atomic_inc_not_zero(&module->refcnt) != 0)) + trace_module_get(module, _RET_IP_); + else + ret = false; + + preempt_enable(); + } + return ret; +} + /* * We require a truly strong try_module_get(): 0 means success. * Otherwise an error is returned due to ongoing or failed @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); if (mod && mod->state == MODULE_STATE_COMING) return -EBUSY; - if (try_module_get(mod)) + if (__try_module_get(mod)) return 0; else return -ENOENT; @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) return 0; } +static int ref_module_dependency(struct module *mod, struct module *this) +{ + int ret; + + if (!this || !this->name) + return -EINVAL; + + if (mod == this) + return 0; + + mutex_lock(&module_mutex); + + ret = ref_module(this, mod); + +#ifdef CONFIG_MODULE_UNLOAD + if (ret) + goto ret; + + ret = sysfs_create_link(mod->holders_dir, + &this->mkobj.kobj, this->name); +#endif + +ret: + mutex_unlock(&module_mutex); + return ret; +} + /* Clear the unload stuff of the module. */ static void module_unload_free(struct module *mod) { @@ -841,24 +886,16 @@ void __module_get(struct module *module) } EXPORT_SYMBOL(__module_get); -bool try_module_get(struct module *module) +bool try_module_get_owner(struct module *module, struct module *this) { - bool ret = true; + int ret = __try_module_get(module); - if (module) { - preempt_disable(); - /* Note: here, we can fail to get a reference */ - if (likely(module_is_live(module) && - atomic_inc_not_zero(&module->refcnt) != 0)) - trace_module_get(module, _RET_IP_); - else - ret = false; + if (ret) + ref_module_dependency(module, this); - preempt_enable(); - } return ret; } -EXPORT_SYMBOL(try_module_get); +EXPORT_SYMBOL(try_module_get_owner); void module_put(struct module *module) { -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen, linux-modules, Daniel Vetter, Dan Williams, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Sometimes, device drivers are bound into each other via try_module_get(), making such references invisible when looking at /proc/modules or lsmod. Add a function to allow setting up module references for such cases, and call it when try_module_get() is used. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ include/linux/module.h | 8 ++++-- kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index 46d4d5f2516e..3d9d38c426b4 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); /* This is the Right Way to get a module: if it fails, it's being removed, * so pretend it's not there. */ -extern bool try_module_get(struct module *module); +extern bool try_module_get_owner(struct module *module, struct module *this); extern void module_put(struct module *module); #else /*!CONFIG_MODULE_UNLOAD*/ -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return !module || module_is_live(module); } @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) { } -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return true; } @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) } #endif /* CONFIG_MODULE_SIG */ +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) + int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data); diff --git a/kernel/module/main.c b/kernel/module/main.c index 05a42d8fcd7a..218c4308bb7a 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) } EXPORT_SYMBOL(unregister_module_notifier); +static bool __try_module_get(struct module *module) +{ + bool ret = true; + + if (module) { + preempt_disable(); + /* Note: here, we can fail to get a reference */ + if (likely(module_is_live(module) && + atomic_inc_not_zero(&module->refcnt) != 0)) + trace_module_get(module, _RET_IP_); + else + ret = false; + + preempt_enable(); + } + return ret; +} + /* * We require a truly strong try_module_get(): 0 means success. * Otherwise an error is returned due to ongoing or failed @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); if (mod && mod->state == MODULE_STATE_COMING) return -EBUSY; - if (try_module_get(mod)) + if (__try_module_get(mod)) return 0; else return -ENOENT; @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) return 0; } +static int ref_module_dependency(struct module *mod, struct module *this) +{ + int ret; + + if (!this || !this->name) + return -EINVAL; + + if (mod == this) + return 0; + + mutex_lock(&module_mutex); + + ret = ref_module(this, mod); + +#ifdef CONFIG_MODULE_UNLOAD + if (ret) + goto ret; + + ret = sysfs_create_link(mod->holders_dir, + &this->mkobj.kobj, this->name); +#endif + +ret: + mutex_unlock(&module_mutex); + return ret; +} + /* Clear the unload stuff of the module. */ static void module_unload_free(struct module *mod) { @@ -841,24 +886,16 @@ void __module_get(struct module *module) } EXPORT_SYMBOL(__module_get); -bool try_module_get(struct module *module) +bool try_module_get_owner(struct module *module, struct module *this) { - bool ret = true; + int ret = __try_module_get(module); - if (module) { - preempt_disable(); - /* Note: here, we can fail to get a reference */ - if (likely(module_is_live(module) && - atomic_inc_not_zero(&module->refcnt) != 0)) - trace_module_get(module, _RET_IP_); - else - ret = false; + if (ret) + ref_module_dependency(module, this); - preempt_enable(); - } return ret; } -EXPORT_SYMBOL(try_module_get); +EXPORT_SYMBOL(try_module_get_owner); void module_put(struct module *module) { -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Sometimes, device drivers are bound into each other via try_module_get(), making such references invisible when looking at /proc/modules or lsmod. Add a function to allow setting up module references for such cases, and call it when try_module_get() is used. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ include/linux/module.h | 8 ++++-- kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index 46d4d5f2516e..3d9d38c426b4 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); /* This is the Right Way to get a module: if it fails, it's being removed, * so pretend it's not there. */ -extern bool try_module_get(struct module *module); +extern bool try_module_get_owner(struct module *module, struct module *this); extern void module_put(struct module *module); #else /*!CONFIG_MODULE_UNLOAD*/ -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return !module || module_is_live(module); } @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) { } -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return true; } @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) } #endif /* CONFIG_MODULE_SIG */ +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) + int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data); diff --git a/kernel/module/main.c b/kernel/module/main.c index 05a42d8fcd7a..218c4308bb7a 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) } EXPORT_SYMBOL(unregister_module_notifier); +static bool __try_module_get(struct module *module) +{ + bool ret = true; + + if (module) { + preempt_disable(); + /* Note: here, we can fail to get a reference */ + if (likely(module_is_live(module) && + atomic_inc_not_zero(&module->refcnt) != 0)) + trace_module_get(module, _RET_IP_); + else + ret = false; + + preempt_enable(); + } + return ret; +} + /* * We require a truly strong try_module_get(): 0 means success. * Otherwise an error is returned due to ongoing or failed @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); if (mod && mod->state == MODULE_STATE_COMING) return -EBUSY; - if (try_module_get(mod)) + if (__try_module_get(mod)) return 0; else return -ENOENT; @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) return 0; } +static int ref_module_dependency(struct module *mod, struct module *this) +{ + int ret; + + if (!this || !this->name) + return -EINVAL; + + if (mod == this) + return 0; + + mutex_lock(&module_mutex); + + ret = ref_module(this, mod); + +#ifdef CONFIG_MODULE_UNLOAD + if (ret) + goto ret; + + ret = sysfs_create_link(mod->holders_dir, + &this->mkobj.kobj, this->name); +#endif + +ret: + mutex_unlock(&module_mutex); + return ret; +} + /* Clear the unload stuff of the module. */ static void module_unload_free(struct module *mod) { @@ -841,24 +886,16 @@ void __module_get(struct module *module) } EXPORT_SYMBOL(__module_get); -bool try_module_get(struct module *module) +bool try_module_get_owner(struct module *module, struct module *this) { - bool ret = true; + int ret = __try_module_get(module); - if (module) { - preempt_disable(); - /* Note: here, we can fail to get a reference */ - if (likely(module_is_live(module) && - atomic_inc_not_zero(&module->refcnt) != 0)) - trace_module_get(module, _RET_IP_); - else - ret = false; + if (ret) + ref_module_dependency(module, this); - preempt_enable(); - } return ret; } -EXPORT_SYMBOL(try_module_get); +EXPORT_SYMBOL(try_module_get_owner); void module_put(struct module *module) { -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart Sometimes, device drivers are bound into each other via try_module_get(), making such references invisible when looking at /proc/modules or lsmod. Add a function to allow setting up module references for such cases, and call it when try_module_get() is used. Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ include/linux/module.h | 8 ++++-- kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index 46d4d5f2516e..3d9d38c426b4 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); /* This is the Right Way to get a module: if it fails, it's being removed, * so pretend it's not there. */ -extern bool try_module_get(struct module *module); +extern bool try_module_get_owner(struct module *module, struct module *this); extern void module_put(struct module *module); #else /*!CONFIG_MODULE_UNLOAD*/ -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return !module || module_is_live(module); } @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) { } -static inline bool try_module_get(struct module *module) +static inline bool try_module_get_owner(struct module *module, struct module *this) { return true; } @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) } #endif /* CONFIG_MODULE_SIG */ +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) + int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data); diff --git a/kernel/module/main.c b/kernel/module/main.c index 05a42d8fcd7a..218c4308bb7a 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) } EXPORT_SYMBOL(unregister_module_notifier); +static bool __try_module_get(struct module *module) +{ + bool ret = true; + + if (module) { + preempt_disable(); + /* Note: here, we can fail to get a reference */ + if (likely(module_is_live(module) && + atomic_inc_not_zero(&module->refcnt) != 0)) + trace_module_get(module, _RET_IP_); + else + ret = false; + + preempt_enable(); + } + return ret; +} + /* * We require a truly strong try_module_get(): 0 means success. * Otherwise an error is returned due to ongoing or failed @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); if (mod && mod->state == MODULE_STATE_COMING) return -EBUSY; - if (try_module_get(mod)) + if (__try_module_get(mod)) return 0; else return -ENOENT; @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) return 0; } +static int ref_module_dependency(struct module *mod, struct module *this) +{ + int ret; + + if (!this || !this->name) + return -EINVAL; + + if (mod == this) + return 0; + + mutex_lock(&module_mutex); + + ret = ref_module(this, mod); + +#ifdef CONFIG_MODULE_UNLOAD + if (ret) + goto ret; + + ret = sysfs_create_link(mod->holders_dir, + &this->mkobj.kobj, this->name); +#endif + +ret: + mutex_unlock(&module_mutex); + return ret; +} + /* Clear the unload stuff of the module. */ static void module_unload_free(struct module *mod) { @@ -841,24 +886,16 @@ void __module_get(struct module *module) } EXPORT_SYMBOL(__module_get); -bool try_module_get(struct module *module) +bool try_module_get_owner(struct module *module, struct module *this) { - bool ret = true; + int ret = __try_module_get(module); - if (module) { - preempt_disable(); - /* Note: here, we can fail to get a reference */ - if (likely(module_is_live(module) && - atomic_inc_not_zero(&module->refcnt) != 0)) - trace_module_get(module, _RET_IP_); - else - ret = false; + if (ret) + ref_module_dependency(module, this); - preempt_enable(); - } return ret; } -EXPORT_SYMBOL(try_module_get); +EXPORT_SYMBOL(try_module_get_owner); void module_put(struct module *module) { -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH v5 1/2] module: update dependencies at try_module_get() 2022-04-30 20:04 ` Mauro Carvalho Chehab (?) (?) @ 2022-05-02 6:08 ` Christophe Leroy -1 siblings, 0 replies; 28+ messages in thread From: Christophe Leroy @ 2022-05-02 6:08 UTC (permalink / raw) To: Mauro Carvalho Chehab, Luis Chamberlain Cc: Daniel Vetter, David Airlie, Greg KH, Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel, linux-modules, mauro.chehab, Dan Williams Le 30/04/2022 à 22:04, Mauro Carvalho Chehab a écrit : > Sometimes, device drivers are bound into each other via try_module_get(), > making such references invisible when looking at /proc/modules or lsmod. > > Add a function to allow setting up module references for such > cases, and call it when try_module_get() is used. > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > > See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ > > include/linux/module.h | 8 ++++-- > kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- > 2 files changed, 56 insertions(+), 17 deletions(-) > > diff --git a/include/linux/module.h b/include/linux/module.h > index 46d4d5f2516e..3d9d38c426b4 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); > > /* This is the Right Way to get a module: if it fails, it's being removed, > * so pretend it's not there. */ > -extern bool try_module_get(struct module *module); > +extern bool try_module_get_owner(struct module *module, struct module *this); You may want to remove that useless 'extern'. 'checkpatch --strict' will likely tell you to do so. > > extern void module_put(struct module *module); > > #else /*!CONFIG_MODULE_UNLOAD*/ > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return !module || module_is_live(module); > } > @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) > { > } > > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return true; > } > @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) > } > #endif /* CONFIG_MODULE_SIG */ > > +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) > + > int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, > struct module *, unsigned long), > void *data); > diff --git a/kernel/module/main.c b/kernel/module/main.c > index 05a42d8fcd7a..218c4308bb7a 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) > } > EXPORT_SYMBOL(unregister_module_notifier); > > +static bool __try_module_get(struct module *module) > +{ > + bool ret = true; > + > + if (module) { > + preempt_disable(); > + /* Note: here, we can fail to get a reference */ > + if (likely(module_is_live(module) && > + atomic_inc_not_zero(&module->refcnt) != 0)) > + trace_module_get(module, _RET_IP_); > + else > + ret = false; > + > + preempt_enable(); > + } > + return ret; > +} > + > /* > * We require a truly strong try_module_get(): 0 means success. > * Otherwise an error is returned due to ongoing or failed > @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) > BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); > if (mod && mod->state == MODULE_STATE_COMING) > return -EBUSY; > - if (try_module_get(mod)) > + if (__try_module_get(mod)) > return 0; > else > return -ENOENT; > @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) > return 0; > } > > +static int ref_module_dependency(struct module *mod, struct module *this) What is 'this' ? Can we give it a more precise name ? Is it a child, a parent, a owner, something else ? > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD Looks like that #ifdef could be avoided and replaced by IS_ENABLED(CONFIG_MODULE_UNLOAD) Something like: if (!IS_ENABLED(CONFIG_MODULE_UNLOAD) || ret) goto ret; > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) Same here, what is 'this' exactly ? > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-02 6:08 ` Christophe Leroy 0 siblings, 0 replies; 28+ messages in thread From: Christophe Leroy @ 2022-05-02 6:08 UTC (permalink / raw) To: Mauro Carvalho Chehab, Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, linux-kernel, Pierre-Louis Bossart Le 30/04/2022 à 22:04, Mauro Carvalho Chehab a écrit : > Sometimes, device drivers are bound into each other via try_module_get(), > making such references invisible when looking at /proc/modules or lsmod. > > Add a function to allow setting up module references for such > cases, and call it when try_module_get() is used. > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > > See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ > > include/linux/module.h | 8 ++++-- > kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- > 2 files changed, 56 insertions(+), 17 deletions(-) > > diff --git a/include/linux/module.h b/include/linux/module.h > index 46d4d5f2516e..3d9d38c426b4 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); > > /* This is the Right Way to get a module: if it fails, it's being removed, > * so pretend it's not there. */ > -extern bool try_module_get(struct module *module); > +extern bool try_module_get_owner(struct module *module, struct module *this); You may want to remove that useless 'extern'. 'checkpatch --strict' will likely tell you to do so. > > extern void module_put(struct module *module); > > #else /*!CONFIG_MODULE_UNLOAD*/ > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return !module || module_is_live(module); > } > @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) > { > } > > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return true; > } > @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) > } > #endif /* CONFIG_MODULE_SIG */ > > +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) > + > int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, > struct module *, unsigned long), > void *data); > diff --git a/kernel/module/main.c b/kernel/module/main.c > index 05a42d8fcd7a..218c4308bb7a 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) > } > EXPORT_SYMBOL(unregister_module_notifier); > > +static bool __try_module_get(struct module *module) > +{ > + bool ret = true; > + > + if (module) { > + preempt_disable(); > + /* Note: here, we can fail to get a reference */ > + if (likely(module_is_live(module) && > + atomic_inc_not_zero(&module->refcnt) != 0)) > + trace_module_get(module, _RET_IP_); > + else > + ret = false; > + > + preempt_enable(); > + } > + return ret; > +} > + > /* > * We require a truly strong try_module_get(): 0 means success. > * Otherwise an error is returned due to ongoing or failed > @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) > BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); > if (mod && mod->state == MODULE_STATE_COMING) > return -EBUSY; > - if (try_module_get(mod)) > + if (__try_module_get(mod)) > return 0; > else > return -ENOENT; > @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) > return 0; > } > > +static int ref_module_dependency(struct module *mod, struct module *this) What is 'this' ? Can we give it a more precise name ? Is it a child, a parent, a owner, something else ? > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD Looks like that #ifdef could be avoided and replaced by IS_ENABLED(CONFIG_MODULE_UNLOAD) Something like: if (!IS_ENABLED(CONFIG_MODULE_UNLOAD) || ret) goto ret; > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) Same here, what is 'this' exactly ? > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-02 6:08 ` Christophe Leroy 0 siblings, 0 replies; 28+ messages in thread From: Christophe Leroy @ 2022-05-02 6:08 UTC (permalink / raw) To: Mauro Carvalho Chehab, Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen, linux-modules, Daniel Vetter, Dan Williams, linux-kernel, Pierre-Louis Bossart Le 30/04/2022 à 22:04, Mauro Carvalho Chehab a écrit : > Sometimes, device drivers are bound into each other via try_module_get(), > making such references invisible when looking at /proc/modules or lsmod. > > Add a function to allow setting up module references for such > cases, and call it when try_module_get() is used. > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > > See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ > > include/linux/module.h | 8 ++++-- > kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- > 2 files changed, 56 insertions(+), 17 deletions(-) > > diff --git a/include/linux/module.h b/include/linux/module.h > index 46d4d5f2516e..3d9d38c426b4 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); > > /* This is the Right Way to get a module: if it fails, it's being removed, > * so pretend it's not there. */ > -extern bool try_module_get(struct module *module); > +extern bool try_module_get_owner(struct module *module, struct module *this); You may want to remove that useless 'extern'. 'checkpatch --strict' will likely tell you to do so. > > extern void module_put(struct module *module); > > #else /*!CONFIG_MODULE_UNLOAD*/ > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return !module || module_is_live(module); > } > @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) > { > } > > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return true; > } > @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) > } > #endif /* CONFIG_MODULE_SIG */ > > +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) > + > int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, > struct module *, unsigned long), > void *data); > diff --git a/kernel/module/main.c b/kernel/module/main.c > index 05a42d8fcd7a..218c4308bb7a 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) > } > EXPORT_SYMBOL(unregister_module_notifier); > > +static bool __try_module_get(struct module *module) > +{ > + bool ret = true; > + > + if (module) { > + preempt_disable(); > + /* Note: here, we can fail to get a reference */ > + if (likely(module_is_live(module) && > + atomic_inc_not_zero(&module->refcnt) != 0)) > + trace_module_get(module, _RET_IP_); > + else > + ret = false; > + > + preempt_enable(); > + } > + return ret; > +} > + > /* > * We require a truly strong try_module_get(): 0 means success. > * Otherwise an error is returned due to ongoing or failed > @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) > BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); > if (mod && mod->state == MODULE_STATE_COMING) > return -EBUSY; > - if (try_module_get(mod)) > + if (__try_module_get(mod)) > return 0; > else > return -ENOENT; > @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) > return 0; > } > > +static int ref_module_dependency(struct module *mod, struct module *this) What is 'this' ? Can we give it a more precise name ? Is it a child, a parent, a owner, something else ? > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD Looks like that #ifdef could be avoided and replaced by IS_ENABLED(CONFIG_MODULE_UNLOAD) Something like: if (!IS_ENABLED(CONFIG_MODULE_UNLOAD) || ret) goto ret; > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) Same here, what is 'this' exactly ? > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-02 6:08 ` Christophe Leroy 0 siblings, 0 replies; 28+ messages in thread From: Christophe Leroy @ 2022-05-02 6:08 UTC (permalink / raw) To: Mauro Carvalho Chehab, Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, linux-kernel, Pierre-Louis Bossart Le 30/04/2022 à 22:04, Mauro Carvalho Chehab a écrit : > Sometimes, device drivers are bound into each other via try_module_get(), > making such references invisible when looking at /proc/modules or lsmod. > > Add a function to allow setting up module references for such > cases, and call it when try_module_get() is used. > > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > > See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ > > include/linux/module.h | 8 ++++-- > kernel/module/main.c | 65 +++++++++++++++++++++++++++++++++--------- > 2 files changed, 56 insertions(+), 17 deletions(-) > > diff --git a/include/linux/module.h b/include/linux/module.h > index 46d4d5f2516e..3d9d38c426b4 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -620,12 +620,12 @@ extern void __module_get(struct module *module); > > /* This is the Right Way to get a module: if it fails, it's being removed, > * so pretend it's not there. */ > -extern bool try_module_get(struct module *module); > +extern bool try_module_get_owner(struct module *module, struct module *this); You may want to remove that useless 'extern'. 'checkpatch --strict' will likely tell you to do so. > > extern void module_put(struct module *module); > > #else /*!CONFIG_MODULE_UNLOAD*/ > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return !module || module_is_live(module); > } > @@ -740,7 +740,7 @@ static inline void __module_get(struct module *module) > { > } > > -static inline bool try_module_get(struct module *module) > +static inline bool try_module_get_owner(struct module *module, struct module *this) > { > return true; > } > @@ -875,6 +875,8 @@ static inline bool module_sig_ok(struct module *module) > } > #endif /* CONFIG_MODULE_SIG */ > > +#define try_module_get(mod) try_module_get_owner(mod, THIS_MODULE) > + > int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, > struct module *, unsigned long), > void *data); > diff --git a/kernel/module/main.c b/kernel/module/main.c > index 05a42d8fcd7a..218c4308bb7a 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -150,6 +150,24 @@ int unregister_module_notifier(struct notifier_block *nb) > } > EXPORT_SYMBOL(unregister_module_notifier); > > +static bool __try_module_get(struct module *module) > +{ > + bool ret = true; > + > + if (module) { > + preempt_disable(); > + /* Note: here, we can fail to get a reference */ > + if (likely(module_is_live(module) && > + atomic_inc_not_zero(&module->refcnt) != 0)) > + trace_module_get(module, _RET_IP_); > + else > + ret = false; > + > + preempt_enable(); > + } > + return ret; > +} > + > /* > * We require a truly strong try_module_get(): 0 means success. > * Otherwise an error is returned due to ongoing or failed > @@ -160,7 +178,7 @@ static inline int strong_try_module_get(struct module *mod) > BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED); > if (mod && mod->state == MODULE_STATE_COMING) > return -EBUSY; > - if (try_module_get(mod)) > + if (__try_module_get(mod)) > return 0; > else > return -ENOENT; > @@ -631,6 +649,33 @@ static int ref_module(struct module *a, struct module *b) > return 0; > } > > +static int ref_module_dependency(struct module *mod, struct module *this) What is 'this' ? Can we give it a more precise name ? Is it a child, a parent, a owner, something else ? > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD Looks like that #ifdef could be avoided and replaced by IS_ENABLED(CONFIG_MODULE_UNLOAD) Something like: if (!IS_ENABLED(CONFIG_MODULE_UNLOAD) || ret) goto ret; > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) Same here, what is 'this' exactly ? > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() 2022-04-30 20:04 ` Mauro Carvalho Chehab @ 2022-05-05 21:35 ` Andi Shyti -1 siblings, 0 replies; 28+ messages in thread From: Andi Shyti @ 2022-05-05 21:35 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: mauro.chehab, linux-kernel, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, alsa-devel, dri-devel, Takashi Iwai, Kai Vehmanen, Luis Chamberlain, Dan Williams, Jaroslav Kysela, linux-modules, Pierre-Louis Bossart Hi Mauro, [...] > +static int ref_module_dependency(struct module *mod, struct module *this) > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); do we care about the return value here? Andi > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { > -- > 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-05 21:35 ` Andi Shyti 0 siblings, 0 replies; 28+ messages in thread From: Andi Shyti @ 2022-05-05 21:35 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Luis Chamberlain, alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, linux-kernel, Pierre-Louis Bossart Hi Mauro, [...] > +static int ref_module_dependency(struct module *mod, struct module *this) > +{ > + int ret; > + > + if (!this || !this->name) > + return -EINVAL; > + > + if (mod == this) > + return 0; > + > + mutex_lock(&module_mutex); > + > + ret = ref_module(this, mod); > + > +#ifdef CONFIG_MODULE_UNLOAD > + if (ret) > + goto ret; > + > + ret = sysfs_create_link(mod->holders_dir, > + &this->mkobj.kobj, this->name); > +#endif > + > +ret: > + mutex_unlock(&module_mutex); > + return ret; > +} > + > /* Clear the unload stuff of the module. */ > static void module_unload_free(struct module *mod) > { > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > } > EXPORT_SYMBOL(__module_get); > > -bool try_module_get(struct module *module) > +bool try_module_get_owner(struct module *module, struct module *this) > { > - bool ret = true; > + int ret = __try_module_get(module); > > - if (module) { > - preempt_disable(); > - /* Note: here, we can fail to get a reference */ > - if (likely(module_is_live(module) && > - atomic_inc_not_zero(&module->refcnt) != 0)) > - trace_module_get(module, _RET_IP_); > - else > - ret = false; > + if (ret) > + ref_module_dependency(module, this); do we care about the return value here? Andi > > - preempt_enable(); > - } > return ret; > } > -EXPORT_SYMBOL(try_module_get); > +EXPORT_SYMBOL(try_module_get_owner); > > void module_put(struct module *module) > { > -- > 2.35.1 ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() 2022-05-05 21:35 ` Andi Shyti (?) @ 2022-05-09 16:56 ` Mauro Carvalho Chehab -1 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-05-09 16:56 UTC (permalink / raw) To: Andi Shyti Cc: Luis Chamberlain, alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Dan Williams, linux-kernel, Pierre-Louis Bossart Em Thu, 5 May 2022 23:35:29 +0200 Andi Shyti <andi.shyti@linux.intel.com> escreveu: > Hi Mauro, > > [...] > > > +static int ref_module_dependency(struct module *mod, struct module *this) > > +{ > > + int ret; > > + > > + if (!this || !this->name) > > + return -EINVAL; > > + > > + if (mod == this) > > + return 0; > > + > > + mutex_lock(&module_mutex); > > + > > + ret = ref_module(this, mod); > > + > > +#ifdef CONFIG_MODULE_UNLOAD > > + if (ret) > > + goto ret; > > + > > + ret = sysfs_create_link(mod->holders_dir, > > + &this->mkobj.kobj, this->name); > > +#endif > > + > > +ret: > > + mutex_unlock(&module_mutex); > > + return ret; > > +} > > + > > /* Clear the unload stuff of the module. */ > > static void module_unload_free(struct module *mod) > > { > > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > > } > > EXPORT_SYMBOL(__module_get); > > > > -bool try_module_get(struct module *module) > > +bool try_module_get_owner(struct module *module, struct module *this) > > { > > - bool ret = true; > > + int ret = __try_module_get(module); > > > > - if (module) { > > - preempt_disable(); > > - /* Note: here, we can fail to get a reference */ > > - if (likely(module_is_live(module) && > > - atomic_inc_not_zero(&module->refcnt) != 0)) > > - trace_module_get(module, _RET_IP_); > > - else > > - ret = false; > > + if (ret) > > + ref_module_dependency(module, this); > > do we care about the return value here? I don't think it should care about the return value, as a failure to create a sysfs node for the holder or to add it to the holders list is not fatal: modules can still continue working without that. Also, I opted to be conservative here: currently, not creating these doesn't cause try_module_get() to fail. I'm not sure what would be the impact if this starts to fail. So, right now, I'm opting to just ignore the return value. Perhaps in the future this could a warning (similarly to what sysfs create link does). Regards, Mauro > > Andi > > > > > - preempt_enable(); > > - } > > return ret; > > } > > -EXPORT_SYMBOL(try_module_get); > > +EXPORT_SYMBOL(try_module_get_owner); > > > > void module_put(struct module *module) > > { > > -- > > 2.35.1 Thanks, Mauro ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-09 16:56 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-05-09 16:56 UTC (permalink / raw) To: Andi Shyti Cc: mauro.chehab, linux-kernel, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, alsa-devel, dri-devel, Takashi Iwai, Kai Vehmanen, Luis Chamberlain, Dan Williams, linux-modules, Pierre-Louis Bossart Em Thu, 5 May 2022 23:35:29 +0200 Andi Shyti <andi.shyti@linux.intel.com> escreveu: > Hi Mauro, > > [...] > > > +static int ref_module_dependency(struct module *mod, struct module *this) > > +{ > > + int ret; > > + > > + if (!this || !this->name) > > + return -EINVAL; > > + > > + if (mod == this) > > + return 0; > > + > > + mutex_lock(&module_mutex); > > + > > + ret = ref_module(this, mod); > > + > > +#ifdef CONFIG_MODULE_UNLOAD > > + if (ret) > > + goto ret; > > + > > + ret = sysfs_create_link(mod->holders_dir, > > + &this->mkobj.kobj, this->name); > > +#endif > > + > > +ret: > > + mutex_unlock(&module_mutex); > > + return ret; > > +} > > + > > /* Clear the unload stuff of the module. */ > > static void module_unload_free(struct module *mod) > > { > > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > > } > > EXPORT_SYMBOL(__module_get); > > > > -bool try_module_get(struct module *module) > > +bool try_module_get_owner(struct module *module, struct module *this) > > { > > - bool ret = true; > > + int ret = __try_module_get(module); > > > > - if (module) { > > - preempt_disable(); > > - /* Note: here, we can fail to get a reference */ > > - if (likely(module_is_live(module) && > > - atomic_inc_not_zero(&module->refcnt) != 0)) > > - trace_module_get(module, _RET_IP_); > > - else > > - ret = false; > > + if (ret) > > + ref_module_dependency(module, this); > > do we care about the return value here? I don't think it should care about the return value, as a failure to create a sysfs node for the holder or to add it to the holders list is not fatal: modules can still continue working without that. Also, I opted to be conservative here: currently, not creating these doesn't cause try_module_get() to fail. I'm not sure what would be the impact if this starts to fail. So, right now, I'm opting to just ignore the return value. Perhaps in the future this could a warning (similarly to what sysfs create link does). Regards, Mauro > > Andi > > > > > - preempt_enable(); > > - } > > return ret; > > } > > -EXPORT_SYMBOL(try_module_get); > > +EXPORT_SYMBOL(try_module_get_owner); > > > > void module_put(struct module *module) > > { > > -- > > 2.35.1 Thanks, Mauro ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 1/2] module: update dependencies at try_module_get() @ 2022-05-09 16:56 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-05-09 16:56 UTC (permalink / raw) To: Andi Shyti Cc: mauro.chehab, linux-kernel, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, alsa-devel, dri-devel, Takashi Iwai, Kai Vehmanen, Luis Chamberlain, Dan Williams, Jaroslav Kysela, linux-modules, Pierre-Louis Bossart Em Thu, 5 May 2022 23:35:29 +0200 Andi Shyti <andi.shyti@linux.intel.com> escreveu: > Hi Mauro, > > [...] > > > +static int ref_module_dependency(struct module *mod, struct module *this) > > +{ > > + int ret; > > + > > + if (!this || !this->name) > > + return -EINVAL; > > + > > + if (mod == this) > > + return 0; > > + > > + mutex_lock(&module_mutex); > > + > > + ret = ref_module(this, mod); > > + > > +#ifdef CONFIG_MODULE_UNLOAD > > + if (ret) > > + goto ret; > > + > > + ret = sysfs_create_link(mod->holders_dir, > > + &this->mkobj.kobj, this->name); > > +#endif > > + > > +ret: > > + mutex_unlock(&module_mutex); > > + return ret; > > +} > > + > > /* Clear the unload stuff of the module. */ > > static void module_unload_free(struct module *mod) > > { > > @@ -841,24 +886,16 @@ void __module_get(struct module *module) > > } > > EXPORT_SYMBOL(__module_get); > > > > -bool try_module_get(struct module *module) > > +bool try_module_get_owner(struct module *module, struct module *this) > > { > > - bool ret = true; > > + int ret = __try_module_get(module); > > > > - if (module) { > > - preempt_disable(); > > - /* Note: here, we can fail to get a reference */ > > - if (likely(module_is_live(module) && > > - atomic_inc_not_zero(&module->refcnt) != 0)) > > - trace_module_get(module, _RET_IP_); > > - else > > - ret = false; > > + if (ret) > > + ref_module_dependency(module, this); > > do we care about the return value here? I don't think it should care about the return value, as a failure to create a sysfs node for the holder or to add it to the holders list is not fatal: modules can still continue working without that. Also, I opted to be conservative here: currently, not creating these doesn't cause try_module_get() to fail. I'm not sure what would be the impact if this starts to fail. So, right now, I'm opting to just ignore the return value. Perhaps in the future this could a warning (similarly to what sysfs create link does). Regards, Mauro > > Andi > > > > > - preempt_enable(); > > - } > > return ret; > > } > > -EXPORT_SYMBOL(try_module_get); > > +EXPORT_SYMBOL(try_module_get_owner); > > > > void module_put(struct module *module) > > { > > -- > > 2.35.1 Thanks, Mauro ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver 2022-04-30 20:04 ` Mauro Carvalho Chehab (?) (?) @ 2022-04-30 20:04 ` Mauro Carvalho Chehab -1 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: Mauro Carvalho Chehab, Daniel Vetter, David Airlie, Greg KH, Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel, linux-modules, mauro.chehab On some devices, the hda driver needs to hook into a video driver, in order to be able to properly access the audio hardware and/or the power management function. That's the case of several snd_hda_intel devices that depends on i915 driver. Ensure that a proper reference between the snd-hda driver needing such binding is shown at /proc/modules, in order to allow userspace to know about such binding. Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ sound/hda/hdac_component.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c index bb37e7e0bd79..7789873ddf47 100644 --- a/sound/hda/hdac_component.c +++ b/sound/hda/hdac_component.c @@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev) } /* pin the module to avoid dynamic unbinding, but only if given */ - if (!try_module_get(acomp->ops->owner)) { + if (!try_module_get_owner(acomp->ops->owner, dev->driver->owner)) { ret = -ENODEV; goto out_unbind; } -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen, linux-modules, Daniel Vetter, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart On some devices, the hda driver needs to hook into a video driver, in order to be able to properly access the audio hardware and/or the power management function. That's the case of several snd_hda_intel devices that depends on i915 driver. Ensure that a proper reference between the snd-hda driver needing such binding is shown at /proc/modules, in order to allow userspace to know about such binding. Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ sound/hda/hdac_component.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c index bb37e7e0bd79..7789873ddf47 100644 --- a/sound/hda/hdac_component.c +++ b/sound/hda/hdac_component.c @@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev) } /* pin the module to avoid dynamic unbinding, but only if given */ - if (!try_module_get(acomp->ops->owner)) { + if (!try_module_get_owner(acomp->ops->owner, dev->driver->owner)) { ret = -ENODEV; goto out_unbind; } -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [Intel-gfx] [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart On some devices, the hda driver needs to hook into a video driver, in order to be able to properly access the audio hardware and/or the power management function. That's the case of several snd_hda_intel devices that depends on i915 driver. Ensure that a proper reference between the snd-hda driver needing such binding is shown at /proc/modules, in order to allow userspace to know about such binding. Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ sound/hda/hdac_component.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c index bb37e7e0bd79..7789873ddf47 100644 --- a/sound/hda/hdac_component.c +++ b/sound/hda/hdac_component.c @@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev) } /* pin the module to avoid dynamic unbinding, but only if given */ - if (!try_module_get(acomp->ops->owner)) { + if (!try_module_get_owner(acomp->ops->owner, dev->driver->owner)) { ret = -ENODEV; goto out_unbind; } -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-04-30 20:04 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 28+ messages in thread From: Mauro Carvalho Chehab @ 2022-04-30 20:04 UTC (permalink / raw) To: Luis Chamberlain Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, linux-modules, Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart On some devices, the hda driver needs to hook into a video driver, in order to be able to properly access the audio hardware and/or the power management function. That's the case of several snd_hda_intel devices that depends on i915 driver. Ensure that a proper reference between the snd-hda driver needing such binding is shown at /proc/modules, in order to allow userspace to know about such binding. Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> --- See [PATCH v5 0/2] at: https://lore.kernel.org/all/cover.1651348913.git.mchehab@kernel.org/ sound/hda/hdac_component.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c index bb37e7e0bd79..7789873ddf47 100644 --- a/sound/hda/hdac_component.c +++ b/sound/hda/hdac_component.c @@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev) } /* pin the module to avoid dynamic unbinding, but only if given */ - if (!try_module_get(acomp->ops->owner)) { + if (!try_module_get_owner(acomp->ops->owner, dev->driver->owner)) { ret = -ENODEV; goto out_unbind; } -- 2.35.1 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver 2022-04-30 20:04 ` Mauro Carvalho Chehab (?) (?) @ 2022-05-09 8:48 ` Takashi Iwai -1 siblings, 0 replies; 28+ messages in thread From: Takashi Iwai @ 2022-05-09 8:48 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, Luis Chamberlain, linux-modules, linux-kernel, Pierre-Louis Bossart On Sat, 30 Apr 2022 22:04:55 +0200, Mauro Carvalho Chehab wrote: > > On some devices, the hda driver needs to hook into a video driver, > in order to be able to properly access the audio hardware and/or > the power management function. > > That's the case of several snd_hda_intel devices that depends on > i915 driver. > > Ensure that a proper reference between the snd-hda driver needing > such binding is shown at /proc/modules, in order to allow userspace > to know about such binding. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Maybe I was too late to the game (just back from vacation), but FWIW: Reviewed-by: Takashi Iwai <tiwai@suse.de> thanks, Takashi ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-05-09 8:48 ` Takashi Iwai 0 siblings, 0 replies; 28+ messages in thread From: Takashi Iwai @ 2022-05-09 8:48 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Luis Chamberlain, Daniel Vetter, David Airlie, Greg KH, Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel, linux-modules, mauro.chehab On Sat, 30 Apr 2022 22:04:55 +0200, Mauro Carvalho Chehab wrote: > > On some devices, the hda driver needs to hook into a video driver, > in order to be able to properly access the audio hardware and/or > the power management function. > > That's the case of several snd_hda_intel devices that depends on > i915 driver. > > Ensure that a proper reference between the snd-hda driver needing > such binding is shown at /proc/modules, in order to allow userspace > to know about such binding. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Maybe I was too late to the game (just back from vacation), but FWIW: Reviewed-by: Takashi Iwai <tiwai@suse.de> thanks, Takashi ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-05-09 8:48 ` Takashi Iwai 0 siblings, 0 replies; 28+ messages in thread From: Takashi Iwai @ 2022-05-09 8:48 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen, Luis Chamberlain, linux-modules, Daniel Vetter, linux-kernel, Pierre-Louis Bossart On Sat, 30 Apr 2022 22:04:55 +0200, Mauro Carvalho Chehab wrote: > > On some devices, the hda driver needs to hook into a video driver, > in order to be able to properly access the audio hardware and/or > the power management function. > > That's the case of several snd_hda_intel devices that depends on > i915 driver. > > Ensure that a proper reference between the snd-hda driver needing > such binding is shown at /proc/modules, in order to allow userspace > to know about such binding. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Maybe I was too late to the game (just back from vacation), but FWIW: Reviewed-by: Takashi Iwai <tiwai@suse.de> thanks, Takashi ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [Intel-gfx] [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver @ 2022-05-09 8:48 ` Takashi Iwai 0 siblings, 0 replies; 28+ messages in thread From: Takashi Iwai @ 2022-05-09 8:48 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela, Kai Vehmanen, Luis Chamberlain, linux-modules, linux-kernel, Pierre-Louis Bossart On Sat, 30 Apr 2022 22:04:55 +0200, Mauro Carvalho Chehab wrote: > > On some devices, the hda driver needs to hook into a video driver, > in order to be able to properly access the audio hardware and/or > the power management function. > > That's the case of several snd_hda_intel devices that depends on > i915 driver. > > Ensure that a proper reference between the snd-hda driver needing > such binding is shown at /proc/modules, in order to allow userspace > to know about such binding. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Maybe I was too late to the game (just back from vacation), but FWIW: Reviewed-by: Takashi Iwai <tiwai@suse.de> thanks, Takashi ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Let userspace know when snd-hda-intel needs i915 2022-04-30 20:04 ` Mauro Carvalho Chehab ` (4 preceding siblings ...) (?) @ 2022-04-30 20:21 ` Patchwork -1 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2022-04-30 20:21 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: intel-gfx == Series Details == Series: Let userspace know when snd-hda-intel needs i915 URL : https://patchwork.freedesktop.org/series/103407/ State : warning == Summary == Error: dim checkpatch failed bafed6632f59 module: update dependencies at try_module_get() -:25: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files #25: FILE: include/linux/module.h:615: +extern bool try_module_get_owner(struct module *module, struct module *this); total: 0 errors, 0 warnings, 1 checks, 124 lines checked 5598e31b0e55 ALSA: hda - identify when audio is provided by a video driver ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Let userspace know when snd-hda-intel needs i915 2022-04-30 20:04 ` Mauro Carvalho Chehab ` (5 preceding siblings ...) (?) @ 2022-04-30 20:51 ` Patchwork -1 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2022-04-30 20:51 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 12825 bytes --] == Series Details == Series: Let userspace know when snd-hda-intel needs i915 URL : https://patchwork.freedesktop.org/series/103407/ State : success == Summary == CI Bug Log - changes from CI_DRM_11584 -> Patchwork_103407v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/index.html Participating hosts (44 -> 40) ------------------------------ Additional (3): bat-rpls-1 fi-rkl-11600 bat-dg1-5 Missing (7): fi-bdw-5557u bat-adlm-1 fi-bsw-cyan fi-kbl-8809g fi-blb-e6850 bat-jsl-2 fi-bsw-nick Known issues ------------ Here are the changes found in Patchwork_103407v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@fbdev@write: - bat-dg1-5: NOTRUN -> [SKIP][1] ([i915#2582]) +4 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@fbdev@write.html * igt@gem_huc_copy@huc-copy: - fi-rkl-11600: NOTRUN -> [SKIP][2] ([i915#2190]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-rkl-11600: NOTRUN -> [SKIP][3] ([i915#4613]) +3 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@gem_lmem_swapping@basic.html * igt@gem_mmap@basic: - bat-dg1-5: NOTRUN -> [SKIP][4] ([i915#4083]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@gem_mmap@basic.html * igt@gem_tiled_fence_blits@basic: - bat-dg1-5: NOTRUN -> [SKIP][5] ([i915#4077]) +2 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@gem_tiled_fence_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg1-5: NOTRUN -> [SKIP][6] ([i915#4079]) +1 similar issue [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@gem_tiled_pread_basic.html - fi-rkl-11600: NOTRUN -> [SKIP][7] ([i915#3282]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@gem_tiled_pread_basic.html * igt@i915_pm_backlight@basic-brightness: - bat-dg1-5: NOTRUN -> [SKIP][8] ([i915#1155]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html - fi-rkl-11600: NOTRUN -> [SKIP][9] ([i915#3012]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html * igt@i915_selftest@live@gt_engines: - bat-dg1-5: NOTRUN -> [DMESG-FAIL][10] ([i915#4418]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@i915_selftest@live@gt_engines.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770: [PASS][11] -> [INCOMPLETE][12] ([i915#4785]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg1-5: NOTRUN -> [SKIP][13] ([i915#4215]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@tile-pitch-mismatch: - bat-dg1-5: NOTRUN -> [SKIP][14] ([i915#4212]) +7 similar issues [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_busy@basic: - bat-dg1-5: NOTRUN -> [SKIP][15] ([i915#4303]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_busy@basic.html * igt@kms_chamelium@dp-crc-fast: - fi-rkl-11600: NOTRUN -> [SKIP][16] ([fdo#111827]) +8 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_chamelium@dp-crc-fast.html * igt@kms_chamelium@hdmi-hpd-fast: - bat-dg1-5: NOTRUN -> [SKIP][17] ([fdo#111827]) +7 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-rkl-11600: NOTRUN -> [SKIP][18] ([i915#4070] / [i915#4103]) +1 similar issue [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-dg1-5: NOTRUN -> [SKIP][19] ([i915#4103] / [i915#4213]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_flip@basic-flip-vs-dpms: - bat-dg1-5: NOTRUN -> [SKIP][20] ([i915#4078]) +23 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_flip@basic-flip-vs-dpms.html * igt@kms_force_connector_basic@force-load-detect: - fi-rkl-11600: NOTRUN -> [SKIP][21] ([fdo#109285] / [i915#4098]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html - bat-dg1-5: NOTRUN -> [SKIP][22] ([fdo#109285]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d: - fi-rkl-11600: NOTRUN -> [SKIP][23] ([i915#4070] / [i915#533]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html * igt@kms_psr@primary_mmap_gtt: - fi-rkl-11600: NOTRUN -> [SKIP][24] ([i915#1072]) +3 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_psr@primary_mmap_gtt.html * igt@kms_psr@primary_page_flip: - bat-dg1-5: NOTRUN -> [SKIP][25] ([i915#1072] / [i915#4078]) +3 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_psr@primary_page_flip.html * igt@kms_setmode@basic-clone-single-crtc: - fi-rkl-11600: NOTRUN -> [SKIP][26] ([i915#3555] / [i915#4098]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html - bat-dg1-5: NOTRUN -> [SKIP][27] ([i915#3555]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-mmap: - bat-dg1-5: NOTRUN -> [SKIP][28] ([i915#3708] / [i915#4077]) +1 similar issue [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-userptr: - fi-rkl-11600: NOTRUN -> [SKIP][29] ([i915#3301] / [i915#3708]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@prime_vgem@basic-userptr.html - bat-dg1-5: NOTRUN -> [SKIP][30] ([i915#3708] / [i915#4873]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@prime_vgem@basic-userptr.html * igt@prime_vgem@basic-write: - bat-dg1-5: NOTRUN -> [SKIP][31] ([i915#3708]) +3 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@prime_vgem@basic-write.html - fi-rkl-11600: NOTRUN -> [SKIP][32] ([i915#3291] / [i915#3708]) +2 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-rkl-11600/igt@prime_vgem@basic-write.html * igt@runner@aborted: - bat-dg1-5: NOTRUN -> [FAIL][33] ([i915#4312] / [i915#5257]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-dg1-5/igt@runner@aborted.html - fi-hsw-4770: NOTRUN -> [FAIL][34] ([fdo#109271] / [i915#4312] / [i915#5594]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-hsw-4770/igt@runner@aborted.html #### Possible fixes #### * igt@core_auth@basic-auth: - fi-kbl-soraka: [DMESG-WARN][35] ([i915#1982]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-kbl-soraka/igt@core_auth@basic-auth.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-kbl-soraka/igt@core_auth@basic-auth.html * igt@i915_pm_rpm@module-reload: - fi-cfl-8109u: [DMESG-WARN][37] ([i915#62]) -> [PASS][38] +16 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html * igt@kms_busy@basic@modeset: - {bat-adlp-6}: [DMESG-WARN][39] ([i915#3576]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/bat-adlp-6/igt@kms_busy@basic@modeset.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/bat-adlp-6/igt@kms_busy@basic@modeset.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#4303]: https://gitlab.freedesktop.org/drm/intel/issues/4303 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257 [i915#5270]: https://gitlab.freedesktop.org/drm/intel/issues/5270 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5356]: https://gitlab.freedesktop.org/drm/intel/issues/5356 [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594 [i915#5828]: https://gitlab.freedesktop.org/drm/intel/issues/5828 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 Build changes ------------- * Linux: CI_DRM_11584 -> Patchwork_103407v1 CI-20190529: 20190529 CI_DRM_11584: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6464: eddc67c5c85b8ee6eb4d13752ca43da5073dc985 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_103407v1: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 711e39bc494e ALSA: hda - identify when audio is provided by a video driver 5fc3b0a6eb04 module: update dependencies at try_module_get() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/index.html [-- Attachment #2: Type: text/html, Size: 14975 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for Let userspace know when snd-hda-intel needs i915 2022-04-30 20:04 ` Mauro Carvalho Chehab ` (6 preceding siblings ...) (?) @ 2022-04-30 22:42 ` Patchwork -1 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2022-04-30 22:42 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 52132 bytes --] == Series Details == Series: Let userspace know when snd-hda-intel needs i915 URL : https://patchwork.freedesktop.org/series/103407/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11584_full -> Patchwork_103407v1_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_103407v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_103407v1_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_103407v1_full: ### IGT changes ### #### Possible regressions #### * igt@gem_flink_race@flink_close: - shard-tglb: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb2/igt@gem_flink_race@flink_close.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglb5/igt@gem_flink_race@flink_close.html * igt@i915_selftest@mock@requests: - shard-skl: [PASS][3] -> [INCOMPLETE][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@i915_selftest@mock@requests.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl10/igt@i915_selftest@mock@requests.html Known issues ------------ Here are the changes found in Patchwork_103407v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ccs@ctrl-surf-copy: - shard-iclb: NOTRUN -> [SKIP][5] ([i915#5327]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@gem_ccs@ctrl-surf-copy.html * igt@gem_eio@kms: - shard-tglb: [PASS][6] -> [FAIL][7] ([i915#5784]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb6/igt@gem_eio@kms.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglb1/igt@gem_eio@kms.html * igt@gem_exec_balancer@parallel-keep-in-fence: - shard-kbl: NOTRUN -> [DMESG-WARN][8] ([i915#5076] / [i915#5614]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl4/igt@gem_exec_balancer@parallel-keep-in-fence.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-iclb: [PASS][9] -> [FAIL][10] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [PASS][11] -> [FAIL][12] ([i915#2842]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-kbl: NOTRUN -> [FAIL][13] ([i915#2842]) +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_lmem_swapping@heavy-random: - shard-iclb: NOTRUN -> [SKIP][14] ([i915#4613]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gem_lmem_swapping@heavy-random.html * igt@gem_lmem_swapping@parallel-random: - shard-apl: NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#4613]) +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl2/igt@gem_lmem_swapping@parallel-random.html * igt@gem_lmem_swapping@random: - shard-kbl: NOTRUN -> [SKIP][16] ([fdo#109271] / [i915#4613]) +1 similar issue [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl4/igt@gem_lmem_swapping@random.html * igt@gem_pwrite@basic-exhaustion: - shard-iclb: NOTRUN -> [WARN][17] ([i915#2658]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gem_pwrite@basic-exhaustion.html - shard-apl: NOTRUN -> [WARN][18] ([i915#2658]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@verify-pxp-stale-buf-execution: - shard-iclb: NOTRUN -> [SKIP][19] ([i915#4270]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@gem_pxp@verify-pxp-stale-buf-execution.html * igt@gem_render_copy@y-tiled-to-vebox-x-tiled: - shard-iclb: NOTRUN -> [SKIP][20] ([i915#768]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gem_render_copy@y-tiled-to-vebox-x-tiled.html * igt@gem_userptr_blits@coherency-sync: - shard-iclb: NOTRUN -> [SKIP][21] ([fdo#109290]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gem_userptr_blits@coherency-sync.html * igt@gem_userptr_blits@unsync-unmap: - shard-iclb: NOTRUN -> [SKIP][22] ([i915#3297]) +1 similar issue [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@gem_userptr_blits@unsync-unmap.html * igt@gen7_exec_parse@oacontrol-tracking: - shard-iclb: NOTRUN -> [SKIP][23] ([fdo#109289]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@gen7_exec_parse@oacontrol-tracking.html * igt@gen9_exec_parse@bb-start-out: - shard-iclb: NOTRUN -> [SKIP][24] ([i915#2856]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gen9_exec_parse@bb-start-out.html * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: NOTRUN -> [SKIP][25] ([i915#658]) +1 similar issue [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@i915_pm_rpm@gem-execbuf-stress-pc8: - shard-iclb: NOTRUN -> [SKIP][26] ([fdo#109293] / [fdo#109506]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html * igt@i915_pm_rpm@modeset-lpsp-stress: - shard-apl: NOTRUN -> [SKIP][27] ([fdo#109271]) +138 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@i915_pm_rpm@modeset-lpsp-stress.html * igt@i915_suspend@debugfs-reader: - shard-kbl: NOTRUN -> [DMESG-WARN][28] ([i915#180]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@i915_suspend@debugfs-reader.html * igt@kms_addfb_basic@invalid-smem-bo-on-discrete: - shard-iclb: NOTRUN -> [SKIP][29] ([i915#3826]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html * igt@kms_async_flips@alternate-sync-async-flip: - shard-skl: [PASS][30] -> [FAIL][31] ([i915#2521]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@kms_async_flips@alternate-sync-async-flip.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_async_flips@alternate-sync-async-flip.html * igt@kms_big_fb@linear-16bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][32] ([fdo#110725] / [fdo#111614]) +1 similar issue [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_big_fb@linear-16bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip: - shard-iclb: NOTRUN -> [SKIP][33] ([fdo#110723]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc: - shard-kbl: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3886]) +2 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html - shard-apl: NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3886]) +9 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs: - shard-iclb: NOTRUN -> [SKIP][36] ([fdo#109278] / [i915#3886]) +3 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - shard-skl: NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#3886]) +1 similar issue [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs: - shard-iclb: NOTRUN -> [SKIP][38] ([fdo#109278]) +14 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs.html * igt@kms_chamelium@dp-audio-edid: - shard-snb: NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-snb4/igt@kms_chamelium@dp-audio-edid.html * igt@kms_chamelium@hdmi-hpd: - shard-kbl: NOTRUN -> [SKIP][40] ([fdo#109271] / [fdo#111827]) +6 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@kms_chamelium@hdmi-hpd.html * igt@kms_color@pipe-a-deep-color: - shard-iclb: NOTRUN -> [SKIP][41] ([fdo#109278] / [i915#3555]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_color@pipe-a-deep-color.html * igt@kms_color_chamelium@pipe-b-ctm-0-75: - shard-apl: NOTRUN -> [SKIP][42] ([fdo#109271] / [fdo#111827]) +9 similar issues [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_color_chamelium@pipe-b-ctm-0-75.html * igt@kms_color_chamelium@pipe-c-gamma: - shard-iclb: NOTRUN -> [SKIP][43] ([fdo#109284] / [fdo#111827]) +4 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_color_chamelium@pipe-c-gamma.html * igt@kms_color_chamelium@pipe-d-ctm-green-to-red: - shard-skl: NOTRUN -> [SKIP][44] ([fdo#109271] / [fdo#111827]) +3 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_color_chamelium@pipe-d-ctm-green-to-red.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-iclb: NOTRUN -> [SKIP][45] ([i915#3116]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding: - shard-snb: NOTRUN -> [SKIP][46] ([fdo#109271]) +20 similar issues [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-snb4/igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding.html * igt@kms_cursor_crc@pipe-b-cursor-suspend: - shard-apl: [PASS][47] -> [DMESG-WARN][48] ([i915#180]) +2 similar issues [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-apl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl8/igt@kms_cursor_crc@pipe-b-cursor-suspend.html - shard-kbl: [PASS][49] -> [DMESG-WARN][50] ([i915#180]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-suspend.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html * igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding: - shard-apl: NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#5691]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding.html * igt@kms_cursor_crc@pipe-c-cursor-512x512-onscreen: - shard-iclb: NOTRUN -> [SKIP][52] ([fdo#109278] / [fdo#109279]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_cursor_crc@pipe-c-cursor-512x512-onscreen.html * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic: - shard-iclb: NOTRUN -> [SKIP][53] ([fdo#109274] / [fdo#109278]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html * igt@kms_cursor_legacy@flip-vs-cursor-varying-size: - shard-iclb: [PASS][54] -> [FAIL][55] ([i915#2346]) +1 similar issue [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb8/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html * igt@kms_cursor_legacy@pipe-d-torture-move: - shard-skl: NOTRUN -> [SKIP][56] ([fdo#109271]) +43 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_cursor_legacy@pipe-d-torture-move.html * igt@kms_draw_crc@draw-method-xrgb2101010-blt-4tiled: - shard-iclb: NOTRUN -> [SKIP][57] ([i915#5287]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_draw_crc@draw-method-xrgb2101010-blt-4tiled.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-apl: [PASS][58] -> [INCOMPLETE][59] ([i915#180] / [i915#1982]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-apl8/igt@kms_fbcon_fbt@fbc-suspend.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@2x-flip-vs-wf_vblank: - shard-iclb: NOTRUN -> [SKIP][60] ([fdo#109274]) +4 similar issues [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_flip@2x-flip-vs-wf_vblank.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-skl: [PASS][61] -> [FAIL][62] ([i915#79]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_flip@plain-flip-ts-check-interruptible@b-hdmi-a1: - shard-glk: [PASS][63] -> [FAIL][64] ([i915#2122]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk5/igt@kms_flip@plain-flip-ts-check-interruptible@b-hdmi-a1.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-glk1/igt@kms_flip@plain-flip-ts-check-interruptible@b-hdmi-a1.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move: - shard-iclb: NOTRUN -> [SKIP][65] ([fdo#109280]) +13 similar issues [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-kbl: NOTRUN -> [SKIP][66] ([fdo#109271]) +95 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_invalid_mode@clock-too-high: - shard-snb: [PASS][67] -> [SKIP][68] ([fdo#109271]) +2 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/igt@kms_invalid_mode@clock-too-high.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-snb2/igt@kms_invalid_mode@clock-too-high.html * igt@kms_pipe_crc_basic@read-crc-pipe-d: - shard-skl: NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#533]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_pipe_crc_basic@read-crc-pipe-d.html * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-apl: NOTRUN -> [FAIL][70] ([fdo#108145] / [i915#265]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html - shard-kbl: NOTRUN -> [FAIL][71] ([fdo#108145] / [i915#265]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl4/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html * igt@kms_plane_alpha_blend@pipe-c-alpha-basic: - shard-skl: NOTRUN -> [FAIL][72] ([fdo#108145] / [i915#265]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html * igt@kms_plane_lowres@pipe-a-tiling-x: - shard-iclb: NOTRUN -> [SKIP][73] ([i915#3536]) +1 similar issue [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-x.html * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-75@pipe-b-edp-1-downscale-with-pixel-format: - shard-iclb: [PASS][74] -> [INCOMPLETE][75] ([i915#5293]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-75@pipe-b-edp-1-downscale-with-pixel-format.html [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb2/igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-75@pipe-b-edp-1-downscale-with-pixel-format.html * igt@kms_psr2_su@page_flip-xrgb8888: - shard-apl: NOTRUN -> [SKIP][76] ([fdo#109271] / [i915#658]) +1 similar issue [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_psr2_su@page_flip-xrgb8888.html - shard-iclb: NOTRUN -> [SKIP][77] ([fdo#109642] / [fdo#111068] / [i915#658]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@kms_psr2_su@page_flip-xrgb8888.html * igt@kms_psr@psr2_primary_mmap_gtt: - shard-iclb: [PASS][78] -> [SKIP][79] ([fdo#109441]) +1 similar issue [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb4/igt@kms_psr@psr2_primary_mmap_gtt.html * igt@kms_psr@psr2_suspend: - shard-iclb: NOTRUN -> [SKIP][80] ([fdo#109441]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@kms_psr@psr2_suspend.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-iclb: [PASS][81] -> [SKIP][82] ([i915#5519]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb8/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_vblank@pipe-d-wait-idle: - shard-kbl: NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#533]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@kms_vblank@pipe-d-wait-idle.html - shard-apl: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#533]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_vblank@pipe-d-wait-idle.html * igt@kms_writeback@writeback-check-output: - shard-apl: NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#2437]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_writeback@writeback-check-output.html * igt@nouveau_crc@pipe-b-source-outp-inactive: - shard-iclb: NOTRUN -> [SKIP][86] ([i915#2530]) +1 similar issue [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@nouveau_crc@pipe-b-source-outp-inactive.html * igt@nouveau_crc@pipe-d-ctx-flip-detection: - shard-iclb: NOTRUN -> [SKIP][87] ([fdo#109278] / [i915#2530]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html * igt@perf@polling-parameterized: - shard-glk: [PASS][88] -> [FAIL][89] ([i915#5639]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk4/igt@perf@polling-parameterized.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-glk4/igt@perf@polling-parameterized.html - shard-tglb: [PASS][90] -> [FAIL][91] ([i915#5639]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb7/igt@perf@polling-parameterized.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglb3/igt@perf@polling-parameterized.html * igt@prime_udl: - shard-iclb: NOTRUN -> [SKIP][92] ([fdo#109291]) +2 similar issues [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@prime_udl.html * igt@syncobj_timeline@transfer-timeline-point: - shard-kbl: NOTRUN -> [DMESG-FAIL][93] ([i915#5098]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl6/igt@syncobj_timeline@transfer-timeline-point.html - shard-skl: NOTRUN -> [DMESG-FAIL][94] ([i915#5098]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@syncobj_timeline@transfer-timeline-point.html * igt@sysfs_clients@fair-3: - shard-iclb: NOTRUN -> [SKIP][95] ([i915#2994]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb5/igt@sysfs_clients@fair-3.html * igt@sysfs_clients@sema-50: - shard-kbl: NOTRUN -> [SKIP][96] ([fdo#109271] / [i915#2994]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@sysfs_clients@sema-50.html - shard-apl: NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@sysfs_clients@sema-50.html #### Possible fixes #### * igt@fbdev@unaligned-read: - {shard-rkl}: [SKIP][98] ([i915#2582]) -> [PASS][99] [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@fbdev@unaligned-read.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@fbdev@unaligned-read.html * igt@gem_exec_balancer@parallel-balancer: - shard-iclb: [SKIP][100] ([i915#4525]) -> [PASS][101] [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb6/igt@gem_exec_balancer@parallel-balancer.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-tglb: [FAIL][102] ([i915#2842]) -> [PASS][103] [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none@vcs0: - shard-glk: [FAIL][104] ([i915#2842]) -> [PASS][105] [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk1/igt@gem_exec_fair@basic-none@vcs0.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-glk5/igt@gem_exec_fair@basic-none@vcs0.html * igt@gem_flink_race@flink_close: - {shard-tglu}: [FAIL][106] -> [PASS][107] [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-8/igt@gem_flink_race@flink_close.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglu-8/igt@gem_flink_race@flink_close.html * igt@gem_huc_copy@huc-copy: - shard-tglb: [SKIP][108] ([i915#2190]) -> [PASS][109] [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb7/igt@gem_huc_copy@huc-copy.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-tglb3/igt@gem_huc_copy@huc-copy.html * igt@gem_softpin@noreloc-s3: - {shard-rkl}: [FAIL][110] ([fdo#103375]) -> [PASS][111] +1 similar issue [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@gem_softpin@noreloc-s3.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-2/igt@gem_softpin@noreloc-s3.html * igt@gen9_exec_parse@allowed-single: - shard-skl: [DMESG-WARN][112] ([i915#5566] / [i915#716]) -> [PASS][113] [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@gen9_exec_parse@allowed-single.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl9/igt@gen9_exec_parse@allowed-single.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [FAIL][114] ([i915#454]) -> [PASS][115] [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb4/igt@i915_pm_dc@dc6-psr.html [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb7/igt@i915_pm_dc@dc6-psr.html * igt@i915_pm_rpm@basic-rte: - {shard-rkl}: [SKIP][116] ([fdo#109308]) -> [PASS][117] [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@i915_pm_rpm@basic-rte.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@i915_pm_rpm@basic-rte.html * igt@i915_pm_rpm@modeset-lpsp: - {shard-rkl}: [SKIP][118] ([i915#1397]) -> [PASS][119] +1 similar issue [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-2/igt@i915_pm_rpm@modeset-lpsp.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp.html * igt@i915_selftest@live@gt_engines: - {shard-dg1}: [INCOMPLETE][120] ([i915#4418]) -> [PASS][121] [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-dg1-12/igt@i915_selftest@live@gt_engines.html [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-dg1-13/igt@i915_selftest@live@gt_engines.html * igt@i915_selftest@live@hangcheck: - shard-snb: [INCOMPLETE][122] ([i915#3921]) -> [PASS][123] [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/igt@i915_selftest@live@hangcheck.html [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-snb4/igt@i915_selftest@live@hangcheck.html * igt@kms_async_flips@alternate-sync-async-flip: - shard-glk: [FAIL][124] ([i915#2521]) -> [PASS][125] [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-glk1/igt@kms_async_flips@alternate-sync-async-flip.html * igt@kms_atomic@atomic_plane_damage: - {shard-rkl}: [SKIP][126] ([i915#4098]) -> [PASS][127] +3 similar issues [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_atomic@atomic_plane_damage.html [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_atomic@atomic_plane_damage.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - {shard-rkl}: [SKIP][128] ([i915#1845] / [i915#4098]) -> [PASS][129] +29 similar issues [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_color@pipe-b-ctm-0-75: - {shard-rkl}: [SKIP][130] ([i915#1149] / [i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][131] +1 similar issue [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_color@pipe-b-ctm-0-75.html [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_color@pipe-b-ctm-0-75.html * igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen: - {shard-rkl}: [SKIP][132] ([fdo#112022] / [i915#4070]) -> [PASS][133] +6 similar issues [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen.html [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen.html * igt@kms_cursor_crc@pipe-a-cursor-suspend: - shard-snb: [SKIP][134] ([fdo#109271]) -> [PASS][135] +2 similar issues [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-snb2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size: - shard-iclb: [FAIL][136] ([i915#5072]) -> [PASS][137] [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb2/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@cursora-vs-flipa-toggle: - {shard-rkl}: [SKIP][138] ([fdo#111825] / [i915#4070]) -> [PASS][139] +4 similar issues [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_cursor_legacy@cursora-vs-flipa-toggle.html [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipa-toggle.html * igt@kms_cursor_legacy@pipe-c-forked-bo: - {shard-rkl}: [SKIP][140] ([i915#4070]) -> [PASS][141] +1 similar issue [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-6/igt@kms_cursor_legacy@pipe-c-forked-bo.html [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-5/igt@kms_cursor_legacy@pipe-c-forked-bo.html * igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled: - {shard-rkl}: [SKIP][142] ([i915#4098] / [i915#4369]) -> [PASS][143] +2 similar issues [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled.html [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled.html * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled: - {shard-rkl}: [SKIP][144] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][145] +3 similar issues [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html * igt@kms_fbcon_fbt@psr-suspend: - {shard-rkl}: [SKIP][146] ([fdo#110189] / [i915#3955]) -> [PASS][147] [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-2/igt@kms_fbcon_fbt@psr-suspend.html [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-kbl: [DMESG-WARN][148] ([i915#180]) -> [PASS][149] +6 similar issues [148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1: - shard-skl: [FAIL][150] ([i915#2122]) -> [PASS][151] +1 similar issue [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl6/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling: - shard-iclb: [SKIP][152] ([i915#3701]) -> [PASS][153] [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling: - {shard-rkl}: [SKIP][154] ([i915#3701]) -> [PASS][155] [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render: - {shard-rkl}: [SKIP][156] ([i915#1849] / [i915#4098]) -> [PASS][157] +31 similar issues [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes: - shard-apl: [DMESG-WARN][158] ([i915#180]) -> [PASS][159] +3 similar issues [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-apl7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-apl7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html * igt@kms_plane@plane-position-hole-dpms@pipe-b-planes: - {shard-rkl}: [SKIP][160] ([i915#1849] / [i915#3558]) -> [PASS][161] +1 similar issue [160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_plane@plane-position-hole-dpms@pipe-b-planes.html [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_plane@plane-position-hole-dpms@pipe-b-planes.html * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - {shard-rkl}: [SKIP][162] ([i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][163] +4 similar issues [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [FAIL][164] ([fdo#108145] / [i915#265]) -> [PASS][165] [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_psr@psr2_cursor_render: - shard-iclb: [SKIP][166] ([fdo#109441]) -> [PASS][167] +2 similar issues [166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb6/igt@kms_psr@psr2_cursor_render.html [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb2/igt@kms_psr@psr2_cursor_render.html * igt@kms_psr@sprite_plane_move: - {shard-rkl}: [SKIP][168] ([i915#1072]) -> [PASS][169] +1 similar issue [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_psr@sprite_plane_move.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_psr@sprite_plane_move.html * igt@kms_universal_plane@cursor-fb-leak-pipe-b: - {shard-rkl}: [SKIP][170] ([i915#1845] / [i915#4070] / [i915#4098]) -> [PASS][171] [170]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-2/igt@kms_universal_plane@cursor-fb-leak-pipe-b.html [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-6/igt@kms_universal_plane@cursor-fb-leak-pipe-b.html * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend: - shard-skl: [INCOMPLETE][172] ([i915#4939]) -> [PASS][173] [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl7/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html * igt@perf@polling-parameterized: - {shard-rkl}: [FAIL][174] ([i915#5639]) -> [PASS][175] [174]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-6/igt@perf@polling-parameterized.html [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-rkl-5/igt@perf@polling-parameterized.html #### Warnings #### * igt@gem_exec_balancer@parallel-contexts: - shard-iclb: [SKIP][176] ([i915#4525]) -> [DMESG-WARN][177] ([i915#5614]) [176]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb4/igt@gem_exec_balancer@parallel-contexts.html * igt@gem_exec_balancer@parallel-out-fence: - shard-iclb: [DMESG-WARN][178] ([i915#5614]) -> [SKIP][179] ([i915#4525]) +1 similar issue [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb1/igt@gem_exec_balancer@parallel-out-fence.html [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb3/igt@gem_exec_balancer@parallel-out-fence.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs: - shard-skl: [SKIP][180] ([fdo#109271] / [i915#1888]) -> [SKIP][181] ([fdo#109271]) +1 similar issue [180]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs.html [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-skl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs.html * igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement: - shard-iclb: [SKIP][182] ([fdo#109278] / [fdo#109279] / [i915#1888]) -> [SKIP][183] ([fdo#109278] / [fdo#109279]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement.html * igt@kms_psr2_sf@plane-move-sf-dmg-area: - shard-iclb: [SKIP][184] ([i915#2920]) -> [SKIP][185] ([fdo#111068] / [i915#658]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-iclb6/igt@kms_psr2_sf@plane-move-sf-dmg-area.html * igt@runner@aborted: - shard-kbl: ([FAIL][186], [FAIL][187], [FAIL][188], [FAIL][189], [FAIL][190], [FAIL][191], [FAIL][192], [FAIL][193], [FAIL][194], [FAIL][195], [FAIL][196], [FAIL][197], [FAIL][198], [FAIL][199], [FAIL][200]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][201], [FAIL][202], [FAIL][203], [FAIL][204], [FAIL][205], [FAIL][206], [FAIL][207], [FAIL][208], [FAIL][209], [FAIL][210], [FAIL][211], [FAIL][212], [FAIL][213], [FAIL][214]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [188]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@runner@aborted.html [190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@runner@aborted.html [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl3/igt@runner@aborted.html [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl3/igt@runner@aborted.html [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@runner@aborted.html [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@runner@aborted.html [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl3/igt@runner@aborted.html [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl1/igt@runner@aborted.html [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl4/igt@runner@aborted.html [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl6/igt@runner@aborted.html [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl4/igt@runner@aborted.html [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/shard-kbl7/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109290]: https://bugs.freedesktop.org/show_bug.cgi?id=109290 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293 [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300 [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112022]: https://bugs.freedesktop.org/show_bug.cgi?id=112022 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012 [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275 [i915#4278]: https://gitlab.freedesktop.org/drm/intel/issues/4278 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369 [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939 [i915#5072]: https://gitlab.freedesktop.org/drm/intel/issues/5072 [i915#5076]: https://gitlab.freedesktop.org/drm/intel/issues/5076 [i915#5098]: https://gitlab.freedesktop.org/drm/intel/issues/5098 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5293]: https://gitlab.freedesktop.org/drm/intel/issues/5293 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5501]: https://gitlab.freedesktop.org/drm/intel/issues/5501 [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5614]: https://gitlab.freedesktop.org/drm/intel/issues/5614 [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639 [i915#5691]: https://gitlab.freedesktop.org/drm/intel/issues/5691 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 Build changes ------------- * Linux: CI_DRM_11584 -> Patchwork_103407v1 CI-20190529: 20190529 CI_DRM_11584: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_6464: eddc67c5c85b8ee6eb4d13752ca43da5073dc985 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_103407v1: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103407v1/index.html [-- Attachment #2: Type: text/html, Size: 60896 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2022-05-09 16:57 UTC | newest] Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-04-30 20:04 [PATCH v5 0/2] Let userspace know when snd-hda-intel needs i915 Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-04-30 20:04 ` [Intel-gfx] " Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-04-30 20:04 ` [PATCH v5 1/2] module: update dependencies at try_module_get() Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-04-30 20:04 ` [Intel-gfx] " Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-05-02 6:08 ` Christophe Leroy 2022-05-02 6:08 ` [Intel-gfx] " Christophe Leroy 2022-05-02 6:08 ` Christophe Leroy 2022-05-02 6:08 ` Christophe Leroy 2022-05-05 21:35 ` [Intel-gfx] " Andi Shyti 2022-05-05 21:35 ` Andi Shyti 2022-05-09 16:56 ` Mauro Carvalho Chehab 2022-05-09 16:56 ` Mauro Carvalho Chehab 2022-05-09 16:56 ` Mauro Carvalho Chehab 2022-04-30 20:04 ` [PATCH v5 2/2] ALSA: hda - identify when audio is provided by a video driver Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-04-30 20:04 ` [Intel-gfx] " Mauro Carvalho Chehab 2022-04-30 20:04 ` Mauro Carvalho Chehab 2022-05-09 8:48 ` Takashi Iwai 2022-05-09 8:48 ` Takashi Iwai 2022-05-09 8:48 ` Takashi Iwai 2022-05-09 8:48 ` [Intel-gfx] " Takashi Iwai 2022-04-30 20:21 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Let userspace know when snd-hda-intel needs i915 Patchwork 2022-04-30 20:51 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2022-04-30 22:42 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.