[Intel-gfx] [PATCH 6/9] drm/i915: Log watermark latencies on a single line per plane
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Apr 27 10:06:59 UTC 2016
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Compacts debug logging a bit so instead of:
[drm:intel_print_wm_latency] Primary WM0 latency 20 (2.0 usec)
[drm:intel_print_wm_latency] Primary WM1 latency 50 (25.0 usec)
[drm:intel_print_wm_latency] Primary WM2 latency 90 (45.0 usec)
[drm:intel_print_wm_latency] Primary WM3 latency 130 (65.0 usec)
[drm:intel_print_wm_latency] Primary WM4 latency 160 (80.0 usec)
[drm:intel_print_wm_latency] Sprite WM0 latency 20 (2.0 usec)
[drm:intel_print_wm_latency] Sprite WM1 latency 50 (25.0 usec)
[drm:intel_print_wm_latency] Sprite WM2 latency 90 (45.0 usec)
[drm:intel_print_wm_latency] Sprite WM3 latency 130 (65.0 usec)
[drm:intel_print_wm_latency] Sprite WM4 latency 160 (80.0 usec)
[drm:intel_print_wm_latency] Cursor WM0 latency 20 (2.0 usec)
[drm:intel_print_wm_latency] Cursor WM1 latency 50 (25.0 usec)
[drm:intel_print_wm_latency] Cursor WM2 latency 90 (45.0 usec)
[drm:intel_print_wm_latency] Cursor WM3 latency 130 (65.0 usec)
[drm:intel_print_wm_latency] Cursor WM4 latency 160 (80.0 usec)
We get:
[drm:intel_print_wm_latency] Primary plane latencies [2.0us (20), 25.0us (50), 45.0us (90), 65.0us (130), 80.0us (160)]
[drm:intel_print_wm_latency] Sprite plane latencies [2.0us (20), 25.0us (50), 45.0us (90), 65.0us (130), 80.0us (160)]
[drm:intel_print_wm_latency] Cursor plane latencies [2.0us (20), 25.0us (50), 45.0us (90), 65.0us (130), 80.0us (160)]
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/intel_pm.c | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 695a464a5e64..23589eedf396 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2179,15 +2179,26 @@ static void intel_print_wm_latency(struct drm_device *dev,
const uint16_t wm[8])
{
int level, max_level = ilk_wm_max_level(dev);
+ bool error = false;
+ static const char *wm_msg = "%s plane latencies [";
for (level = 0; level <= max_level; level++) {
- unsigned int latency = wm[level];
-
- if (latency == 0) {
- DRM_ERROR("%s WM%d latency not provided\n",
- name, level);
- continue;
+ if (wm[level] == 0) {
+ error = true;
+ break;
}
+ }
+
+ if (error)
+ DRM_ERROR(wm_msg, name);
+ else
+ DRM_DEBUG_KMS(wm_msg, name);
+
+ if (!error && !(drm_debug && DRM_UT_KMS))
+ return;
+
+ for (level = 0; level <= max_level; level++) {
+ unsigned int latency = wm[level];
/*
* - latencies are in us on gen9.
@@ -2198,10 +2209,12 @@ static void intel_print_wm_latency(struct drm_device *dev,
else if (level > 0)
latency *= 5;
- DRM_DEBUG_KMS("%s WM%d latency %u (%u.%u usec)\n",
- name, level, wm[level],
- latency / 10, latency % 10);
+ if (level > 0)
+ printk(", ");
+ printk("%u.%uus (%u)", latency / 10, latency % 10, wm[level]);
}
+
+ printk("]\n");
}
static bool ilk_increase_wm_latency(struct drm_i915_private *dev_priv,
--
1.9.1
More information about the Intel-gfx
mailing list