All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm: Add high-precision time to vblank trace event
@ 2019-08-09 15:36 Heinrich
  2019-08-14 17:15 ` Daniel Vetter
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Heinrich @ 2019-08-09 15:36 UTC (permalink / raw)
  To: dri-devel; +Cc: Heinrich

Store the timestamp of the current vblank in the new field 'time' of the
vblank trace event. If the timestamp is calculated by a driver that
supports high-precision vblank timing, set the field 'high-prec' to
'true'.

User space can now access actual hardware vblank times via the tracing
infrastructure. Tracing applications (such as GPUVis, see [0] for
related discussion), can use the newly added information to conduct a
more accurate analysis of display timing.

[0] https://github.com/mikesart/gpuvis/issues/30

Signed-off-by: Heinrich <heinrich.fink@daqri.com>
---
 drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
 drivers/gpu/drm/drm_vblank.c |  3 ++-
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
index baccc63db106..45f21d7fcfa1 100644
--- a/drivers/gpu/drm/drm_trace.h
+++ b/drivers/gpu/drm/drm_trace.h
@@ -11,17 +11,23 @@
 #define TRACE_INCLUDE_FILE drm_trace
 
 TRACE_EVENT(drm_vblank_event,
-	    TP_PROTO(int crtc, unsigned int seq),
-	    TP_ARGS(crtc, seq),
+	    TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
+	    TP_ARGS(crtc, seq, time, high_prec),
 	    TP_STRUCT__entry(
 		    __field(int, crtc)
 		    __field(unsigned int, seq)
+		    __field(ktime_t, time)
+		    __field(bool, high_prec)
 		    ),
 	    TP_fast_assign(
 		    __entry->crtc = crtc;
 		    __entry->seq = seq;
-		    ),
-	    TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
+		    __entry->time = time;
+		    __entry->high_prec = high_prec;
+			),
+	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
+			__entry->crtc, __entry->seq, __entry->time,
+			__entry->high_prec ? "true" : "false")
 );
 
 TRACE_EVENT(drm_vblank_event_queued,
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index a1b65d26d761..fb089a88b516 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1706,7 +1706,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
 		send_vblank_event(dev, e, seq, now);
 	}
 
-	trace_drm_vblank_event(pipe, seq);
+	trace_drm_vblank_event(pipe, seq, now,
+			dev->driver->get_vblank_timestamp != NULL);
 }
 
 /**
-- 
2.23.0.rc1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm: Add high-precision time to vblank trace event
  2019-08-09 15:36 [PATCH] drm: Add high-precision time to vblank trace event Heinrich
@ 2019-08-14 17:15 ` Daniel Vetter
  2019-09-02 14:24   ` Heinrich Fink
  2019-09-02 14:40 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Daniel Vetter @ 2019-08-14 17:15 UTC (permalink / raw)
  To: Heinrich; +Cc: Keith Packard, intel-gfx, DRI Development

On Fri, Aug 09, 2019 at 05:36:39PM +0200, Heinrich wrote:
> Store the timestamp of the current vblank in the new field 'time' of the
> vblank trace event. If the timestamp is calculated by a driver that
> supports high-precision vblank timing, set the field 'high-prec' to
> 'true'.
> 
> User space can now access actual hardware vblank times via the tracing
> infrastructure. Tracing applications (such as GPUVis, see [0] for
> related discussion), can use the newly added information to conduct a
> more accurate analysis of display timing.
> 
> [0] https://github.com/mikesart/gpuvis/issues/30
> 
> Signed-off-by: Heinrich <heinrich.fink@daqri.com>

lgtm, and I think rather useful.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

I think we should let this hang out on the m-l for 2 weeks or so in case
of comments and what not. Please ping me again (since most likely I'll
forget).

Also adding Keith, he's been playing around a lot lately with vblank
timestamps and stuff, might be interested in this too.

Thanks, Daniel



> ---
>  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
>  drivers/gpu/drm/drm_vblank.c |  3 ++-
>  2 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> index baccc63db106..45f21d7fcfa1 100644
> --- a/drivers/gpu/drm/drm_trace.h
> +++ b/drivers/gpu/drm/drm_trace.h
> @@ -11,17 +11,23 @@
>  #define TRACE_INCLUDE_FILE drm_trace
>  
>  TRACE_EVENT(drm_vblank_event,
> -	    TP_PROTO(int crtc, unsigned int seq),
> -	    TP_ARGS(crtc, seq),
> +	    TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> +	    TP_ARGS(crtc, seq, time, high_prec),
>  	    TP_STRUCT__entry(
>  		    __field(int, crtc)
>  		    __field(unsigned int, seq)
> +		    __field(ktime_t, time)
> +		    __field(bool, high_prec)
>  		    ),
>  	    TP_fast_assign(
>  		    __entry->crtc = crtc;
>  		    __entry->seq = seq;
> -		    ),
> -	    TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> +		    __entry->time = time;
> +		    __entry->high_prec = high_prec;
> +			),
> +	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> +			__entry->crtc, __entry->seq, __entry->time,
> +			__entry->high_prec ? "true" : "false")
>  );
>  
>  TRACE_EVENT(drm_vblank_event_queued,
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index a1b65d26d761..fb089a88b516 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1706,7 +1706,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
>  		send_vblank_event(dev, e, seq, now);
>  	}
>  
> -	trace_drm_vblank_event(pipe, seq);
> +	trace_drm_vblank_event(pipe, seq, now,
> +			dev->driver->get_vblank_timestamp != NULL);
>  }
>  
>  /**
> -- 
> 2.23.0.rc1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm: Add high-precision time to vblank trace event
  2019-08-14 17:15 ` Daniel Vetter
