Bug ID | 108891 |
---|---|
Summary | Test enumeration becomes funky on some tests due to fd FILE* stream change |
Product | DRI |
Version | XOrg git |
Hardware | Other |
OS | All |
Status | NEW |
Severity | normal |
Priority | medium |
Component | IGT |
Assignee | dri-devel@lists.freedesktop.org |
Reporter | casey.g.bowman@intel.com |
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 <chris@chris-wilson.co.uk> 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 <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com> Reverting the commit fixed the behavior and 30+ subtests on the fast-feedback.testlist changed back to passing.
You are receiving this mail because:
- You are the assignee for the bug.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel