<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Test enumeration becomes funky on some tests due to fd FILE* stream change"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=108891">108891</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Test enumeration becomes funky on some tests due to fd FILE* stream change
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>DRI
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>XOrg git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>IGT
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>dri-devel@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>casey.g.bowman@intel.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Testing on ChromeOS KBL device with a 4.4 kernel

IGT SHA used was:
dbe1fc1e13c4e4eebaa9e1bbc5d188b5109c09d3

Running the igt@gem_busy@basic-busy-default test resulted in the following
failure:

(gem_busy:13397) igt-gt-CRITICAL: Test assertion failure function
igt_allow_hang, file ../../intel-gpu-tools-9999/lib/igt_gt.c:174:
(gem_busy:13397) igt-gt-CRITICAL: Failed assertion: igt_sysfs_set_parameter
(fd, "reset", "%d", INT_MAX )
(gem_busy:13397) igt-gt-CRITICAL: Last errno: 22, Invalid argument
Test gem_busy failed.
**** DEBUG ****
(gem_busy:13397) DEBUG: Test requirement passed: gem_has_ring(fd, e->exec_id |
e->flags)
(gem_busy:13397) igt-debugfs-DEBUG: Opening debugfs directory
'/sys/kernel/debug/dri/0'
(gem_busy:13397) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) &&
has_known_intel_chipset(fd)
(gem_busy:13397) igt-debugfs-DEBUG: Opening debugfs directory
'/sys/kernel/debug/dri/0'
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: dir >= 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: err == 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed:
gem_has_ring(fd, ring)
(gem_busy:13397) igt-dummyload-DEBUG: Test requirement passed: nengine
(gem_busy:13397) igt-core-INFO: Subtest basic-busy-default: SUCCESS (0.013s)
(gem_busy:13397) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) &&
has_known_intel_chipset(fd)
(gem_busy:13397) igt-debugfs-DEBUG: Opening debugfs directory
'/sys/kernel/debug/dri/0'
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: dir >= 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: err == 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed:
gem_has_ring(fd, ring)
(gem_busy:13397) igt-dummyload-DEBUG: Test requirement passed: nengine
(gem_busy:13397) DEBUG: Test requirement passed: has_extended_busy_ioctl(fd)
(gem_busy:13397) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) &&
has_known_intel_chipset(fd)
(gem_busy:13397) igt-debugfs-DEBUG: Opening debugfs directory
'/sys/kernel/debug/dri/0'
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: dir >= 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: err == 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed:
gem_has_ring(fd, ring)
(gem_busy:13397) igt-dummyload-DEBUG: Test requirement passed: nengine
(gem_busy:13397) DEBUG: Test requirement passed: has_extended_busy_ioctl(fd)
(gem_busy:13397) drmtest-DEBUG: Test requirement passed: is_i915_device(fd) &&
has_known_intel_chipset(fd)
(gem_busy:13397) igt-debugfs-DEBUG: Opening debugfs directory
'/sys/kernel/debug/dri/0'
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: dir >= 0
(gem_busy:13397) ioctl-wrappers-DEBUG: Test requirement passed: err == 0
(gem_busy:13397) igt-gt-CRITICAL: Test assertion failure function
igt_allow_hang, file ../../intel-gpu-tools-9999/lib/igt_gt.c:174:
(gem_busy:13397) igt-gt-CRITICAL: Failed assertion: igt_sysfs_set_parameter
(fd, "reset", "%d", INT_MAX )
(gem_busy:13397) igt-gt-CRITICAL: Last errno: 22, Invalid argument
(gem_busy:13397) igt-core-INFO: Stack trace:
****  END  ****

The Stderr output clearly shows that the test passed with:
(gem_busy:13397) igt-core-INFO: Subtest basic-busy-default: SUCCESS (0.013s)

But the test continues on.

Doing a bisect resulted in the offending commit:

commit 3f89d7b02dcf662e994c7135b13d52bc8e09a4ea
Author: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>>
Date:   Thu Aug 30 09:38:55 2018 +0100

    lib/sysfs: Avoid using FILE* temporary for igt_sysfs_[v]printf

    Currently we wrap our fd inside a FILE* stream to make use of vfprintf,
    but the man page leaves the question of errno and signal handling in
    doubt. It is documented as returning a negative value and setting
    ferror(), but we have been interpreting errno to handle signal
    restarting. As that is in doubt, reduce it to a sprintf and reuse our
    common interrupt handling write() that already returns -errno.

    Signed-off-by: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>>
    Cc: Katarzyna Dec <<a href="mailto:katarzyna.dec@intel.com">katarzyna.dec@intel.com</a>>
    Reviewed-by: Katarzyna Dec <<a href="mailto:katarzyna.dec@intel.com">katarzyna.dec@intel.com</a>>

Reverting the commit fixed the behavior and 30+ subtests on the
fast-feedback.testlist changed back to passing.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>