@ 2019-09-02 14:24   ` Heinrich Fink
  2019-09-02 14:24     ` [PATCH v2] " Heinrich Fink
  0 siblings, 1 reply; 13+ messages in thread
From: Heinrich Fink @ 2019-09-02 14:24 UTC (permalink / raw)
  To: daniel.vetter; +Cc: intel-gfx, dri-devel

Thanks for the review, Daniel. I noticed that my last name was missing
in the initial revision (my git config was messed up). I am sending v2
of this patch to fix this, including your r/b tag.

Cheers, Heinrich


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-02 14:24   ` Heinrich Fink
@ 2019-09-02 14:24     ` Heinrich Fink
  2019-09-03  7:46       ` Daniel Vetter
  0 siblings, 1 reply; 13+ messages in thread
From: Heinrich Fink @ 2019-09-02 14:24 UTC (permalink / raw)
  To: daniel.vetter; +Cc: heinrich.fink, intel-gfx, keithp, dri-devel

Store the timestamp of the current vblank in the new field 'time' of the
vblank trace event. If the timestamp is calculated by a driver that
supports high-precision vblank timing, set the field 'high-prec' to
'true'.

User space can now access actual hardware vblank times via the tracing
infrastructure. Tracing applications (such as GPUVis, see [0] for
related discussion), can use the newly added information to conduct a
more accurate analysis of display timing.

v2 Fix author name (missing last name)

[0] https://github.com/mikesart/gpuvis/issues/30

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
---
 drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
 drivers/gpu/drm/drm_vblank.c |  3 ++-
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
index 471eb927474b..11c6dd577e8e 100644
--- a/drivers/gpu/drm/drm_trace.h
+++ b/drivers/gpu/drm/drm_trace.h
@@ -13,17 +13,23 @@ struct drm_file;
 #define TRACE_INCLUDE_FILE drm_trace
 
 TRACE_EVENT(drm_vblank_event,
-	    TP_PROTO(int crtc, unsigned int seq),
-	    TP_ARGS(crtc, seq),
+	    TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
+	    TP_ARGS(crtc, seq, time, high_prec),
 	    TP_STRUCT__entry(
 		    __field(int, crtc)
 		    __field(unsigned int, seq)
+		    __field(ktime_t, time)
+		    __field(bool, high_prec)
 		    ),
 	    TP_fast_assign(
 		    __entry->crtc = crtc;
 		    __entry->seq = seq;
-		    ),
-	    TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
+		    __entry->time = time;
+		    __entry->high_prec = high_prec;
+			),
+	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
+			__entry->crtc, __entry->seq, __entry->time,
+			__entry->high_prec ? "true" : "false")
 );
 
 TRACE_EVENT(drm_vblank_event_queued,
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index fd1fbc77871f..c99feda25dea 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
 		send_vblank_event(dev, e, seq, now);
 	}
 
-	trace_drm_vblank_event(pipe, seq);
+	trace_drm_vblank_event(pipe, seq, now,
+			dev->driver->get_vblank_timestamp != NULL);
 }
 
 /**
-- 
2.23.0.rc1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm: Add high-precision time to vblank trace event
  2019-08-09 15:36 [PATCH] drm: Add high-precision time to vblank trace event Heinrich
  2019-08-14 17:15 ` Daniel Vetter
@ 2019-09-02 14:40 ` Patchwork
  2019-09-02 15:04 ` ✓ Fi.CI.BAT: success " Patchwork
  2019-09-02 16:52 ` ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-09-02 14:40 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: intel-gfx

== Series Details ==

Series: drm: Add high-precision time to vblank trace event
URL   : https://patchwork.freedesktop.org/series/66132/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
764d6d8263bc drm: Add high-precision time to vblank trace event
-:50: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#50: FILE: drivers/gpu/drm/drm_trace.h:31:
+	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
+			__entry->crtc, __entry->seq, __entry->time,

-:65: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#65: FILE: drivers/gpu/drm/drm_vblank.c:1735:
+	trace_drm_vblank_event(pipe, seq, now,
+			dev->driver->get_vblank_timestamp != NULL);

-:65: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "dev->driver->get_vblank_timestamp"
#65: FILE: drivers/gpu/drm/drm_vblank.c:1735:
+			dev->driver->get_vblank_timestamp != NULL);

total: 0 errors, 0 warnings, 3 checks, 36 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* ✓ Fi.CI.BAT: success for drm: Add high-precision time to vblank trace event
  2019-08-09 15:36 [PATCH] drm: Add high-precision time to vblank trace event Heinrich
  2019-08-14 17:15 ` Daniel Vetter
  2019-09-02 14:40 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2019-09-02 15:04 ` Patchwork
  2019-09-02 16:52 ` ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-09-02 15:04 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: intel-gfx

== Series Details ==

Series: drm: Add high-precision time to vblank trace event
URL   : https://patchwork.freedesktop.org/series/66132/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6820 -> Patchwork_14258
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/

