* [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs
@ 2019-01-14 17:37 Chris Wilson
2019-01-14 17:37 ` [PATCH 2/3] snd/hda: Track the display_power_status using a cookie Chris Wilson
` (5 more replies)
0 siblings, 6 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 17:37 UTC (permalink / raw)
To: intel-gfx; +Cc: alsa-devel, Chris Wilson
Track the temporary rpm wakerefs used within audio so that they may be
marked as complete and the tracking cancelled upon release.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
drivers/gpu/drm/i915/intel_audio.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
index de26cd0a5497..92e27359c2e3 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -756,12 +756,13 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
bool enable)
{
struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
+ intel_wakeref_t wakeref;
u32 tmp;
if (!IS_GEN(dev_priv, 9))
return;
- i915_audio_component_get_power(kdev);
+ wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
/*
* Enable/disable generating the codec wake signal, overriding the
@@ -779,7 +780,7 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
usleep_range(1000, 1500);
}
- i915_audio_component_put_power(kdev);
+ intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, wakeref);
}
/* Get CDCLK in kHz */
@@ -850,12 +851,13 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
struct i915_audio_component *acomp = dev_priv->audio_component;
struct intel_encoder *encoder;
struct intel_crtc *crtc;
+ intel_wakeref_t wakeref;
int err = 0;
if (!HAS_DDI(dev_priv))
return 0;
- i915_audio_component_get_power(kdev);
+ wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
mutex_lock(&dev_priv->av_mutex);
/* 1. get the pipe */
@@ -875,7 +877,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
unlock:
mutex_unlock(&dev_priv->av_mutex);
- i915_audio_component_put_power(kdev);
+ intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, wakeref);
return err;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/3] snd/hda: Track the display_power_status using a cookie
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
@ 2019-01-14 17:37 ` Chris Wilson
2019-01-14 17:54 ` Takashi Iwai
2019-01-14 17:37 ` [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex Chris Wilson
` (4 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 17:37 UTC (permalink / raw)
To: intel-gfx; +Cc: Takashi Iwai, Jani Nikula, alsa-devel
drm/i915 is tracking all wakeref owners with a cookie in order to
identify leaks. To that end, each rpm acquisition ops->get_power is
assigned a cookie which should be passed to ops->put_power to signify
its release (and removal from the list of wakeref owners). As snd/hda is
already using a bool to track current status of display_power extending
that to an unsigned long to hold the boolean cookie is a trivial
extension, and will quell all doubt that snd/hda is the cause of the
device runtime pm leaks.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/intel_audio.c | 10 +++++-----
include/drm/drm_audio_component.h | 7 +++++--
include/sound/hdaudio.h | 4 ++--
sound/hda/hdac_component.c | 18 ++++++++++++------
4 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
index 92e27359c2e3..efc5fb3c2161 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -741,15 +741,15 @@ void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
}
}
-static void i915_audio_component_get_power(struct device *kdev)
+static unsigned long i915_audio_component_get_power(struct device *kdev)
{
- intel_display_power_get(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);
+ return intel_display_power_get(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);
}
-static void i915_audio_component_put_power(struct device *kdev)
+static void i915_audio_component_put_power(struct device *kdev,
+ unsigned long cookie)
{
- intel_display_power_put_unchecked(kdev_to_i915(kdev),
- POWER_DOMAIN_AUDIO);
+ intel_display_power_put(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO, cookie);
}
static void i915_audio_component_codec_wake_override(struct device *kdev,
diff --git a/include/drm/drm_audio_component.h b/include/drm/drm_audio_component.h
index 4923b00328c1..d0c7444319f5 100644
--- a/include/drm/drm_audio_component.h
+++ b/include/drm/drm_audio_component.h
@@ -18,14 +18,17 @@ struct drm_audio_component_ops {
* @get_power: get the POWER_DOMAIN_AUDIO power well
*
* Request the power well to be turned on.
+ *
+ * Returns a wakeref cookie to be passed back to the corresponding
+ * call to @put_power.
*/
- void (*get_power)(struct device *);
+ unsigned long (*get_power)(struct device *);
/**
* @put_power: put the POWER_DOMAIN_AUDIO power well
*
* Allow the power well to be turned off.
*/
- void (*put_power)(struct device *);
+ void (*put_power)(struct device *, unsigned long);
/**
* @codec_wake_override: Enable/disable codec wake signal
*/
diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index b4fa1c775251..39761120ee76 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -366,8 +366,8 @@ struct hdac_bus {
/* DRM component interface */
struct drm_audio_component *audio_component;
- long display_power_status;
- bool display_power_active;
+ unsigned long display_power_status;
+ unsigned long display_power_active;
/* parameters required for enhanced capabilities */
int num_streams;
diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index a6d37b9d6413..2702548b788a 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -79,17 +79,23 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
if (bus->display_power_status) {
if (!bus->display_power_active) {
+ unsigned long cookie = -1;
+
if (acomp->ops->get_power)
- acomp->ops->get_power(acomp->dev);
+ cookie = acomp->ops->get_power(acomp->dev);
+
snd_hdac_set_codec_wakeup(bus, true);
snd_hdac_set_codec_wakeup(bus, false);
- bus->display_power_active = true;
+ bus->display_power_active = cookie;
}
} else {
if (bus->display_power_active) {
+ unsigned long cookie = bus->display_power_active;
+
if (acomp->ops->put_power)
- acomp->ops->put_power(acomp->dev);
- bus->display_power_active = false;
+ acomp->ops->put_power(acomp->dev, cookie);
+
+ bus->display_power_active = 0;
}
}
}
@@ -325,9 +331,9 @@ int snd_hdac_acomp_exit(struct hdac_bus *bus)
return 0;
if (WARN_ON(bus->display_power_active) && acomp->ops)
- acomp->ops->put_power(acomp->dev);
+ acomp->ops->put_power(acomp->dev, bus->display_power_active);
- bus->display_power_active = false;
+ bus->display_power_active = 0;
bus->display_power_status = 0;
component_master_del(dev, &hdac_component_master_ops);
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
2019-01-14 17:37 ` [PATCH 2/3] snd/hda: Track the display_power_status using a cookie Chris Wilson
@ 2019-01-14 17:37 ` Chris Wilson
2019-01-14 17:46 ` Takashi Iwai
2019-01-14 18:07 ` [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs John Harrison
` (3 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 17:37 UTC (permalink / raw)
To: intel-gfx; +Cc: Takashi Iwai, Jani Nikula, alsa-devel, Chris Wilson
Just in case the audio linkage is swapped between components during the
runtime pm sequence, we need to protect the rpm tracking with a mutex.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jani Nikula <jani.nikula@intel.com>
---
include/sound/hdaudio.h | 1 +
sound/hda/hdac_component.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index 39761120ee76..497335b24e18 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -368,6 +368,7 @@ struct hdac_bus {
struct drm_audio_component *audio_component;
unsigned long display_power_status;
unsigned long display_power_active;
+ struct mutex display_power_lock;
/* parameters required for enhanced capabilities */
int num_streams;
diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index 2702548b788a..ea76c1de2927 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -77,6 +77,7 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
if (!acomp || !acomp->ops)
return;
+ mutex_lock(&bus->display_power_lock);
if (bus->display_power_status) {
if (!bus->display_power_active) {
unsigned long cookie = -1;
@@ -98,6 +99,7 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
bus->display_power_active = 0;
}
}
+ mutex_unlock(&bus->display_power_lock);
}
EXPORT_SYMBOL_GPL(snd_hdac_display_power);
@@ -290,6 +292,9 @@ int snd_hdac_acomp_init(struct hdac_bus *bus,
GFP_KERNEL);
if (!acomp)
return -ENOMEM;
+
+ mutex_init(&bus->display_power_lock);
+
acomp->audio_ops = aops;
bus->audio_component = acomp;
devres_add(dev, acomp);
@@ -336,6 +341,8 @@ int snd_hdac_acomp_exit(struct hdac_bus *bus)
bus->display_power_active = 0;
bus->display_power_status = 0;
+ mutex_destroy(&bus->display_power_lock);
+
component_master_del(dev, &hdac_component_master_ops);
bus->audio_component = NULL;
--
2.20.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 17:37 ` [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex Chris Wilson
@ 2019-01-14 17:46 ` Takashi Iwai
2019-01-14 17:51 ` Chris Wilson
0 siblings, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2019-01-14 17:46 UTC (permalink / raw)
To: Chris Wilson; +Cc: Jani Nikula, intel-gfx, alsa-devel
On Mon, 14 Jan 2019 18:37:53 +0100,
Chris Wilson wrote:
>
> Just in case the audio linkage is swapped between components during the
> runtime pm sequence, we need to protect the rpm tracking with a mutex.
It's not clear to me how does this happens.
Could you elaborate a bit more the scenario?
thanks,
Takashi
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
> include/sound/hdaudio.h | 1 +
> sound/hda/hdac_component.c | 7 +++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
> index 39761120ee76..497335b24e18 100644
> --- a/include/sound/hdaudio.h
> +++ b/include/sound/hdaudio.h
> @@ -368,6 +368,7 @@ struct hdac_bus {
> struct drm_audio_component *audio_component;
> unsigned long display_power_status;
> unsigned long display_power_active;
> + struct mutex display_power_lock;
>
> /* parameters required for enhanced capabilities */
> int num_streams;
> diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
> index 2702548b788a..ea76c1de2927 100644
> --- a/sound/hda/hdac_component.c
> +++ b/sound/hda/hdac_component.c
> @@ -77,6 +77,7 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
> if (!acomp || !acomp->ops)
> return;
>
> + mutex_lock(&bus->display_power_lock);
> if (bus->display_power_status) {
> if (!bus->display_power_active) {
> unsigned long cookie = -1;
> @@ -98,6 +99,7 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
> bus->display_power_active = 0;
> }
> }
> + mutex_unlock(&bus->display_power_lock);
> }
> EXPORT_SYMBOL_GPL(snd_hdac_display_power);
>
> @@ -290,6 +292,9 @@ int snd_hdac_acomp_init(struct hdac_bus *bus,
> GFP_KERNEL);
> if (!acomp)
> return -ENOMEM;
> +
> + mutex_init(&bus->display_power_lock);
> +
> acomp->audio_ops = aops;
> bus->audio_component = acomp;
> devres_add(dev, acomp);
> @@ -336,6 +341,8 @@ int snd_hdac_acomp_exit(struct hdac_bus *bus)
> bus->display_power_active = 0;
> bus->display_power_status = 0;
>
> + mutex_destroy(&bus->display_power_lock);
> +
> component_master_del(dev, &hdac_component_master_ops);
>
> bus->audio_component = NULL;
> --
> 2.20.1
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 17:46 ` Takashi Iwai
@ 2019-01-14 17:51 ` Chris Wilson
2019-01-14 18:00 ` Takashi Iwai
0 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 17:51 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Jani Nikula, intel-gfx, alsa-devel
Quoting Takashi Iwai (2019-01-14 17:46:57)
> On Mon, 14 Jan 2019 18:37:53 +0100,
> Chris Wilson wrote:
> >
> > Just in case the audio linkage is swapped between components during the
> > runtime pm sequence, we need to protect the rpm tracking with a mutex.
>
> It's not clear to me how does this happens.
> Could you elaborate a bit more the scenario?
The code is written such that multiple bits within display_power_status
can be set and cleared simultaneously. There was no serialisation
mentioned in the routine, so I was fearful that the display_power_active
here was being accessed concurrently -- and if that was explaining why
snd/hda appears to be leaking the runtime pm (or at least is holding on
to the wakeref longer than igt expects, > 10s).
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] snd/hda: Track the display_power_status using a cookie
2019-01-14 17:37 ` [PATCH 2/3] snd/hda: Track the display_power_status using a cookie Chris Wilson
@ 2019-01-14 17:54 ` Takashi Iwai
2019-01-14 21:11 ` Chris Wilson
0 siblings, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2019-01-14 17:54 UTC (permalink / raw)
To: Chris Wilson; +Cc: Jani Nikula, intel-gfx, alsa-devel
On Mon, 14 Jan 2019 18:37:52 +0100,
Chris Wilson wrote:
>
> drm/i915 is tracking all wakeref owners with a cookie in order to
> identify leaks. To that end, each rpm acquisition ops->get_power is
> assigned a cookie which should be passed to ops->put_power to signify
> its release (and removal from the list of wakeref owners). As snd/hda is
> already using a bool to track current status of display_power extending
> that to an unsigned long to hold the boolean cookie is a trivial
> extension, and will quell all doubt that snd/hda is the cause of the
> device runtime pm leaks.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_audio.c | 10 +++++-----
> include/drm/drm_audio_component.h | 7 +++++--
> include/sound/hdaudio.h | 4 ++--
> sound/hda/hdac_component.c | 18 ++++++++++++------
> 4 files changed, 24 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
> index 92e27359c2e3..efc5fb3c2161 100644
> --- a/drivers/gpu/drm/i915/intel_audio.c
> +++ b/drivers/gpu/drm/i915/intel_audio.c
> @@ -741,15 +741,15 @@ void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
> }
> }
>
> -static void i915_audio_component_get_power(struct device *kdev)
> +static unsigned long i915_audio_component_get_power(struct device *kdev)
> {
> - intel_display_power_get(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);
> + return intel_display_power_get(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);
> }
>
> -static void i915_audio_component_put_power(struct device *kdev)
> +static void i915_audio_component_put_power(struct device *kdev,
> + unsigned long cookie)
> {
> - intel_display_power_put_unchecked(kdev_to_i915(kdev),
> - POWER_DOMAIN_AUDIO);
> + intel_display_power_put(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO, cookie);
> }
>
> static void i915_audio_component_codec_wake_override(struct device *kdev,
> diff --git a/include/drm/drm_audio_component.h b/include/drm/drm_audio_component.h
> index 4923b00328c1..d0c7444319f5 100644
> --- a/include/drm/drm_audio_component.h
> +++ b/include/drm/drm_audio_component.h
> @@ -18,14 +18,17 @@ struct drm_audio_component_ops {
> * @get_power: get the POWER_DOMAIN_AUDIO power well
> *
> * Request the power well to be turned on.
> + *
> + * Returns a wakeref cookie to be passed back to the corresponding
> + * call to @put_power.
Better to explain that the cookie should be non-zero for active
state.
> */
> - void (*get_power)(struct device *);
> + unsigned long (*get_power)(struct device *);
> /**
> * @put_power: put the POWER_DOMAIN_AUDIO power well
> *
> * Allow the power well to be turned off.
> */
> - void (*put_power)(struct device *);
> + void (*put_power)(struct device *, unsigned long);
> /**
> * @codec_wake_override: Enable/disable codec wake signal
> */
> diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
> index b4fa1c775251..39761120ee76 100644
> --- a/include/sound/hdaudio.h
> +++ b/include/sound/hdaudio.h
> @@ -366,8 +366,8 @@ struct hdac_bus {
>
> /* DRM component interface */
> struct drm_audio_component *audio_component;
> - long display_power_status;
> - bool display_power_active;
> + unsigned long display_power_status;
You don't need to change this field. It's irrelevant with this patch
itself.
thanks,
Takashi
> + unsigned long display_power_active;
>
> /* parameters required for enhanced capabilities */
> int num_streams;
> diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
> index a6d37b9d6413..2702548b788a 100644
> --- a/sound/hda/hdac_component.c
> +++ b/sound/hda/hdac_component.c
> @@ -79,17 +79,23 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
>
> if (bus->display_power_status) {
> if (!bus->display_power_active) {
> + unsigned long cookie = -1;
> +
> if (acomp->ops->get_power)
> - acomp->ops->get_power(acomp->dev);
> + cookie = acomp->ops->get_power(acomp->dev);
> +
> snd_hdac_set_codec_wakeup(bus, true);
> snd_hdac_set_codec_wakeup(bus, false);
> - bus->display_power_active = true;
> + bus->display_power_active = cookie;
> }
> } else {
> if (bus->display_power_active) {
> + unsigned long cookie = bus->display_power_active;
> +
> if (acomp->ops->put_power)
> - acomp->ops->put_power(acomp->dev);
> - bus->display_power_active = false;
> + acomp->ops->put_power(acomp->dev, cookie);
> +
> + bus->display_power_active = 0;
> }
> }
> }
> @@ -325,9 +331,9 @@ int snd_hdac_acomp_exit(struct hdac_bus *bus)
> return 0;
>
> if (WARN_ON(bus->display_power_active) && acomp->ops)
> - acomp->ops->put_power(acomp->dev);
> + acomp->ops->put_power(acomp->dev, bus->display_power_active);
>
> - bus->display_power_active = false;
> + bus->display_power_active = 0;
> bus->display_power_status = 0;
>
> component_master_del(dev, &hdac_component_master_ops);
> --
> 2.20.1
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 17:51 ` Chris Wilson
@ 2019-01-14 18:00 ` Takashi Iwai
2019-01-14 20:57 ` Chris Wilson
0 siblings, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2019-01-14 18:00 UTC (permalink / raw)
To: Chris Wilson; +Cc: Jani Nikula, intel-gfx, alsa-devel
On Mon, 14 Jan 2019 18:51:31 +0100,
Chris Wilson wrote:
>
> Quoting Takashi Iwai (2019-01-14 17:46:57)
> > On Mon, 14 Jan 2019 18:37:53 +0100,
> > Chris Wilson wrote:
> > >
> > > Just in case the audio linkage is swapped between components during the
> > > runtime pm sequence, we need to protect the rpm tracking with a mutex.
> >
> > It's not clear to me how does this happens.
> > Could you elaborate a bit more the scenario?
>
> The code is written such that multiple bits within display_power_status
> can be set and cleared simultaneously. There was no serialisation
> mentioned in the routine, so I was fearful that the display_power_active
> here was being accessed concurrently -- and if that was explaining why
> snd/hda appears to be leaking the runtime pm (or at least is holding on
> to the wakeref longer than igt expects, > 10s).
Aha, and does patch actually "fix" the issue...?
It's a simple mutex addition, so no big show, and I'm fine with it,
but just wonder whether it really helped.
thanks,
Takashi
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
2019-01-14 17:37 ` [PATCH 2/3] snd/hda: Track the display_power_status using a cookie Chris Wilson
2019-01-14 17:37 ` [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex Chris Wilson
@ 2019-01-14 18:07 ` John Harrison
2019-01-14 18:21 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: John Harrison @ 2019-01-14 18:07 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: alsa-devel
On 1/14/2019 09:37, Chris Wilson wrote:
> Track the temporary rpm wakerefs used within audio so that they may be
> marked as complete and the tracking cancelled upon release.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/intel_audio.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
> index de26cd0a5497..92e27359c2e3 100644
> --- a/drivers/gpu/drm/i915/intel_audio.c
> +++ b/drivers/gpu/drm/i915/intel_audio.c
> @@ -756,12 +756,13 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
> bool enable)
> {
> struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> + intel_wakeref_t wakeref;
> u32 tmp;
>
> if (!IS_GEN(dev_priv, 9))
> return;
>
> - i915_audio_component_get_power(kdev);
> + wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
Why remove the audio power abstraction from these functions when the
next patch is to update the abstraction to use the wakeref interface?
John.
>
> /*
> * Enable/disable generating the codec wake signal, overriding the
> @@ -779,7 +780,7 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
> usleep_range(1000, 1500);
> }
>
> - i915_audio_component_put_power(kdev);
> + intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, wakeref);
> }
>
> /* Get CDCLK in kHz */
> @@ -850,12 +851,13 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
> struct i915_audio_component *acomp = dev_priv->audio_component;
> struct intel_encoder *encoder;
> struct intel_crtc *crtc;
> + intel_wakeref_t wakeref;
> int err = 0;
>
> if (!HAS_DDI(dev_priv))
> return 0;
>
> - i915_audio_component_get_power(kdev);
> + wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
> mutex_lock(&dev_priv->av_mutex);
>
> /* 1. get the pipe */
> @@ -875,7 +877,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
>
> unlock:
> mutex_unlock(&dev_priv->av_mutex);
> - i915_audio_component_put_power(kdev);
> + intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, wakeref);
> return err;
> }
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
` (2 preceding siblings ...)
2019-01-14 18:07 ` [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs John Harrison
@ 2019-01-14 18:21 ` Patchwork
2019-01-14 19:14 ` ✓ Fi.CI.BAT: success " Patchwork
2019-01-15 0:29 ` ✓ Fi.CI.IGT: " Patchwork
5 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-14 18:21 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
URL : https://patchwork.freedesktop.org/series/55194/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
b531f8b4dca8 drm/i915/audio: Track temporary rpm wakerefs
c78a3bd63af7 snd/hda: Track the display_power_status using a cookie
-:57: WARNING:FUNCTION_ARGUMENTS: function definition argument 'struct device *' should also have an identifier name
#57: FILE: include/drm/drm_audio_component.h:25:
+ unsigned long (*get_power)(struct device *);
-:64: WARNING:FUNCTION_ARGUMENTS: function definition argument 'struct device *' should also have an identifier name
#64: FILE: include/drm/drm_audio_component.h:31:
+ void (*put_power)(struct device *, unsigned long);
-:64: WARNING:FUNCTION_ARGUMENTS: function definition argument 'unsigned long' should also have an identifier name
#64: FILE: include/drm/drm_audio_component.h:31:
+ void (*put_power)(struct device *, unsigned long);
total: 0 errors, 3 warnings, 0 checks, 87 lines checked
b285256865f3 snd/hda: Protect concurrent display_power_status with a mutex
-:21: CHECK:UNCOMMENTED_DEFINITION: struct mutex definition without comment
#21: FILE: include/sound/hdaudio.h:371:
+ struct mutex display_power_lock;
total: 0 errors, 0 warnings, 1 checks, 38 lines checked
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
` (3 preceding siblings ...)
2019-01-14 18:21 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] " Patchwork
@ 2019-01-14 19:14 ` Patchwork
2019-01-15 0:29 ` ✓ Fi.CI.IGT: " Patchwork
5 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-14 19:14 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
URL : https://patchwork.freedesktop.org/series/55194/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5417 -> Patchwork_11291
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/55194/revisions/1/mbox/
Known issues
------------
Here are the changes found in Patchwork_11291 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: PASS -> FAIL [fdo#108767]
* igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy: PASS -> DMESG-WARN [fdo#102614]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3:
- fi-skl-6700hq: FAIL [fdo#103375] -> PASS
* igt@i915_selftest@live_hangcheck:
- fi-bwr-2160: DMESG-FAIL [fdo#108735] -> PASS
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
[fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
Participating hosts (46 -> 41)
------------------------------
Missing (5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_5417 -> Patchwork_11291
CI_DRM_5417: e74c7f4367402f37637edc8885d714b980f153a5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4769: c3aef507e1dfe1e483787d501e9907dab67f6bca @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_11291: b285256865f39ab02ab455ee3005ffb86accd3c1 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
b285256865f3 snd/hda: Protect concurrent display_power_status with a mutex
c78a3bd63af7 snd/hda: Track the display_power_status using a cookie
b531f8b4dca8 drm/i915/audio: Track temporary rpm wakerefs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_11291/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 18:00 ` Takashi Iwai
@ 2019-01-14 20:57 ` Chris Wilson
2019-01-14 21:18 ` Takashi Iwai
0 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 20:57 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Jani Nikula, intel-gfx, alsa-devel
Quoting Takashi Iwai (2019-01-14 18:00:02)
> On Mon, 14 Jan 2019 18:51:31 +0100,
> Chris Wilson wrote:
> >
> > Quoting Takashi Iwai (2019-01-14 17:46:57)
> > > On Mon, 14 Jan 2019 18:37:53 +0100,
> > > Chris Wilson wrote:
> > > >
> > > > Just in case the audio linkage is swapped between components during the
> > > > runtime pm sequence, we need to protect the rpm tracking with a mutex.
> > >
> > > It's not clear to me how does this happens.
> > > Could you elaborate a bit more the scenario?
> >
> > The code is written such that multiple bits within display_power_status
> > can be set and cleared simultaneously. There was no serialisation
> > mentioned in the routine, so I was fearful that the display_power_active
> > here was being accessed concurrently -- and if that was explaining why
> > snd/hda appears to be leaking the runtime pm (or at least is holding on
> > to the wakeref longer than igt expects, > 10s).
>
> Aha, and does patch actually "fix" the issue...?
Not sure yet; it's a temperamental issue in CI and my chief suspect is that
it's just a misconfiguration of the rpm autosuspend. What may point
towards the scenario above is if i915.ko module unloading has any impact
on it.
> It's a simple mutex addition, so no big show, and I'm fine with it,
> but just wonder whether it really helped.
Yeah, it just looked suspicious when reviewing the code, will throw it
at CI a few times to see if it sticks.
-Chris
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] snd/hda: Track the display_power_status using a cookie
2019-01-14 17:54 ` Takashi Iwai
@ 2019-01-14 21:11 ` Chris Wilson
0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-14 21:11 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Jani Nikula, intel-gfx, alsa-devel
Quoting Takashi Iwai (2019-01-14 17:54:08)
> On Mon, 14 Jan 2019 18:37:52 +0100,
> Chris Wilson wrote:
> > diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
> > index b4fa1c775251..39761120ee76 100644
> > --- a/include/sound/hdaudio.h
> > +++ b/include/sound/hdaudio.h
> > @@ -366,8 +366,8 @@ struct hdac_bus {
> >
> > /* DRM component interface */
> > struct drm_audio_component *audio_component;
> > - long display_power_status;
> > - bool display_power_active;
> > + unsigned long display_power_status;
>
> You don't need to change this field. It's irrelevant with this patch
> itself.
It kept the length of the two variables the same, while matching the
type as used with set_bit/clear_bit :)
-Chris
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex
2019-01-14 20:57 ` Chris Wilson
@ 2019-01-14 21:18 ` Takashi Iwai
0 siblings, 0 replies; 14+ messages in thread
From: Takashi Iwai @ 2019-01-14 21:18 UTC (permalink / raw)
To: Chris Wilson; +Cc: Jani Nikula, intel-gfx, alsa-devel
On Mon, 14 Jan 2019 21:57:15 +0100,
Chris Wilson wrote:
>
> Quoting Takashi Iwai (2019-01-14 18:00:02)
> > On Mon, 14 Jan 2019 18:51:31 +0100,
> > Chris Wilson wrote:
> > >
> > > Quoting Takashi Iwai (2019-01-14 17:46:57)
> > > > On Mon, 14 Jan 2019 18:37:53 +0100,
> > > > Chris Wilson wrote:
> > > > >
> > > > > Just in case the audio linkage is swapped between components during the
> > > > > runtime pm sequence, we need to protect the rpm tracking with a mutex.
> > > >
> > > > It's not clear to me how does this happens.
> > > > Could you elaborate a bit more the scenario?
> > >
> > > The code is written such that multiple bits within display_power_status
> > > can be set and cleared simultaneously. There was no serialisation
> > > mentioned in the routine, so I was fearful that the display_power_active
> > > here was being accessed concurrently -- and if that was explaining why
> > > snd/hda appears to be leaking the runtime pm (or at least is holding on
> > > to the wakeref longer than igt expects, > 10s).
> >
> > Aha, and does patch actually "fix" the issue...?
>
> Not sure yet; it's a temperamental issue in CI and my chief suspect is that
> it's just a misconfiguration of the rpm autosuspend. What may point
> towards the scenario above is if i915.ko module unloading has any impact
> on it.
>
> > It's a simple mutex addition, so no big show, and I'm fine with it,
> > but just wonder whether it really helped.
>
> Yeah, it just looked suspicious when reviewing the code, will throw it
> at CI a few times to see if it sticks.
OK, would you re-submit the patchset if it's confirmed to fix the
issue? Then we should mark it Cc-to-stable as a real fix, at least.
thanks,
Takashi
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
` (4 preceding siblings ...)
2019-01-14 19:14 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-01-15 0:29 ` Patchwork
5 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-15 0:29 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] drm/i915/audio: Track temporary rpm wakerefs
URL : https://patchwork.freedesktop.org/series/55194/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5417_full -> Patchwork_11291_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_11291_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_prop_blob@blob-prop-validate:
- shard-apl: PASS -> INCOMPLETE [fdo#103927]
* igt@gem_exec_whisper@normal:
- shard-skl: NOTRUN -> FAIL [fdo#109356]
* igt@i915_selftest@live_workarounds:
- shard-iclb: PASS -> DMESG-FAIL [fdo#108954]
* igt@kms_atomic@test_only:
- shard-iclb: PASS -> DMESG-WARN [fdo#107724] +28
* igt@kms_atomic_transition@1x-modeset-transitions:
- shard-iclb: PASS -> DMESG-WARN [fdo#107724] / [fdo#108336] +12
* igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing:
- shard-apl: PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] / [fdo#109225]
- shard-iclb: PASS -> DMESG-WARN [fdo#107724] / [fdo#109225] +1
* igt@kms_busy@extended-modeset-hang-newfb-render-c:
- shard-skl: NOTRUN -> DMESG-WARN [fdo#107956] +1
* igt@kms_busy@extended-pageflip-hang-newfb-render-c:
- shard-glk: NOTRUN -> DMESG-WARN [fdo#107956]
* igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a:
- shard-iclb: PASS -> DMESG-WARN [fdo#107956]
* igt@kms_color@pipe-b-degamma:
- shard-apl: PASS -> FAIL [fdo#104782]
* igt@kms_cursor_crc@cursor-128x128-random:
- shard-apl: PASS -> FAIL [fdo#103232] +7
* igt@kms_cursor_crc@cursor-64x21-onscreen:
- shard-glk: PASS -> FAIL [fdo#103232]
* igt@kms_cursor_crc@cursor-64x64-suspend:
- shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232]
* igt@kms_draw_crc@draw-method-xrgb2101010-render-untiled:
- shard-iclb: PASS -> WARN [fdo#108336] +6
* igt@kms_flip@2x-flip-vs-dpms:
- shard-hsw: PASS -> DMESG-WARN [fdo#102614]
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl: PASS -> FAIL [fdo#105363]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-apl: PASS -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-iclb: PASS -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
- shard-iclb: NOTRUN -> DMESG-FAIL [fdo#107724] +1
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
- shard-glk: PASS -> FAIL [fdo#103167] +1
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-blt:
- shard-iclb: PASS -> DMESG-FAIL [fdo#107724] +10
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
- shard-iclb: NOTRUN -> DMESG-WARN [fdo#107724] / [fdo#108336] +4
* igt@kms_plane@pixel-format-pipe-a-planes:
- shard-skl: NOTRUN -> DMESG-WARN [fdo#106885]
* igt@kms_plane@plane-position-covered-pipe-c-planes:
- shard-apl: PASS -> FAIL [fdo#103166] +1
* igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
- shard-skl: NOTRUN -> FAIL [fdo#108145] +1
* igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-kbl: NOTRUN -> FAIL [fdo#108145]
* igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid:
- shard-apl: PASS -> DMESG-WARN [fdo#103558] / [fdo#105602] +26
* igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-apl: NOTRUN -> FAIL [fdo#108145]
* igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
- shard-iclb: PASS -> FAIL [fdo#103166] +1
* igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-glk: PASS -> DMESG-FAIL [fdo#105763] / [fdo#106538]
* igt@kms_setmode@basic:
- shard-hsw: PASS -> FAIL [fdo#99912]
* igt@kms_sysfs_edid_timing:
- shard-iclb: PASS -> FAIL [fdo#100047]
- shard-skl: NOTRUN -> FAIL [fdo#100047]
* igt@kms_universal_plane@universal-plane-pipe-b-functional:
- shard-iclb: PASS -> DMESG-FAIL [fdo#103166] / [fdo#107724]
* igt@perf_pmu@event-wait-rcs0:
- shard-iclb: NOTRUN -> DMESG-WARN [fdo#107724] +10
* igt@pm_rpm@i2c:
- shard-skl: PASS -> INCOMPLETE [fdo#107807]
* igt@pm_rpm@universal-planes:
- shard-iclb: PASS -> DMESG-WARN [fdo#108654] / [fdo#108756]
#### Possible fixes ####
* igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
- shard-kbl: DMESG-WARN [fdo#107956] -> PASS
* igt@kms_color@pipe-a-legacy-gamma:
- shard-apl: FAIL [fdo#104782] / [fdo#108145] -> PASS
* igt@kms_cursor_crc@cursor-128x128-suspend:
- shard-glk: INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS
- shard-apl: FAIL [fdo#103191] / [fdo#103232] -> PASS
* igt@kms_cursor_crc@cursor-64x21-sliding:
- shard-skl: FAIL [fdo#103232] -> PASS
* igt@kms_cursor_crc@cursor-64x64-dpms:
- shard-apl: FAIL [fdo#103232] -> PASS
* igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled:
- shard-skl: FAIL [fdo#103184] -> PASS
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-apl: FAIL [fdo#103167] -> PASS
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
- shard-iclb: FAIL [fdo#103167] -> PASS
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-glk: FAIL [fdo#103167] -> PASS
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-iclb: FAIL [fdo#105683] / [fdo#108040] -> PASS
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-skl: FAIL [fdo#105682] -> PASS
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render:
- shard-skl: FAIL [fdo#103167] -> PASS +3
* igt@kms_plane@pixel-format-pipe-c-planes:
- shard-glk: FAIL [fdo#103166] -> PASS +1
* igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
- shard-skl: FAIL [fdo#107815] / [fdo#108145] -> PASS
* igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
- shard-apl: FAIL [fdo#103166] -> PASS
* igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
- shard-iclb: FAIL [fdo#103166] -> PASS +1
* igt@kms_psr@no_drrs:
- shard-iclb: FAIL [fdo#108341] -> PASS
* igt@kms_setmode@basic:
- shard-apl: FAIL [fdo#99912] -> PASS
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-kbl: INCOMPLETE [fdo#103665] -> PASS
* igt@perf@short-reads:
- shard-skl: FAIL [fdo#103183] -> PASS
* igt@pm_rpm@gem-execbuf:
- shard-skl: INCOMPLETE [fdo#107803] / [fdo#107807] -> PASS
#### Warnings ####
* igt@kms_busy@extended-modeset-hang-newfb-render-a:
- shard-apl: INCOMPLETE [fdo#103927] -> DMESG-WARN [fdo#107956]
* igt@kms_cursor_crc@cursor-128x42-random:
- shard-iclb: FAIL [fdo#103232] -> DMESG-WARN [fdo#107724] / [fdo#108336]
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move:
- shard-iclb: FAIL [fdo#103167] -> DMESG-FAIL [fdo#107724]
* igt@kms_setmode@basic:
- shard-iclb: FAIL [fdo#99912] -> DMESG-FAIL [fdo#107724] / [fdo#99912]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103183]: https://bugs.freedesktop.org/show_bug.cgi?id=103183
[fdo#103184]: https://bugs.freedesktop.org/show_bug.cgi?id=103184
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
[fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
[fdo#105683]: https://bugs.freedesktop.org/show_bug.cgi?id=105683
[fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
[fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
[fdo#106885]: https://bugs.freedesktop.org/show_bug.cgi?id=106885
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#107803]: https://bugs.freedesktop.org/show_bug.cgi?id=107803
[fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
[fdo#107815]: https://bugs.freedesktop.org/show_bug.cgi?id=107815
[fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
[fdo#108040]: https://bugs.freedesktop.org/show_bug.cgi?id=108040
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108336]: https://bugs.freedesktop.org/show_bug.cgi?id=108336
[fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
[fdo#108654]: https://bugs.freedesktop.org/show_bug.cgi?id=108654
[fdo#108756]: https://bugs.freedesktop.org/show_bug.cgi?id=108756
[fdo#108954]: https://bugs.freedesktop.org/show_bug.cgi?id=108954
[fdo#109225]: https://bugs.freedesktop.org/show_bug.cgi?id=109225
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109275]: https://bugs.freedesktop.org/show_bug.cgi?id=109275
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109281]: https://bugs.freedesktop.org/show_bug.cgi?id=109281
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109286]: https://bugs.freedesktop.org/show_bug.cgi?id=109286
[fdo#109287]: https://bugs.freedesktop.org/show_bug.cgi?id=109287
[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#109301]: https://bugs.freedesktop.org/show_bug.cgi?id=109301
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
[fdo#109356]: https://bugs.freedesktop.org/show_bug.cgi?id=109356
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_5417 -> Patchwork_11291
CI_DRM_5417: e74c7f4367402f37637edc8885d714b980f153a5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4769: c3aef507e1dfe1e483787d501e9907dab67f6bca @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_11291: b285256865f39ab02ab455ee3005ffb86accd3c1 @ 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_11291/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2019-01-15 0:29 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-14 17:37 [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs Chris Wilson
2019-01-14 17:37 ` [PATCH 2/3] snd/hda: Track the display_power_status using a cookie Chris Wilson
2019-01-14 17:54 ` Takashi Iwai
2019-01-14 21:11 ` Chris Wilson
2019-01-14 17:37 ` [PATCH 3/3] snd/hda: Protect concurrent display_power_status with a mutex Chris Wilson
2019-01-14 17:46 ` Takashi Iwai
2019-01-14 17:51 ` Chris Wilson
2019-01-14 18:00 ` Takashi Iwai
2019-01-14 20:57 ` Chris Wilson
2019-01-14 21:18 ` Takashi Iwai
2019-01-14 18:07 ` [PATCH 1/3] drm/i915/audio: Track temporary rpm wakerefs John Harrison
2019-01-14 18:21 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] " Patchwork
2019-01-14 19:14 ` ✓ Fi.CI.BAT: success " Patchwork
2019-01-15 0:29 ` ✓ Fi.CI.IGT: " 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.