<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 12/22/2017 10:45 AM, Sagar Arun
      Kamble wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:d012ef27-c22b-c6d2-3d64-4848cb91afc6@intel.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <p><br>
      </p>
      <br>
      <div class="moz-cite-prefix">On 12/7/2017 1:32 AM, Lionel
        Landwerlin wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:314be081-8216-9410-aefd-605d80beaf44@intel.com">I've
        put together some trival IGT tests :
        <a class="moz-txt-link-freetext"
href="https://github.com/djdeath/intel-gpu-tools/commits/wip/djdeath/cpu-timestamps"
          moz-do-not-send="true">https://github.com/djdeath/intel-gpu-tools/commits/wip/djdeath/cpu-timestamps</a><br>
        With a few changes which I pointed in the review :
        <a class="moz-txt-link-freetext"
href="https://github.com/djdeath/linux/commit/d0e4cf4d3f464491b4ffe97d112284d1ce73656d"
          moz-do-not-send="true">https://github.com/djdeath/linux/commit/d0e4cf4d3f464491b4ffe97d112284d1ce73656d</a><br>
        <br>
        Put together it seems to work relatively well. <br>
        There is still a small drift happening between the 2 timestamps.
        I've noticed over a 160ms of OA reports, there is a accumulated
        difference of ~35us between the GPU timestamp and cpu
        timestamps. <br>
        I may be doing something wrong with the scaling in the tests, or
        maybe there is an issue in the kernel, or both. <br>
      </blockquote>
      Went through the testcase. scaled_gpu_delta calculation is same as
      what timecounter does in kernel for calculating system_time
      corresponding<br>
      to gpu timestamp hence we don't see much of delta between these
      two times/time deltas.<br>
      Ideally we should be testing the system time delta by sampling
      system time and gpu timestamp atomically (which isn't feasible
      unless we do some precise adjustments)<br>
      I have attempted to check these two times/delta by sampling them
      in debugfs and reading over variable periods manually and checking
      the delta.<br>
      <a class="moz-txt-link-freetext"
href="https://github.com/sakamble/i915-timestamp-support/commit/03be3056752d7b05a02cd01f5c20b3fcfcf18395"
        moz-do-not-send="true">https://github.com/sakamble/i915-timestamp-support/commit/03be3056752d7b05a02cd01f5c20b3fcfcf18395</a><br>
      <br>
      It is showing that delta is less than 10us in most cases for 30min
      and occasionally around 20-30us. Again this delta might be because
      of initial time setting as well.<br>
      timecounter initializing system time and gpu clocks as pair should
      be highly accurate for which I have currently taken 350us start
      offset.<br>
      <br>
      I think gpu timestamp clock is highly stable as seen in my testing
      on SKL. I think this clock is used for calculations in GuC too so
      will<br>
      be good to get confirmation about the stability of this clock from
      them and HW team.<br>
      <br>
      <address>   systemd-udevd-169   [001] ....     3.035812:
        i915_driver_load: sys start time: 1512308011156099790</address>
      <address>   systemd-udevd-169   [001] d...     3.036012:
        i915_cyclecounter_read: 52025098974</address>
      <address>             cat-1654  [001] ....    52.407957:
        i915_cyclecounter_read: 52617562292</address>
      <address>             cat-1654  [001] ....    52.407958:
        i915_timestamp_info: sys time: 1512308060527894638</address>
      <address>             cat-1654  [001] ....    52.407958:
        i915_timestamp_info: ts: 52617562292 device time:
        1512308060528043050</address>
      <address>             cat-1684  [001] ....   177.239733:
        i915_cyclecounter_read: 54115543581</address>
      <address>             cat-1684  [001] ....   177.239736:
        i915_timestamp_info: sys time: 1512308185359666602</address>
      <address>             cat-1684  [001] ....   177.239737:
        i915_timestamp_info: ts: 54115543581 device time:
        1512308185359817372</address>
      <address>             cat-1693  [001] ....   329.820374:
        i915_cyclecounter_read: 55946511277</address>
      <address>             cat-1693  [001] ....   329.820377:
        i915_timestamp_info: sys time: 1512308337940301732</address>
      <address>             cat-1693  [001] ....   329.820378:
        i915_timestamp_info: ts: 55946511277 device time:
        1512308337940458996</address>
      <address><br>
        <delta between system time delta and gpu time delta for above
        two samples (177, 329) = 6494ns></address>
      <address><br>
                     cat-1702  [001] ....   506.980313:
        i915_cyclecounter_read: 58072430542</address>
      <address>             cat-1702  [001] ....   506.980315:
        i915_timestamp_info: sys time: 1512308515100233102</address>
      <address>             cat-1702  [001] ....   506.980317:
        i915_timestamp_info: ts: 58072430542 device time:
        1512308515100398084</address>
      <address>             </address>
      <address><delta between system time delta and gpu time delta
        for above two samples (329, 506) = 6494ns></address>
    </blockquote>
    Fixing typo here:<br>
    <delta between system time delta and gpu time delta for above two
    samples (329, 506) = 7718ns>
    <blockquote type="cite"
      cite="mid:d012ef27-c22b-c6d2-3d64-4848cb91afc6@intel.com">
      <blockquote type="cite"
        cite="mid:314be081-8216-9410-aefd-605d80beaf44@intel.com"> <br>
        I'll build the GPUTop parts and see if the results make sense. <br>
        <br>
        Thanks!, <br>
        <br>
        - <br>
        Lionel <br>
        <br>
        On 15/11/17 12:13, Sagar Arun Kamble wrote: <br>
        <blockquote type="cite">We can compute system time corresponding
          to GPU timestamp by taking a <br>
          reference point (CPU monotonic time, GPU timestamp) and then
          adding <br>
          delta time computed using timecounter/cyclecounter support in
          kernel. <br>
          We have to configure cyclecounter with the GPU timestamp
          frequency. <br>
          Earlier approach that was based on cross-timestamp is not
          needed. It <br>
          was being used to approximate the frequency based on invalid
          assumptions <br>
          (possibly drift was being seen in the time due to precision
          issue). <br>
          The precision of time from GPU clocks is already in ns and
          timecounter <br>
          takes care of it as verified over variable durations. <br>
          <br>
          This series adds base timecounter/cyclecounter changes and
          changes to <br>
          get GPU and CPU timestamps in OA samples. <br>
          <br>
          Sagar Arun Kamble (1): <br>
             drm/i915/perf: Add support to correlate GPU timestamp with
          system time <br>
          <br>
          Sourab Gupta (3): <br>
             drm/i915/perf: Add support for collecting 64 bit timestamps
          with OA <br>
               reports <br>
             drm/i915/perf: Extract raw GPU timestamps from OA reports <br>
             drm/i915/perf: Send system clock monotonic time in perf
          samples <br>
          <br>
            drivers/gpu/drm/i915/i915_drv.h  |  11 ++++ <br>
            drivers/gpu/drm/i915/i915_perf.c | 124
          ++++++++++++++++++++++++++++++++++++++- <br>
            drivers/gpu/drm/i915/i915_reg.h  |   6 ++ <br>
            include/uapi/drm/i915_drm.h      |  14 +++++ <br>
            4 files changed, 154 insertions(+), 1 deletion(-) <br>
          <br>
        </blockquote>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Intel-gfx mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Intel-gfx@lists.freedesktop.org">Intel-gfx@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/intel-gfx">https://lists.freedesktop.org/mailman/listinfo/intel-gfx</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>