Known issues
------------

  Here are the changes found in Patchwork_14258 that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@gem_basic@create-close:
    - fi-icl-u3:          [DMESG-WARN][1] ([fdo#107724]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@gem_basic@create-close.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/fi-icl-u3/igt@gem_basic@create-close.html

  * igt@i915_module_load@reload:
    - fi-icl-u3:          [DMESG-WARN][3] ([fdo#107724] / [fdo#111214]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@i915_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/fi-icl-u3/igt@i915_module_load@reload.html

  * igt@i915_selftest@live_execlists:
    - fi-skl-gvtdvm:      [DMESG-FAIL][5] ([fdo#111108]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][7] ([fdo#103167]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][9] ([fdo#111407]) -> [FAIL][10] ([fdo#111096])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
  [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407


Participating hosts (54 -> 45)
------------------------------

  Missing    (9): fi-ilk-m540 fi-bxt-dsi fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6820 -> Patchwork_14258

  CI-20190529: 20190529
  CI_DRM_6820: 2c16f62dc38ed97ab0056219f09d878c9e1c0355 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14258: 764d6d8263bc0efcd66fdab25af1f9767ba686e0 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

764d6d8263bc drm: Add high-precision time to vblank trace event

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* ✗ Fi.CI.IGT: failure for drm: Add high-precision time to vblank trace event
  2019-08-09 15:36 [PATCH] drm: Add high-precision time to vblank trace event Heinrich
                   ` (2 preceding siblings ...)
  2019-09-02 15:04 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-09-02 16:52 ` Patchwork
  3 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2019-09-02 16:52 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: intel-gfx

== Series Details ==

Series: drm: Add high-precision time to vblank trace event
URL   : https://patchwork.freedesktop.org/series/66132/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6820_full -> Patchwork_14258_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_14258_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14258_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_14258_full:

### IGT changes ###

#### Possible regressions ####

  * igt@perf@oa-formats:
    - shard-hsw:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-hsw6/igt@perf@oa-formats.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-hsw5/igt@perf@oa-formats.html

  
Known issues
------------

  Here are the changes found in Patchwork_14258_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#111325]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@gem_exec_schedule@reorder-wide-bsd.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb4/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-apl:          [PASS][5] -> [FAIL][6] ([fdo#102250])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl8/igt@i915_pm_rps@min-max-config-loaded.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-apl6/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [PASS][7] -> [DMESG-WARN][8] ([fdo#108566]) +4 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-skl:          [PASS][9] -> [INCOMPLETE][10] ([fdo#104108])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl8/igt@kms_fbcon_fbt@fbc-suspend.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-skl1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-glk:          [PASS][11] -> [FAIL][12] ([fdo#103060])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-glk4/igt@kms_flip@2x-dpms-vs-vblank-race.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-glk4/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt:
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([fdo#103167]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-iclb:         [PASS][15] -> [FAIL][16] ([fdo#103167] / [fdo#110378])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][17] -> [FAIL][18] ([fdo#108145] / [fdo#110403])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-skl7/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103166])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [PASS][21] -> [SKIP][22] ([fdo#109441]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb4/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109276]) +15 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@prime_vgem@fence-wait-bsd2.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb7/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][25] ([fdo#110854]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb7/igt@gem_exec_balancer@smoke.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb2/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@out-order-bsd2:
    - shard-iclb:         [SKIP][27] ([fdo#109276]) -> [PASS][28] +14 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb3/igt@gem_exec_schedule@out-order-bsd2.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb2/igt@gem_exec_schedule@out-order-bsd2.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [SKIP][29] ([fdo#111325]) -> [PASS][30] +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb3/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-apl:          [INCOMPLETE][31] ([fdo#103927]) -> [PASS][32] +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl7/igt@gem_tiled_swapping@non-threaded.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-apl4/igt@gem_tiled_swapping@non-threaded.html

  * igt@kms_cursor_legacy@pipe-a-torture-bo:
    - shard-iclb:         [INCOMPLETE][33] ([fdo#107713]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb1/igt@kms_cursor_legacy@pipe-a-torture-bo.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb7/igt@kms_cursor_legacy@pipe-a-torture-bo.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-glk:          [FAIL][35] ([fdo#103060]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-glk8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-glk5/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-hsw:          [INCOMPLETE][37] ([fdo#103540]) -> [PASS][38] +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-hsw7/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
    - shard-iclb:         [FAIL][39] ([fdo#103167]) -> [PASS][40] +7 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [FAIL][41] ([fdo#103166]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb4/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][43] ([fdo#109642] / [fdo#111068]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb3/igt@kms_psr2_su@page_flip.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [SKIP][45] ([fdo#109441]) -> [PASS][46] +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb7/igt@kms_psr@psr2_cursor_blt.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-apl:          [DMESG-WARN][47] ([fdo#108566]) -> [PASS][48] +2 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl8/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-apl2/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  * igt@perf@blocking:
    - shard-skl:          [FAIL][49] ([fdo#110728]) -> [PASS][50] +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl4/igt@perf@blocking.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14258/shard-skl6/igt@perf@blocking.html

  
  [fdo#102250]: https://bugs.freedesktop.org/show_bug.cgi?id=102250
  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110728]: https://bugs.freedesktop.org/show_bug.cgi?id=110728
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325


Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_6820 -> Patchwork_14258

  CI-20190529: 20190529
  CI_DRM_6820: 2c16f62dc38ed97ab0056219f09d878c9e1c0355 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14258: 764d6d8263bc0efcd66fdab25af1f9767ba686e0 @ 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_14258/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-02 14:24     ` [PATCH v2] " Heinrich Fink
@ 2019-09-03  7:46       ` Daniel Vetter
  2019-09-03  9:19         ` Heinrich Fink
  0 siblings, 1 reply; 13+ messages in thread
From: Daniel Vetter @ 2019-09-03  7:46 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: daniel.vetter, intel-gfx, dri-devel

On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> Store the timestamp of the current vblank in the new field 'time' of the
> vblank trace event. If the timestamp is calculated by a driver that
> supports high-precision vblank timing, set the field 'high-prec' to
> 'true'.
> 
> User space can now access actual hardware vblank times via the tracing
> infrastructure. Tracing applications (such as GPUVis, see [0] for
> related discussion), can use the newly added information to conduct a
> more accurate analysis of display timing.
> 
> v2 Fix author name (missing last name)
> 
> [0] https://github.com/mikesart/gpuvis/issues/30
> 
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>

Applied, thanks.
-Daniel

> ---
>  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
>  drivers/gpu/drm/drm_vblank.c |  3 ++-
>  2 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> index 471eb927474b..11c6dd577e8e 100644
> --- a/drivers/gpu/drm/drm_trace.h
> +++ b/drivers/gpu/drm/drm_trace.h
> @@ -13,17 +13,23 @@ struct drm_file;
>  #define TRACE_INCLUDE_FILE drm_trace
>  
>  TRACE_EVENT(drm_vblank_event,
> -	    TP_PROTO(int crtc, unsigned int seq),
> -	    TP_ARGS(crtc, seq),
> +	    TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> +	    TP_ARGS(crtc, seq, time, high_prec),
>  	    TP_STRUCT__entry(
>  		    __field(int, crtc)
>  		    __field(unsigned int, seq)
> +		    __field(ktime_t, time)
> +		    __field(bool, high_prec)
>  		    ),
>  	    TP_fast_assign(
>  		    __entry->crtc = crtc;
>  		    __entry->seq = seq;
> -		    ),
> -	    TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> +		    __entry->time = time;
> +		    __entry->high_prec = high_prec;
> +			),
> +	    TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> +			__entry->crtc, __entry->seq, __entry->time,
> +			__entry->high_prec ? "true" : "false")
>  );
>  
>  TRACE_EVENT(drm_vblank_event_queued,
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index fd1fbc77871f..c99feda25dea 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
>  		send_vblank_event(dev, e, seq, now);
>  	}
>  
> -	trace_drm_vblank_event(pipe, seq);
> +	trace_drm_vblank_event(pipe, seq, now,
> +			dev->driver->get_vblank_timestamp != NULL);
>  }
>  
>  /**
> -- 
> 2.23.0.rc1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-03  7:46       ` Daniel Vetter
@ 2019-09-03  9:19         ` Heinrich Fink
  2019-09-03  9:52           ` Daniel Vetter
  0 siblings, 1 reply; 13+ messages in thread
From: Heinrich Fink @ 2019-09-03  9:19 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx, Keith Packard, dri-devel

On Tue, 3 Sep 2019 at 09:46, Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> > Store the timestamp of the current vblank in the new field 'time' of the
> > vblank trace event. If the timestamp is calculated by a driver that
> > supports high-precision vblank timing, set the field 'high-prec' to
> > 'true'.
> >
> > User space can now access actual hardware vblank times via the tracing
> > infrastructure. Tracing applications (such as GPUVis, see [0] for
> > related discussion), can use the newly added information to conduct a
> > more accurate analysis of display timing.
> >
> > v2 Fix author name (missing last name)
> >
> > [0] https://github.com/mikesart/gpuvis/issues/30
> >
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
>
> Applied, thanks.

thanks! One question: After sending v2, I got an email from patchwork
pointing at some failed style checks (CHECK:PARENTHESIS_ALIGNMENT,
CHECK:COMPARISON_TO_NULL). Just so I know for the future, are these
checks mandatory to be addressed? I haven't had a chance to address
them yet. FWIW, linux-tree/scripts/checkpatch.pl did not complain.

- Heinrich

> -Daniel
>
> > ---
> >  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
> >  drivers/gpu/drm/drm_vblank.c |  3 ++-
> >  2 files changed, 12 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> > index 471eb927474b..11c6dd577e8e 100644
> > --- a/drivers/gpu/drm/drm_trace.h
> > +++ b/drivers/gpu/drm/drm_trace.h
> > @@ -13,17 +13,23 @@ struct drm_file;
> >  #define TRACE_INCLUDE_FILE drm_trace
> >
> >  TRACE_EVENT(drm_vblank_event,
> > -         TP_PROTO(int crtc, unsigned int seq),
> > -         TP_ARGS(crtc, seq),
> > +         TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> > +         TP_ARGS(crtc, seq, time, high_prec),
> >           TP_STRUCT__entry(
> >                   __field(int, crtc)
> >                   __field(unsigned int, seq)
> > +                 __field(ktime_t, time)
> > +                 __field(bool, high_prec)
> >                   ),
> >           TP_fast_assign(
> >                   __entry->crtc = crtc;
> >                   __entry->seq = seq;
> > -                 ),
> > -         TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> > +                 __entry->time = time;
> > +                 __entry->high_prec = high_prec;
> > +                     ),
> > +         TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> > +                     __entry->crtc, __entry->seq, __entry->time,
> > +                     __entry->high_prec ? "true" : "false")
> >  );
> >
> >  TRACE_EVENT(drm_vblank_event_queued,
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index fd1fbc77871f..c99feda25dea 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
> >               send_vblank_event(dev, e, seq, now);
> >       }
> >
> > -     trace_drm_vblank_event(pipe, seq);
> > +     trace_drm_vblank_event(pipe, seq, now,
> > +                     dev->driver->get_vblank_timestamp != NULL);
> >  }
> >
> >  /**
> > --
> > 2.23.0.rc1
> >
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-03  9:19         ` Heinrich Fink
@ 2019-09-03  9:52           ` Daniel Vetter
  2019-09-21  8:33             ` Heinrich Fink
  0 siblings, 1 reply; 13+ messages in thread
From: Daniel Vetter @ 2019-09-03  9:52 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: intel-gfx, dri-devel

On Tue, Sep 03, 2019 at 11:19:19AM +0200, Heinrich Fink wrote:
> On Tue, 3 Sep 2019 at 09:46, Daniel Vetter <daniel@ffwll.ch> wrote:
> >
> > On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> > > Store the timestamp of the current vblank in the new field 'time' of the
> > > vblank trace event. If the timestamp is calculated by a driver that
> > > supports high-precision vblank timing, set the field 'high-prec' to
> > > 'true'.
> > >
> > > User space can now access actual hardware vblank times via the tracing
> > > infrastructure. Tracing applications (such as GPUVis, see [0] for
> > > related discussion), can use the newly added information to conduct a
> > > more accurate analysis of display timing.
> > >
> > > v2 Fix author name (missing last name)
> > >
> > > [0] https://github.com/mikesart/gpuvis/issues/30
> > >
> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
> >
> > Applied, thanks.
> 
> thanks! One question: After sending v2, I got an email from patchwork
> pointing at some failed style checks (CHECK:PARENTHESIS_ALIGNMENT,
> CHECK:COMPARISON_TO_NULL). Just so I know for the future, are these
> checks mandatory to be addressed? I haven't had a chance to address
> them yet. FWIW, linux-tree/scripts/checkpatch.pl did not complain.

It's the same script, but I think CI uses some different options/flags. I
generally ignore these, but also generally good to stick to the style.

$ dim checkpatch

in our maintainer-tools should give you the drm flavoured checkpatch.
-Daniel

> 
> - Heinrich
> 
> > -Daniel
> >
> > > ---
> > >  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
> > >  drivers/gpu/drm/drm_vblank.c |  3 ++-
> > >  2 files changed, 12 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> > > index 471eb927474b..11c6dd577e8e 100644
> > > --- a/drivers/gpu/drm/drm_trace.h
> > > +++ b/drivers/gpu/drm/drm_trace.h
> > > @@ -13,17 +13,23 @@ struct drm_file;
> > >  #define TRACE_INCLUDE_FILE drm_trace
> > >
> > >  TRACE_EVENT(drm_vblank_event,
> > > -         TP_PROTO(int crtc, unsigned int seq),
> > > -         TP_ARGS(crtc, seq),
> > > +         TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> > > +         TP_ARGS(crtc, seq, time, high_prec),
> > >           TP_STRUCT__entry(
> > >                   __field(int, crtc)
> > >                   __field(unsigned int, seq)
> > > +                 __field(ktime_t, time)
> > > +                 __field(bool, high_prec)
> > >                   ),
> > >           TP_fast_assign(
> > >                   __entry->crtc = crtc;
> > >                   __entry->seq = seq;
> > > -                 ),
> > > -         TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> > > +                 __entry->time = time;
> > > +                 __entry->high_prec = high_prec;
> > > +                     ),
> > > +         TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> > > +                     __entry->crtc, __entry->seq, __entry->time,
> > > +                     __entry->high_prec ? "true" : "false")
> > >  );
> > >
> > >  TRACE_EVENT(drm_vblank_event_queued,
> > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > index fd1fbc77871f..c99feda25dea 100644
> > > --- a/drivers/gpu/drm/drm_vblank.c
> > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
> > >               send_vblank_event(dev, e, seq, now);
> > >       }
> > >
> > > -     trace_drm_vblank_event(pipe, seq);
> > > +     trace_drm_vblank_event(pipe, seq, now,
> > > +                     dev->driver->get_vblank_timestamp != NULL);
> > >  }
> > >
> > >  /**
> > > --
> > > 2.23.0.rc1
> > >
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-03  9:52           ` Daniel Vetter
@ 2019-09-21  8:33             ` Heinrich Fink
  2019-09-23 12:05               ` Daniel Vetter
  0 siblings, 1 reply; 13+ messages in thread
From: Heinrich Fink @ 2019-09-21  8:33 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx, dri-devel

On Tue, 3 Sep 2019 at 11:53, Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Tue, Sep 03, 2019 at 11:19:19AM +0200, Heinrich Fink wrote:
> > On Tue, 3 Sep 2019 at 09:46, Daniel Vetter <daniel@ffwll.ch> wrote:
> > >
> > > On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> > > > Store the timestamp of the current vblank in the new field 'time' of the
> > > > vblank trace event. If the timestamp is calculated by a driver that
> > > > supports high-precision vblank timing, set the field 'high-prec' to
> > > > 'true'.
> > > >
> > > > User space can now access actual hardware vblank times via the tracing
> > > > infrastructure. Tracing applications (such as GPUVis, see [0] for
> > > > related discussion), can use the newly added information to conduct a
> > > > more accurate analysis of display timing.
> > > >
> > > > v2 Fix author name (missing last name)
> > > >
> > > > [0] https://github.com/mikesart/gpuvis/issues/30
> > > >
> > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > > Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
> > >
> > > Applied, thanks.
> >
> > thanks! One question: After sending v2, I got an email from patchwork
> > pointing at some failed style checks (CHECK:PARENTHESIS_ALIGNMENT,
> > CHECK:COMPARISON_TO_NULL). Just so I know for the future, are these
> > checks mandatory to be addressed? I haven't had a chance to address
> > them yet. FWIW, linux-tree/scripts/checkpatch.pl did not complain.
>
> It's the same script, but I think CI uses some different options/flags. I
> generally ignore these, but also generally good to stick to the style.
>
> $ dim checkpatch
>
> in our maintainer-tools should give you the drm flavoured checkpatch.
> -Daniel

Apologies if that's a basic question, but at which point is this patch
landing upstream? I am monitoring the 5.4 merge window and couldn't
figure out what the stages are for this patch to get there. Is there
anything that is still left to do from my side?

Thanks, Heinrich

>
> >
> > - Heinrich
> >
> > > -Daniel
> > >
> > > > ---
> > > >  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
> > > >  drivers/gpu/drm/drm_vblank.c |  3 ++-
> > > >  2 files changed, 12 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> > > > index 471eb927474b..11c6dd577e8e 100644
> > > > --- a/drivers/gpu/drm/drm_trace.h
> > > > +++ b/drivers/gpu/drm/drm_trace.h
> > > > @@ -13,17 +13,23 @@ struct drm_file;
> > > >  #define TRACE_INCLUDE_FILE drm_trace
> > > >
> > > >  TRACE_EVENT(drm_vblank_event,
> > > > -         TP_PROTO(int crtc, unsigned int seq),
> > > > -         TP_ARGS(crtc, seq),
> > > > +         TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> > > > +         TP_ARGS(crtc, seq, time, high_prec),
> > > >           TP_STRUCT__entry(
> > > >                   __field(int, crtc)
> > > >                   __field(unsigned int, seq)
> > > > +                 __field(ktime_t, time)
> > > > +                 __field(bool, high_prec)
> > > >                   ),
> > > >           TP_fast_assign(
> > > >                   __entry->crtc = crtc;
> > > >                   __entry->seq = seq;
> > > > -                 ),
> > > > -         TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> > > > +                 __entry->time = time;
> > > > +                 __entry->high_prec = high_prec;
> > > > +                     ),
> > > > +         TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> > > > +                     __entry->crtc, __entry->seq, __entry->time,
> > > > +                     __entry->high_prec ? "true" : "false")
> > > >  );
> > > >
> > > >  TRACE_EVENT(drm_vblank_event_queued,
> > > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > > index fd1fbc77871f..c99feda25dea 100644
> > > > --- a/drivers/gpu/drm/drm_vblank.c
> > > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > > @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
> > > >               send_vblank_event(dev, e, seq, now);
> > > >       }
> > > >
> > > > -     trace_drm_vblank_event(pipe, seq);
> > > > +     trace_drm_vblank_event(pipe, seq, now,
> > > > +                     dev->driver->get_vblank_timestamp != NULL);
> > > >  }
> > > >
> > > >  /**
> > > > --
> > > > 2.23.0.rc1
> > > >
> > >
> > > --
> > > Daniel Vetter
> > > Software Engineer, Intel Corporation
> > > http://blog.ffwll.ch
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-21  8:33             ` Heinrich Fink
@ 2019-09-23 12:05               ` Daniel Vetter
  2019-09-23 14:09                 ` Heinrich Fink
  0 siblings, 1 reply; 13+ messages in thread
From: Daniel Vetter @ 2019-09-23 12:05 UTC (permalink / raw)
  To: Heinrich Fink; +Cc: intel-gfx, Keith Packard, dri-devel

On Sat, Sep 21, 2019 at 10:33 AM Heinrich Fink <heinrich.fink@daqri.com> wrote:
>
> On Tue, 3 Sep 2019 at 11:53, Daniel Vetter <daniel@ffwll.ch> wrote:
> >
> > On Tue, Sep 03, 2019 at 11:19:19AM +0200, Heinrich Fink wrote:
> > > On Tue, 3 Sep 2019 at 09:46, Daniel Vetter <daniel@ffwll.ch> wrote:
> > > >
> > > > On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> > > > > Store the timestamp of the current vblank in the new field 'time' of the
> > > > > vblank trace event. If the timestamp is calculated by a driver that
> > > > > supports high-precision vblank timing, set the field 'high-prec' to
> > > > > 'true'.
> > > > >
> > > > > User space can now access actual hardware vblank times via the tracing
> > > > > infrastructure. Tracing applications (such as GPUVis, see [0] for
> > > > > related discussion), can use the newly added information to conduct a
> > > > > more accurate analysis of display timing.
> > > > >
> > > > > v2 Fix author name (missing last name)
> > > > >
> > > > > [0] https://github.com/mikesart/gpuvis/issues/30
> > > > >
> > > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > > > Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
> > > >
> > > > Applied, thanks.
> > >
> > > thanks! One question: After sending v2, I got an email from patchwork
> > > pointing at some failed style checks (CHECK:PARENTHESIS_ALIGNMENT,
> > > CHECK:COMPARISON_TO_NULL). Just so I know for the future, are these
> > > checks mandatory to be addressed? I haven't had a chance to address
> > > them yet. FWIW, linux-tree/scripts/checkpatch.pl did not complain.
> >
> > It's the same script, but I think CI uses some different options/flags. I
> > generally ignore these, but also generally good to stick to the style.
> >
> > $ dim checkpatch
> >
> > in our maintainer-tools should give you the drm flavoured checkpatch.
> > -Daniel
>
> Apologies if that's a basic question, but at which point is this patch
> landing upstream? I am monitoring the 5.4 merge window and couldn't
> figure out what the stages are for this patch to get there. Is there
> anything that is still left to do from my side?

It missed the 5.4 feature cut-off just barely:

commit 6914f8eb64f9de5308e2968968145cf6eb304025
Author: Heinrich Fink <heinrich.fink@daqri.com>
Date:   Mon Sep 2 16:24:12 2019 +0200

    drm: Add high-precision time to vblank trace event

is your patch. Should land in 5.5 (and will show up in linux-next
after -rc1 is tagged).
-Daniel

>
> Thanks, Heinrich
>
> >
> > >
> > > - Heinrich
> > >
> > > > -Daniel
> > > >
> > > > > ---
> > > > >  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
> > > > >  drivers/gpu/drm/drm_vblank.c |  3 ++-
> > > > >  2 files changed, 12 insertions(+), 5 deletions(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> > > > > index 471eb927474b..11c6dd577e8e 100644
> > > > > --- a/drivers/gpu/drm/drm_trace.h
> > > > > +++ b/drivers/gpu/drm/drm_trace.h
> > > > > @@ -13,17 +13,23 @@ struct drm_file;
> > > > >  #define TRACE_INCLUDE_FILE drm_trace
> > > > >
> > > > >  TRACE_EVENT(drm_vblank_event,
> > > > > -         TP_PROTO(int crtc, unsigned int seq),
> > > > > -         TP_ARGS(crtc, seq),
> > > > > +         TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> > > > > +         TP_ARGS(crtc, seq, time, high_prec),
> > > > >           TP_STRUCT__entry(
> > > > >                   __field(int, crtc)
> > > > >                   __field(unsigned int, seq)
> > > > > +                 __field(ktime_t, time)
> > > > > +                 __field(bool, high_prec)
> > > > >                   ),
> > > > >           TP_fast_assign(
> > > > >                   __entry->crtc = crtc;
> > > > >                   __entry->seq = seq;
> > > > > -                 ),
> > > > > -         TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> > > > > +                 __entry->time = time;
> > > > > +                 __entry->high_prec = high_prec;
> > > > > +                     ),
> > > > > +         TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> > > > > +                     __entry->crtc, __entry->seq, __entry->time,
> > > > > +                     __entry->high_prec ? "true" : "false")
> > > > >  );
> > > > >
> > > > >  TRACE_EVENT(drm_vblank_event_queued,
> > > > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > > > index fd1fbc77871f..c99feda25dea 100644
> > > > > --- a/drivers/gpu/drm/drm_vblank.c
> > > > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > > > @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
> > > > >               send_vblank_event(dev, e, seq, now);
> > > > >       }
> > > > >
> > > > > -     trace_drm_vblank_event(pipe, seq);
> > > > > +     trace_drm_vblank_event(pipe, seq, now,
> > > > > +                     dev->driver->get_vblank_timestamp != NULL);
> > > > >  }
> > > > >
> > > > >  /**
> > > > > --
> > > > > 2.23.0.rc1
> > > > >
> > > >
> > > > --
> > > > Daniel Vetter
> > > > Software Engineer, Intel Corporation
> > > > http://blog.ffwll.ch
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm: Add high-precision time to vblank trace event
  2019-09-23 12:05               ` Daniel Vetter
@ 2019-09-23 14:09                 ` Heinrich Fink
  0 siblings, 0 replies; 13+ messages in thread
From: Heinrich Fink @ 2019-09-23 14:09 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx, dri-devel

On Mon, 23 Sep 2019 at 14:06, Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Sat, Sep 21, 2019 at 10:33 AM Heinrich Fink <heinrich.fink@daqri.com> wrote:
> >
> > On Tue, 3 Sep 2019 at 11:53, Daniel Vetter <daniel@ffwll.ch> wrote:
> > >
> > > On Tue, Sep 03, 2019 at 11:19:19AM +0200, Heinrich Fink wrote:
> > > > On Tue, 3 Sep 2019 at 09:46, Daniel Vetter <daniel@ffwll.ch> wrote:
> > > > >
> > > > > On Mon, Sep 02, 2019 at 04:24:12PM +0200, Heinrich Fink wrote:
> > > > > > Store the timestamp of the current vblank in the new field 'time' of the
> > > > > > vblank trace event. If the timestamp is calculated by a driver that
> > > > > > supports high-precision vblank timing, set the field 'high-prec' to
> > > > > > 'true'.
> > > > > >
> > > > > > User space can now access actual hardware vblank times via the tracing
> > > > > > infrastructure. Tracing applications (such as GPUVis, see [0] for
> > > > > > related discussion), can use the newly added information to conduct a
> > > > > > more accurate analysis of display timing.
> > > > > >
> > > > > > v2 Fix author name (missing last name)
> > > > > >
> > > > > > [0] https://github.com/mikesart/gpuvis/issues/30
> > > > > >
> > > > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > > > > Signed-off-by: Heinrich Fink <heinrich.fink@daqri.com>
> > > > >
> > > > > Applied, thanks.
> > > >
> > > > thanks! One question: After sending v2, I got an email from patchwork
> > > > pointing at some failed style checks (CHECK:PARENTHESIS_ALIGNMENT,
> > > > CHECK:COMPARISON_TO_NULL). Just so I know for the future, are these
> > > > checks mandatory to be addressed? I haven't had a chance to address
> > > > them yet. FWIW, linux-tree/scripts/checkpatch.pl did not complain.
> > >
> > > It's the same script, but I think CI uses some different options/flags. I
> > > generally ignore these, but also generally good to stick to the style.
> > >
> > > $ dim checkpatch
> > >
> > > in our maintainer-tools should give you the drm flavoured checkpatch.
> > > -Daniel
> >
> > Apologies if that's a basic question, but at which point is this patch
> > landing upstream? I am monitoring the 5.4 merge window and couldn't
> > figure out what the stages are for this patch to get there. Is there
> > anything that is still left to do from my side?
>
> It missed the 5.4 feature cut-off just barely:
>
> commit 6914f8eb64f9de5308e2968968145cf6eb304025
> Author: Heinrich Fink <heinrich.fink@daqri.com>
> Date:   Mon Sep 2 16:24:12 2019 +0200
>
>     drm: Add high-precision time to vblank trace event
>
> is your patch. Should land in 5.5 (and will show up in linux-next
> after -rc1 is tagged).

Thanks for the explanation, I missed that this landed in drm-misc.

cheers, Heinrich

> -Daniel
>
> >
> > Thanks, Heinrich
> >
> > >
> > > >
> > > > - Heinrich
> > > >
> > > > > -Daniel
> > > > >
> > > > > > ---
> > > > > >  drivers/gpu/drm/drm_trace.h  | 14 ++++++++++----
> > > > > >  drivers/gpu/drm/drm_vblank.c |  3 ++-
> > > > > >  2 files changed, 12 insertions(+), 5 deletions(-)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/drm_trace.h b/drivers/gpu/drm/drm_trace.h
> > > > > > index 471eb927474b..11c6dd577e8e 100644
> > > > > > --- a/drivers/gpu/drm/drm_trace.h
> > > > > > +++ b/drivers/gpu/drm/drm_trace.h
> > > > > > @@ -13,17 +13,23 @@ struct drm_file;
> > > > > >  #define TRACE_INCLUDE_FILE drm_trace
> > > > > >
> > > > > >  TRACE_EVENT(drm_vblank_event,
> > > > > > -         TP_PROTO(int crtc, unsigned int seq),
> > > > > > -         TP_ARGS(crtc, seq),
> > > > > > +         TP_PROTO(int crtc, unsigned int seq, ktime_t time, bool high_prec),
> > > > > > +         TP_ARGS(crtc, seq, time, high_prec),
> > > > > >           TP_STRUCT__entry(
> > > > > >                   __field(int, crtc)
> > > > > >                   __field(unsigned int, seq)
> > > > > > +                 __field(ktime_t, time)
> > > > > > +                 __field(bool, high_prec)
> > > > > >                   ),
> > > > > >           TP_fast_assign(
> > > > > >                   __entry->crtc = crtc;
> > > > > >                   __entry->seq = seq;
> > > > > > -                 ),
> > > > > > -         TP_printk("crtc=%d, seq=%u", __entry->crtc, __entry->seq)
> > > > > > +                 __entry->time = time;
> > > > > > +                 __entry->high_prec = high_prec;
> > > > > > +                     ),
> > > > > > +         TP_printk("crtc=%d, seq=%u, time=%lld, high-prec=%s",
> > > > > > +                     __entry->crtc, __entry->seq, __entry->time,
> > > > > > +                     __entry->high_prec ? "true" : "false")
> > > > > >  );
> > > > > >
> > > > > >  TRACE_EVENT(drm_vblank_event_queued,
> > > > > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > > > > index fd1fbc77871f..c99feda25dea 100644
> > > > > > --- a/drivers/gpu/drm/drm_vblank.c
> > > > > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > > > > @@ -1731,7 +1731,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
> > > > > >               send_vblank_event(dev, e, seq, now);
> > > > > >       }
> > > > > >
> > > > > > -     trace_drm_vblank_event(pipe, seq);
> > > > > > +     trace_drm_vblank_event(pipe, seq, now,
> > > > > > +                     dev->driver->get_vblank_timestamp != NULL);
> > > > > >  }
> > > > > >
> > > > > >  /**
> > > > > > --
> > > > > > 2.23.0.rc1
> > > > > >
> > > > >
> > > > > --
> > > > > Daniel Vetter
> > > > > Software Engineer, Intel Corporation
> > > > > http://blog.ffwll.ch
> > >
> > > --
> > > Daniel Vetter
> > > Software Engineer, Intel Corporation
> > > http://blog.ffwll.ch
>
>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-09-23 14:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-09 15:36 [PATCH] drm: Add high-precision time to vblank trace event Heinrich
2019-08-14 17:15 ` Daniel Vetter
2019-09-02 14:24   ` Heinrich Fink
2019-09-02 14:24     ` [PATCH v2] " Heinrich Fink
2019-09-03  7:46       ` Daniel Vetter
2019-09-03  9:19         ` Heinrich Fink
2019-09-03  9:52           ` Daniel Vetter
2019-09-21  8:33             ` Heinrich Fink
2019-09-23 12:05               ` Daniel Vetter
2019-09-23 14:09                 ` Heinrich Fink
2019-09-02 14:40 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2019-09-02 15:04 ` ✓ Fi.CI.BAT: success " Patchwork
2019-09-02 16:52 ` ✗ 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.