From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DBE610E011 for ; Mon, 7 Aug 2023 03:56:22 +0000 (UTC) From: janga.rahul.kumar@intel.com To: igt-dev@lists.freedesktop.org, ramadevi.gandi@intel.com, janga.rahul.kumar@intel.com Date: Mon, 7 Aug 2023 09:28:03 +0530 Message-Id: <20230807035805.1054349-2-janga.rahul.kumar@intel.com> In-Reply-To: <20230807035805.1054349-1-janga.rahul.kumar@intel.com> References: <20230807035805.1054349-1-janga.rahul.kumar@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t 1/3] lib/xe: Add support to reset all GT's List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: sai.gowtham.ch@intel.com, kunal1.joshi@intel.com Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: From: Janga Rahul Kumar Introduce xe gt library. Add support to check GT reset and force reset all GT's. Cc: Sai Gowtham Ch Cc: Kunal Joshi Cc: Kamil Konieczny Cc: Anna Karas Signed-off-by: Janga Rahul Kumar Tested-by: Kunal Joshi --- lib/meson.build | 1 + lib/xe/xe_gt.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ lib/xe/xe_gt.h | 27 +++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 lib/xe/xe_gt.c create mode 100644 lib/xe/xe_gt.h diff --git a/lib/meson.build b/lib/meson.build index ce11c0715..b7bfcf4f0 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -103,6 +103,7 @@ lib_sources = [ 'igt_dsc.c', 'xe/xe_compute.c', 'xe/xe_compute_square_kernels.c', + 'xe/xe_gt.c', 'xe/xe_ioctl.c', 'xe/xe_query.c', 'xe/xe_spin.c', diff --git a/lib/xe/xe_gt.c b/lib/xe/xe_gt.c new file mode 100644 index 000000000..9cad739be --- /dev/null +++ b/lib/xe/xe_gt.c @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2023 Intel Corporation + * + * Authors: + * Janga Rahul Kumar + */ + +#include + +#include "xe_gt.h" + +/** + * has_xe_gt_reset: + * @fd: open xe drm file descriptor + * + * Check gt force reset sysfs entry is available or not + * + * Returns: reset sysfs entry available + */ +bool has_xe_gt_reset(int fd) +{ + char reset_sysfs_path[100]; + struct stat st; + int gt; + int reset_sysfs_fd = -1; + int sysfs_fd = -1; + + igt_assert_eq(fstat(fd, &st), 0); + sysfs_fd = igt_sysfs_open(fd); + + igt_assert(sysfs_fd != -1); + xe_for_each_gt(fd, gt) { + sprintf(reset_sysfs_path, "/sys/kernel/debug/dri/%d/gt%d/force_reset", + minor(st.st_rdev), gt); + reset_sysfs_fd = openat(sysfs_fd, reset_sysfs_path, O_RDONLY); + + if (reset_sysfs_fd == -1) { + close(sysfs_fd); + return 0; + } + + close(reset_sysfs_fd); + } + + close(sysfs_fd); + return 1; +} + +/** + * xe_force_gt_reset_all: + * + * Forces reset of all the GT's. + */ +void xe_force_gt_reset_all(int xe_fd) +{ + int gt; + + xe_for_each_gt(xe_fd, gt) + xe_force_gt_reset(xe_fd, gt); +} + diff --git a/lib/xe/xe_gt.h b/lib/xe/xe_gt.h new file mode 100644 index 000000000..e075ebf62 --- /dev/null +++ b/lib/xe/xe_gt.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2023 Intel Corporation + * + * Authors: + * Janga Rahul Kumar + */ + +#include +#include +#include + +#include "igt_core.h" +#include "igt_sysfs.h" +#include "xe_ioctl.h" +#include "xe_query.h" + +#ifdef __linux__ +#include +#else +#define major(__v__) (((__v__) >> 8) & 0xff) +#define minor(__v__) ((__v__) & 0xff) +#endif + +bool has_xe_gt_reset(int fd); +void xe_force_gt_reset_all(int fd); + -- 2.25.1