<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font size="-1">Hi,<br>
        <br>
        +1. I am also facing the same issue with many similar tests.<br>
        <br>
        # uname -rm<br>
        4.18.0-211.el8.ppc64le ppc64le<br>
        <br>
        Regards,<br>
        Harish<br>
      </font><br>
    </p>
    <div class="moz-cite-prefix">On 7/3/20 3:25 PM, Li Wang wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAEemH2cu_o2eCHQB1_Bo0aQiR2WK6knbBtD83-5_77gZZbA-Ow@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div class="gmail_default" style="font-size:small">Hi Viresh,</div>
        </div>
        <div class="gmail_default" style="font-size:small">Seems this
          patch involved a new regression:(.</div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">Viresh Kumar <<a
              href="mailto:viresh.kumar@linaro.org"
              moz-do-not-send="true">viresh.kumar@linaro.org</a>>
            wrote:<br>
          </div>
          <div dir="ltr" class="gmail_attr"><br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex"><span
              class="gmail_default" style="font-size:small">...</span><br>
            <br>
            +typedef int (*mysyscall)(clockid_t clk_id, void *ts);<br>
            +<br>
            +int syscall_supported_by_kernel(mysyscall func)<br>
            +{<br>
            +       int ret;<br>
            +<br>
            +       ret = func(0, NULL); </blockquote>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            +       if (ret == -1 && errno == ENOSYS)<br>
            +               return 0;<br>
            +<br>
            +       return 1;<br>
            +}<br>
            <span class="gmail_default" style="font-size:small">...</span> }<br>
            <br>
             int tst_clock_gettime(clockid_t clk_id, struct timespec
            *ts)<br>
             {<br>
            -       return tst_syscall(__NR_clock_gettime, clk_id, ts);<br>
            +       struct tst_ts tts = { 0, };<br>
            +       static mysyscall func;<br>
            +       int ret;<br>
            +<br>
            +#if (__NR_clock_gettime64 != __LTP__NR_INVALID_SYSCALL)<br>
            +       if (!func &&
            syscall_supported_by_kernel(sys_clock_gettime64)) {<br>
          </blockquote>
          <div><br>
          </div>
          <div>
            <div class="gmail_default" style="font-size:small">
              <div><span class="gmail_default">To
                  invoke sys_clock_gettime64 here makes no chance to
                  choose </span>the correct syscall version since
                tst_syscall() will exit directly when getting ENOSYS.</div>
              <div><span class="gmail_default"><br>
                  We got many tests TCONF like the mmap18 did as below:</span></div>
              <div><span class="gmail_default">-------------------<br>
                  # uname -rm<br>
                  5.8.0-rc2+ aarch64<br>
                  # ./mmap18<br>
                  tst_test.c:1247: INFO: Timeout per run is 0h 05m 00s<br>
                  ../include/tst_timer.h:214: CONF: syscall(403)
                  __NR_clock_gettime64 not supported</span></div>
              <div><span class="gmail_default"><br>
                </span></div>
              <div><span class="gmail_default">the function call trace:</span></div>
              <div><span class="gmail_default">-----------------------------</span></div>
              <div><span class="gmail_default">
                  <div>
                    <div class="gmail_default">testrun()</div>
                    <div class="gmail_default">get_time_ms</div>
                    <div class="gmail_default">...</div>
                  </div>
                  <div>
                    <div class="gmail_default">tst_clock_gettime</div>
                    <div class="gmail_default">syscall_supported_by_kernel</div>
                    <div class="gmail_default">sys_clock_gettime64</div>
                    <div class="gmail_default">tst_syscall(__NR_clock_gettime64,
                      ...)</div>
                  </div>
                  <div><span class="gmail_default"><br>
                    </span></div>
                  <br>
                  ---- syscalls/regen.sh -----<br>
                  #define tst_syscall(NR, ...) ({ \\<br>
                          int tst_ret; \\<br>
                          if (NR == __LTP__NR_INVALID_SYSCALL) { \\<br>
                                  errno = ENOSYS; \\<br>
                                  tst_ret = -1; \\<br>
                          } else { \\<br>
                                  tst_ret = syscall(NR, ##__VA_ARGS__);
                  \\<br>
                          } \\<br>
                          if (tst_ret == -1 && errno == ENOSYS)
                  { \\<br>
                                  tst_brk(TCONF, "syscall(%d) " #NR "
                  not supported", NR); \\<br>
                          } \\<br>
                          tst_ret; \\<br>
                  })</span></div>
            </div>
          </div>
          <div><br>
          </div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            +               func = sys_clock_gettime64;<br>
            +               tts.type = TST_KERN_TIMESPEC;<br>
            +       }<br>
            +#endif<br>
            +<br>
            +       if (!func &&
            syscall_supported_by_kernel(sys_clock_gettime)) {<br>
            +               func = sys_clock_gettime;<br>
            +               tts.type = TST_KERN_OLD_TIMESPEC;<br>
            +       }<br>
            +<br>
            +       if (!func) {<br>
            +               tst_res(TCONF, "clock_gettime() not
            available");<br>
            +               errno = ENOSYS;<br>
            +               return -1;<br>
            +       }<br>
            +<br>
            +       ret = func(clk_id, tst_ts_get(&tts));<br>
            +       ts->tv_sec = tst_ts_get_sec(tts);<br>
            +       ts->tv_nsec = tst_ts_get_nsec(tts);<br>
            +       return ret;<br>
             }<br>
            <span class="gmail_default" style="font-size:small"></span></blockquote>
          <div><br>
          </div>
          <div> </div>
        </div>
        <div dir="ltr" class="gmail_signature">
          <div dir="ltr">
            <div>Regards,<br>
            </div>
            <div>Li Wang<br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">
</pre>
    </blockquote>
  </body>
</html>