From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id CBE876E9F6 for ; Tue, 18 Feb 2020 12:58:38 +0000 (UTC) From: Katarzyna Dec Date: Tue, 18 Feb 2020 13:58:33 +0100 Message-Id: <20200218125833.29629-1-katarzyna.dec@intel.com> In-Reply-To: <20200218125333.29250-1-katarzyna.dec@intel.com> References: <20200218125333.29250-1-katarzyna.dec@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2] lib: Check if device is not wedged while opening fd List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Petri Latvala List-ID: In rare cases it is possible to use wedged device in testing, what is causing to have false results. Let's abort any fd usage when GPU is wedged. Use sysfs to check status to make any environment happy. v2: removed unnecessary file Signed-off-by: Katarzyna Dec Cc: Zbigniew Kempczynski Cc: Chris Wilson Cc: Petri Latvala --- lib/drmtest.c | 1 + lib/igt_device.c | 18 ++++++++++++++++++ lib/igt_device.h | 2 ++ 3 files changed, 21 insertions(+) diff --git a/lib/drmtest.c b/lib/drmtest.c index 1fc39925..e770462e 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -476,6 +476,7 @@ int drm_open_driver(int chipset) } } + igt_fail_on_f(igt_device_is_wedged(fd), "Device is wedged.\n"); return fd; } diff --git a/lib/igt_device.c b/lib/igt_device.c index 07bb0a0d..6284aff7 100644 --- a/lib/igt_device.c +++ b/lib/igt_device.c @@ -236,3 +236,21 @@ struct pci_device *igt_device_get_pci_device(int fd) return pci_dev; } + +/** + * igt_device_is_wedged: + * @fd: device fd + * + * Return true is device is wedged. + */ +bool igt_device_is_wedged(int fd) +{ + char buf[2]; + + igt_debugfs_read(fd, "i915_wedged", buf); + + if (!strstr(buf, "0")) + return true; + + return false; +} diff --git a/lib/igt_device.h b/lib/igt_device.h index 278ba7a9..cb3f9b94 100644 --- a/lib/igt_device.h +++ b/lib/igt_device.h @@ -34,4 +34,6 @@ void igt_device_drop_master(int fd); int igt_device_get_card_index(int fd); struct pci_device *igt_device_get_pci_device(int fd); +bool igt_device_is_wedged(int fd); + #endif /* __IGT_DEVICE_H__ */ -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev