From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92D7E10E0D2 for ; Fri, 15 Dec 2023 10:09:43 +0000 (UTC) Message-ID: <32cc9475-189d-4d14-8050-7cc4d94f0a19@linux.intel.com> Date: Fri, 15 Dec 2023 15:42:16 +0530 MIME-Version: 1.0 Subject: Re: [PATCH i-g-t] tests/intel/xe: Remove xe_uevent for now Content-Language: en-US To: Francois Dugast , igt-dev@lists.freedesktop.org References: <20231215095029.7-1-francois.dugast@intel.com> From: Aravind Iddamsetty In-Reply-To: <20231215095029.7-1-francois.dugast@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lucas De Marchi , Rodrigo Vivi Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On 12/15/23 15:20, Francois Dugast wrote: > From: Rodrigo Vivi > > This kernel uevent is getting removed for now. It will come > back later with a better future proof name. > > v2: Align with kernel commit ("drm/xe/uapi: Remove reset uevent \ > for now") (Francois Dugast) with the test being dropped we should drop the corresponding debugfs interface introduced to test this feature. 14a663d83da2 drm/xe: Introduce fault injection for gt reset. Thanks, Aravind. > > Cc: Himal Prasad Ghimiray > Cc: Lucas De Marchi > Cc: Francois Dugast > Cc: Aravind Iddamsetty > Signed-off-by: Rodrigo Vivi > Signed-off-by: Francois Dugast > --- > include/drm-uapi/xe_drm.h | 11 ---- > tests/intel/xe_uevent.c | 129 -------------------------------------- > tests/meson.build | 1 - > 3 files changed, 141 deletions(-) > delete mode 100644 tests/intel/xe_uevent.c > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index ccf577bc0..9e29bbd70 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -20,7 +20,6 @@ extern "C" { > * 2. Extension definition and helper structs > * 3. IOCTL's Query structs in the order of the Query's entries. > * 4. The rest of IOCTL structs in the order of IOCTL declaration. > - * 5. uEvents > */ > > /** > @@ -1341,16 +1340,6 @@ struct drm_xe_wait_user_fence { > __u64 reserved[2]; > }; > > -/** > - * DOC: uevent generated by xe on it's pci node. > - * > - * DRM_XE_RESET_FAILED_UEVENT - Event is generated when attempt to reset gt > - * fails. The value supplied with the event is always "NEEDS_RESET". > - * Additional information supplied is tile id and gt id of the gt unit for > - * which reset has failed. > - */ > -#define DRM_XE_RESET_FAILED_UEVENT "DEVICE_STATUS" > - > #if defined(__cplusplus) > } > #endif > diff --git a/tests/intel/xe_uevent.c b/tests/intel/xe_uevent.c > deleted file mode 100644 > index d30931714..000000000 > --- a/tests/intel/xe_uevent.c > +++ /dev/null > @@ -1,129 +0,0 @@ > -// SPDX-License-Identifier: MIT > -/* > - * Copyright © 2023 Intel Corporation > - */ > - > -/** > - * TEST: cause fake gt reset failure and listen uevent from KMD > - * Category: Software building block > - * SUBTEST:fake_reset_uevent_listener > - * Functionality: uevent > - * Sub-category: GT reset failure uevent > - * Test category: functionality test > - * Description: > - * Test creates uevent listener and causes fake reset failure for gt0 > - * and returns success if uevent is sent by driver and listened by listener. > - */ > - > -#include > -#include > -#include > - > -#include "igt.h" > - > -#include "xe_drm.h" > -#include "xe/xe_ioctl.h" > -#include "xe/xe_query.h" > - > -static void xe_fail_gt_reset(int fd, int gt) > -{ > - igt_debugfs_write(fd, "fail_gt_reset/probability", "100"); > - igt_debugfs_write(fd, "fail_gt_reset/times", "2"); > - > - xe_force_gt_reset(fd, gt); > -} > - > -static bool listen_reset_fail_uevent(struct udev_device *device, const char *source, int gt_id) > -{ > - struct udev_list_entry *list_entry; > - bool dev_needs_reset = false; > - bool tile_id_passed = false; > - bool gt_id_matches = false; > - const char *name, *val; > - > - udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(device)) > - { > - name = udev_list_entry_get_name(list_entry); > - val = udev_list_entry_get_value(list_entry); > - > - if (!strcmp(name, "DEVICE_STATUS") && !strcmp(val, "NEEDS_RESET")) { > - igt_debug("%s = %s\n", name, val); > - dev_needs_reset = true; > - continue; > - } > - > - if (!strcmp(name, "TILE_ID")) { > - igt_debug("%s = %s\n", name, val); > - tile_id_passed = true; > - continue; > - } > - > - if (!strcmp(name, "GT_ID") && (atoi(val) == gt_id)) { > - igt_debug("%s = %s\n", name, val); > - gt_id_matches = true; > - continue; > - } > - } > - > - return (dev_needs_reset && tile_id_passed && gt_id_matches); > -} > - > -static void fake_reset_uevent_listener(int fd, int gt_id) > -{ > - struct udev *udev; > - struct udev_device *dev; > - struct udev_monitor *mon; > - bool event_received = false; > - bool event_sent = false; > - const u32 listener_timeout = 5; > - > - /* create udev object */ > - udev = udev_new(); > - if (!udev) > - igt_assert_f(false, "New udev object creation failed"); > - > - mon = udev_monitor_new_from_netlink(udev, "kernel"); > - udev_monitor_filter_add_match_subsystem_devtype(mon, "pci", NULL); > - udev_monitor_enable_receiving(mon); > - igt_until_timeout(listener_timeout) { > - if (event_sent) { > - dev = udev_monitor_receive_device(mon); > - if (dev) { > - event_received = listen_reset_fail_uevent(dev, "kernel", gt_id); > - udev_device_unref(dev); > - } > - } else { > - event_sent = true; > - xe_fail_gt_reset(fd, gt_id); > - } > - > - if (event_received) > - break; > - } > - > - udev_unref(udev); > - igt_assert_f(event_received, "Event not received"); > -} > - > -igt_main > -{ > - int fd; > - int gt; > - const u32 settle_xe_load_uevents = 50000; > - > - igt_fixture > - fd = drm_open_driver(DRIVER_XE); > - > - /* Ensures uevents triggered in case of driver > - * load are settled down. > - */ > - usleep(settle_xe_load_uevents); > - > - igt_subtest("fake_reset_uevent_listener") > - xe_for_each_gt(fd, gt) { > - fake_reset_uevent_listener(fd, gt); > - } > - > - igt_fixture > - drm_close_driver(fd); > -} > diff --git a/tests/meson.build b/tests/meson.build > index a5f5c143c..6dbe45e93 100644 > --- a/tests/meson.build > +++ b/tests/meson.build > @@ -307,7 +307,6 @@ intel_xe_progs = [ > 'xe_pm_residency', > 'xe_prime_self_import', > 'xe_query', > - 'xe_uevent', > 'xe_vm', > 'xe_waitfence', > 'xe_spin_batch',