From patchwork Fri Nov 25 17:52:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Almeida?= X-Patchwork-Id: 26112 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp4195733wrr; Fri, 25 Nov 2022 09:57:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf4vkqOUz73+60uZeAy4OtP7UH+FP3uJfzvvGhSXNMHMDPrlwwbZxy9fjfQCl7y/6/56RW8W X-Received: by 2002:a17:90b:3c04:b0:218:4b47:9c29 with SMTP id pb4-20020a17090b3c0400b002184b479c29mr40714720pjb.54.1669399039022; Fri, 25 Nov 2022 09:57:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669399039; cv=none; d=google.com; s=arc-20160816; b=U+CHmKs1gEqP7B1E9YccAg1Pxxn/zMZXmHvdz4H+fMuNveZEqmnncEdBR6lHP0xJrh GmPoF8SiZheV3t4FSj3zgjiWA+YYOfxnrr+rnxtplNu4zKzXvwaDfbZMKx8zH5sI8DyW zTrx95IA7WMyGSQk++A9hoDg9VRwsRYqHBEuWQPu2iP/IE4JVNczhoIoUiZIcCShBv11 ZqD8qpHDgxSbQJElHvqIUoXFjiwuxUkbCdLvVkiMAQVHRTxANxqdSlz2VS7352nKxME9 9UAeVFrK5fsT2G4y8bDzPUs4ybgAMPk/p3s30IZ6Dwp8l1e1Fn4Sax6526GRNg8UfHZV rigA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=vQnZdDaeMZRvzZ/f0hEi9Onn6iiUNEza8dUpGkzrSeM=; b=Cfr04TGLDIEgk5EFRs3URcBIDaBQNjfWMFSJfOaTY0vIbKjm9VpiIA65PRFgXcHms8 OL4/7OM0pRRfs5wV/A6oD3hiTqXCiMyu2pS6IWd4qR3oCeCoijp9yeBhVSUPYWAiwNZ/ 8OyE7n4oGYvdIb7bvTNWg7UTIqjvMccCxGRixLwnGvcvoKo/vVVwl90YX8Sie9U+RriY c3g2gCjI0U0V9DWmfitLmmt+mvj9FywmV3VuUFIiIz1+LFMpooZhas0P2dZEbaJ5o5hR HCON7l1D9ztSkV2fW+rP1NwQFfMi/Ot8B021AxzYy1L24xe6HgxaS8dypFUAYjz8WlWb fEMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=eBfRP+3p; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u6-20020a056a00098600b0053e15843f1fsi5215186pfg.131.2022.11.25.09.57.06; Fri, 25 Nov 2022 09:57:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=eBfRP+3p; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229698AbiKYRwh (ORCPT + 99 others); Fri, 25 Nov 2022 12:52:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229626AbiKYRwf (ORCPT ); Fri, 25 Nov 2022 12:52:35 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FD01E0DB for ; Fri, 25 Nov 2022 09:52:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=vQnZdDaeMZRvzZ/f0hEi9Onn6iiUNEza8dUpGkzrSeM=; b=eBfRP+3pYLn7TV2us+hnRzIDk/ u/PT+0Tj/Wck/hBuidjtLiwownsVUSKnoQ/m6CxTwrXC+VxNzJkQEbvMxhPnkWHMOOb7XM0+RA46a UhVTuBUvTfAR+9LVVVz0lDcVKMpQXqttHI4SXQiOIarZoZlmAyslMSY4PfPr1mfigllJdD/XUmF+9 IyT0s1YXh2A9SxDqP3bmqnIIazJ4+UVUVXDgThO+JBhIqJDQHi/e5fcNM9Jq+FkIZ6d/DR37T5gbl ZKkHVwS9Guc6LB4SYhXAqFlEzCJrFpFPZhwH8gQpnhkdfIdPe/H3M5E3D2koBAz/eyi6PqKqYwUvg OvGbfbSw==; Received: from 200-148-10-170.dsl.telesp.net.br ([200.148.10.170] helo=steammachine.lan) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1oycsI-008yzi-Fe; Fri, 25 Nov 2022 18:52:30 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kernel-dev@igalia.com, alexander.deucher@amd.com, contactshashanksharma@gmail.com, amaranath.somalapuram@amd.com, christian.koenig@amd.com, pierre-eric.pelloux-prayer@amd.com, Simon Ser , Rob Clark , Andrey Grodzovsky , Pekka Paalanen , Daniel Vetter , Daniel Stone , =?utf-8?b?J01hcmVrIE9sxaHDoWsn?= , Dave Airlie , "Pierre-Loup A . Griffais" , Shashank Sharma , =?utf-8?q?Andr=C3=A9_Almeida?= Subject: [PATCH v3 1/2] drm: Add GPU reset sysfs event Date: Fri, 25 Nov 2022 14:52:02 -0300 Message-Id: <20221125175203.52481-2-andrealmeid@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221125175203.52481-1-andrealmeid@igalia.com> References: <20221125175203.52481-1-andrealmeid@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750491767084699134?= X-GMAIL-MSGID: =?utf-8?q?1750491767084699134?= From: Shashank Sharma Add a sysfs event to notify userspace about GPU resets providing: - PID that triggered the GPU reset, if any. Resets can happen from kernel threads as well, in that case no PID is provided - Information about the reset (e.g. was VRAM lost?) Co-developed-by: André Almeida Signed-off-by: André Almeida Signed-off-by: Shashank Sharma --- V3: - Reduce information to just PID and flags - Use pid pointer instead of just pid number - BUG() if no reset info is provided V2: - Addressed review comments from Christian and Amar - move the reset information structure to DRM layer - drop _ctx from struct name - make pid 32 bit(than 64) - set flag when VRAM invalid (than valid) - add process name as well (Amar) --- drivers/gpu/drm/drm_sysfs.c | 26 ++++++++++++++++++++++++++ include/drm/drm_sysfs.h | 13 +++++++++++++ 2 files changed, 39 insertions(+) diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 430e00b16eec..85777abf4194 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -409,6 +409,32 @@ void drm_sysfs_hotplug_event(struct drm_device *dev) } EXPORT_SYMBOL(drm_sysfs_hotplug_event); +/** + * drm_sysfs_reset_event - generate a DRM uevent to indicate GPU reset + * @dev: DRM device + * @reset_info: The contextual information about the reset (like PID, flags) + * + * Send a uevent for the DRM device specified by @dev. This informs + * user that a GPU reset has occurred, so that an interested client + * can take any recovery or profiling measure. + */ +void drm_sysfs_reset_event(struct drm_device *dev, struct drm_reset_event_info *reset_info) +{ + unsigned char pid_str[13]; + unsigned char flags_str[18]; + unsigned char reset_str[] = "RESET=1"; + char *envp[] = { reset_str, pid_str, flags_str, NULL }; + + DRM_DEBUG("generating reset event\n"); + + BUG_ON(!reset_info); + + snprintf(pid_str, sizeof(pid_str), "PID=%u", pid_vnr(reset_info->pid)); + snprintf(flags_str, sizeof(flags_str), "FLAGS=0x%llx", reset_info->flags); + kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp); +} +EXPORT_SYMBOL(drm_sysfs_reset_event); + /** * drm_sysfs_connector_hotplug_event - generate a DRM uevent for any connector * change diff --git a/include/drm/drm_sysfs.h b/include/drm/drm_sysfs.h index 6273cac44e47..dbb0ac6230b8 100644 --- a/include/drm/drm_sysfs.h +++ b/include/drm/drm_sysfs.h @@ -2,15 +2,28 @@ #ifndef _DRM_SYSFS_H_ #define _DRM_SYSFS_H_ +#define DRM_RESET_EVENT_VRAM_LOST (1 << 0) + struct drm_device; struct device; struct drm_connector; struct drm_property; +/** + * struct drm_reset_event_info - Information about a GPU reset event + * @pid: Process that triggered the reset, if any + * @flags: Extra information around the reset event (e.g. is VRAM lost?) + */ +struct drm_reset_event_info { + struct pid *pid; + uint64_t flags; +}; + int drm_class_device_register(struct device *dev); void drm_class_device_unregister(struct device *dev); void drm_sysfs_hotplug_event(struct drm_device *dev); +void drm_sysfs_reset_event(struct drm_device *dev, struct drm_reset_event_info *reset_info); void drm_sysfs_connector_hotplug_event(struct drm_connector *connector); void drm_sysfs_connector_status_event(struct drm_connector *connector, struct drm_property *property); From patchwork Fri Nov 25 17:52:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Almeida?= X-Patchwork-Id: 26113 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp4195944wrr; Fri, 25 Nov 2022 09:57:43 -0800 (PST) X-Google-Smtp-Source: AA0mqf69ce32qEJ/wyEag9CF7FiL5wuT22dk9af/OsRgjZaeEQaSQYUSA4gRqPvAQLFZSI5/Kgg5 X-Received: by 2002:a17:90a:7e87:b0:212:f810:a846 with SMTP id j7-20020a17090a7e8700b00212f810a846mr49054861pjl.71.1669399062711; Fri, 25 Nov 2022 09:57:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669399062; cv=none; d=google.com; s=arc-20160816; b=iNP5YURx10QHQbfLUN1E5v/KDkMxxMb7sTLPes3QepXWEoLGtd1Gqa1pFx1uIZHPUf BZ29oeA03OFp4Q+GHD3FQr9v0ufUqzJgc7E0WQMGkGQCAlXoJC1l3uS+GZK0Fk5lTP4y aw/dzh+xPufIQw6XdKZ3n3c+nV8f9D4LK1+wmILDSuuzz8Mq9lI06njaKMqdAkmRnIm+ Vmk51TnlwPOX9KDrYufLiv091KFlBhI9jwADTpHVbCZDW2+iziH6lbieUv3PsZVcEkc9 jtwCk8B84jBZ6VxVO+/5scVniwwMFLEG5/Kl7iPxsjoRXTib2Vi+eF0lky0booaK+RfY eJlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TjyhoR6wt5B1E4yoomBzwFjtmTKYq8UrV6BN0DXxMac=; b=jNauRpiqBYSxsPUO2WAyOkUYdN3cX65Fzi2WufRlA01QdIRhYbmi5J1e4k8R1aOHks XjtNG1Hqk6AP4SgeM8gnFTYJzJq83lI6SR/TGvFFdzkn20XTfosc0995idA6CcRmVfd8 Yhd0QssywXZZARwfvBQVLyCW5t8ukqZ05LpdFjwaFDUMM+FuVe3eGVcT6UCQouw1K7gS 3NkJ2oPNBUz2ZDUk/LthX8rY9iOFkYTHvhmNMz20/N0t1g5PftKzxRnzHJj+BysUNHkj ZWKg01xOgeuPk+o9on77JhF1X5GiFPGxMYPddFO/Qqnzfq8Onc8mGkvrXydt1RXASb/P nABQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=PDGhzefo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x190-20020a6386c7000000b0047009247402si4937845pgd.414.2022.11.25.09.57.28; Fri, 25 Nov 2022 09:57:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=PDGhzefo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229805AbiKYRwo (ORCPT + 99 others); Fri, 25 Nov 2022 12:52:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229750AbiKYRwk (ORCPT ); Fri, 25 Nov 2022 12:52:40 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D6BC1B9C6 for ; Fri, 25 Nov 2022 09:52:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=TjyhoR6wt5B1E4yoomBzwFjtmTKYq8UrV6BN0DXxMac=; b=PDGhzefohyKbNssK+vE/PxQIHg BtGaRCTTjPQRYWs/KaW3JO/cQ7oIENCFQ7FacdHUzOluADsLEeUOU/d//dZuNtKmtT5iBt0yw4Vo7 7v+xi3oNXBYSeWIpK0MTXohhvusRSHReacLdxmKzLH4L/o5j5VJNONPf6Zxsv+DjE0Hh9w/sI3SIO 3L9uqS8pexFzWn2N5oRg3xu1FsJFLaYCApbbbDVKcZNishF6Tb6eV1LeeZ7nSUcBFLN2HLoFv08ll RNokDTcP2k6htXKfRm7ydSHgUcxtfvctt8CTGzRlbiszZLAVYS9MPvEFlodCBU0IaRA9F9H2hQnUm iohSEERw==; Received: from 200-148-10-170.dsl.telesp.net.br ([200.148.10.170] helo=steammachine.lan) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1oycsN-008yzi-Ob; Fri, 25 Nov 2022 18:52:36 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kernel-dev@igalia.com, alexander.deucher@amd.com, contactshashanksharma@gmail.com, amaranath.somalapuram@amd.com, christian.koenig@amd.com, pierre-eric.pelloux-prayer@amd.com, Simon Ser , Rob Clark , Andrey Grodzovsky , Pekka Paalanen , Daniel Vetter , Daniel Stone , =?utf-8?b?J01hcmVrIE9sxaHDoWsn?= , Dave Airlie , "Pierre-Loup A . Griffais" , =?utf-8?q?Andr?= =?utf-8?q?=C3=A9_Almeida?= , Shashank Sharma Subject: [PATCH v3 2/2] drm/amdgpu: Add work function for GPU reset event Date: Fri, 25 Nov 2022 14:52:03 -0300 Message-Id: <20221125175203.52481-3-andrealmeid@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221125175203.52481-1-andrealmeid@igalia.com> References: <20221125175203.52481-1-andrealmeid@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750491791648815760?= X-GMAIL-MSGID: =?utf-8?q?1750491791648815760?= Add a work function to send a GPU reset uevent and scheduled it during a GPU reset. Co-developed-by: Shashank Sharma Signed-off-by: Shashank Sharma Signed-off-by: André Almeida --- V3: - Merge two last commits V2: Addressed review comments from Christian - Changed the name of the work to gpu_reset_event_work - Added a structure to accommodate some additional information (like a PID and some flags) - Do not add new structure in amdgpu.h --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 30 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 6b74df446694..88cb5b739c5d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -60,6 +60,8 @@ #include #include #include +#include +#include #include #include "dm_pp_interface.h" @@ -1003,6 +1005,7 @@ struct amdgpu_device { int asic_reset_res; struct work_struct xgmi_reset_work; + struct work_struct gpu_reset_event_work; struct list_head reset_list; long gfx_timeout; @@ -1036,6 +1039,7 @@ struct amdgpu_device { pci_channel_state_t pci_channel_state; struct amdgpu_reset_control *reset_cntl; + struct drm_reset_event_info reset_event_info; uint32_t ip_versions[MAX_HWIP][HWIP_MAX_INSTANCE]; bool ram_is_direct_mapped; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index b2b1c66bfe39..d04541fdb606 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -77,6 +77,7 @@ #include #include +#include MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin"); MODULE_FIRMWARE("amdgpu/vega12_gpu_info.bin"); @@ -3365,6 +3366,19 @@ bool amdgpu_device_has_dc_support(struct amdgpu_device *adev) return amdgpu_device_asic_has_dc_support(adev->asic_type); } +static void amdgpu_device_reset_event_func(struct work_struct *__work) +{ + struct amdgpu_device *adev = container_of(__work, struct amdgpu_device, + gpu_reset_event_work); + /* + * A GPU reset has happened, inform the userspace and pass the reset + * related information + */ + drm_sysfs_reset_event(&adev->ddev, &adev->reset_event_info); + + put_pid(adev->reset_event_info.pid); +} + static void amdgpu_device_xgmi_reset_func(struct work_struct *__work) { struct amdgpu_device *adev = @@ -3616,6 +3630,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, amdgpu_device_delay_enable_gfx_off); INIT_WORK(&adev->xgmi_reset_work, amdgpu_device_xgmi_reset_func); + INIT_WORK(&adev->gpu_reset_event_work, amdgpu_device_reset_event_func); adev->gfx.gfx_off_req_count = 1; adev->gfx.gfx_off_residency = 0; @@ -4920,6 +4935,21 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle, goto out; vram_lost = amdgpu_device_check_vram_lost(tmp_adev); + + if (reset_context->job && reset_context->job->vm) { + tmp_adev->reset_event_info.pid = + find_get_pid(reset_context->job->vm->task_info.pid); + } else { + tmp_adev->reset_event_info.pid = NULL; + } + + if (vram_lost) + tmp_adev->reset_event_info.flags |= + DRM_RESET_EVENT_VRAM_LOST; + + /* Send GPU reset event */ + schedule_work(&tmp_adev->gpu_reset_event_work); + #ifdef CONFIG_DEV_COREDUMP tmp_adev->reset_vram_lost = vram_lost; memset(&tmp_adev->reset_task_info, 0,