From nobody Thu Oct 9 02:12:50 2025 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5246D24397B for ; Fri, 20 Jun 2025 23:51:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463472; cv=none; b=UgCl2FNQ6SZ22eZw8Murt6hSc1paqkGANVCtfNuaGfNvuxCx+MlLhFVeKANt/dmE2FQ/IuxhPGyXJJpCp7zLdZo4nSH88U/uCx//aAVwEZfysESuoiOgcYagA4uVdCQJQ6gV6kkeocRCmvj0Ht7lH7dfwUlbJWg5qBBbTZoxTN8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463472; c=relaxed/simple; bh=AITQe8mrogs4HI2pTmaOHdcxZKDYfWIA+mzA0ZGiqxg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BtEOyQkQAMSFv+UwvDVMVnlNTfk4TmiJgzDu6E6neQUfRtU/lk2jEAZcm59BGSfK6vO2cpUM2FeAgGrQo9rg5VXULKaqI0MzWYR6+9wb7oo+kVvfx9gHGxemicM33bORyyGO8Z9d0HuT1zcozFsD4pCsra6iLbkYW0XUXIqDQSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gilVzFRP; arc=none smtp.client-ip=209.85.215.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gilVzFRP" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-b0b2d0b2843so1735760a12.2 for ; Fri, 20 Jun 2025 16:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750463470; x=1751068270; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=bIspX+R59/KkNw1d2FACMt9ogJpMnxhLRlBebcNNzSk=; b=gilVzFRPLD49l+cbPzK42I5jW3y+oBP7GDRl04xsNQL2zz+vUHStm99SKk8rn3aBFQ asrZqfyIc4WA8pmf0H3ekyFnzrgaysfxWF3GuWr2xStZU+gOyZ8+cwNkI59GdS8MRfT1 Svva06U6JybS/akURWNtlDXA8l5VKnVetGATrQFuqZ6bcl7wCfJpNnsimfocu+pCGjfz JqQNWRm/nXZRbxJFXn1JIzMF9bNgPj/5CjRgKHWI7Ljh+d5DZqGkWHgH/OVDiAahppqu PMPn7aOJeL/ME+xerV4H2iZyv17H55PHyfXdNqDvLdL1GpZucpBOFIHjbI2KP/ErqGmB ImhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750463470; x=1751068270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bIspX+R59/KkNw1d2FACMt9ogJpMnxhLRlBebcNNzSk=; b=e5Jvacox+LQOY7wkxO/W/2dxIuIG58jXoSdU6T3n02jAN6NzEHPwvSzSBqK1WB0ZCe 94+gVfBHHblcmHrXHrCh5UUN33/qwXyFP4YPwXXUpj/TcWZtg1oU/XjPB6Lm9Y5uwuIf qmaK4U93mb82FMj3ooS2ECWmiUP84EWdbX9M0gRNurNYkzNU0tG8LZjOTwRoAJ0UxVFD p9hCa6QrpuK6qyMIfjM5XCI2xbF3HZuVCqyZ+youtrsHXzHtkuWRggtKfibZl9whjFDW gC0Hwshq90NbzRCDyY5+fgqSKq5fANqKrW58yqrzUwwYu010tFulIgHbOuInmAKnMRNA Ligw== X-Forwarded-Encrypted: i=1; AJvYcCVmfimmCkeXz75IR3wLh9G3fYZOm4aQQ1gFzalAVIPesg5cNgtRVDKdDGSWXaUFpSDL+zKFDXWVSVaGCd0=@vger.kernel.org X-Gm-Message-State: AOJu0YxRbkBiYN1Kbh2l1n+bWL8Y8A4eNj07nakCKpQL2octvBM7iu8w z12GAfOTcjw87k6Y7z8RJn+U4SFXX1ia/UHPXQWga3oUKi4DAM2feeL7 X-Gm-Gg: ASbGncsRzHgLAvf21uvPG2DfgLyAJwWuWy//37o1h2Z+NvQE9AESdAwqHPMs7LY5++I jNL+HKB8/eh14/5dbYvzAFck0Ce+QhvepYIlYz95ypYe50kAv+DIPvOG9TbVOVgdBxUNevScwwt 1qbFiPWS1UQD9oS/9YmrcjzHApYCmKj/6Rx9tafRaLggokLZIANHxsi0wE+zdHTEvnHpITHZXZk DABhs63HW19jjFvUrIvwseaOeKDuKriTyQ9k4iN/02gZc5PdryAcPrX/jVnz2RSBVp5AStT6V0c 3GaWaOid9R9zyodr1vLnoimlXM3TeoRnV4VPJy8bYNoUpn4V4U5RTA/jVdYemYier4V958zRqHy LRyRjPYgTcvc4PCQDe+0u X-Google-Smtp-Source: AGHT+IE976pSbdd7FW0S5BytUdlkttRhJ9v8UMgbKLSGtDpmUrSef8Wbi/Q5nXAJVfP5KA7TureZtQ== X-Received: by 2002:a17:90b:5625:b0:313:bdbf:36c0 with SMTP id 98e67ed59e1d1-3159d5779femr8909762a91.0.1750463470490; Fri, 20 Jun 2025 16:51:10 -0700 (PDT) Received: from localhost (212.18.125.34.bc.googleusercontent.com. [34.125.18.212]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-237d875a7b5sm26731135ad.256.2025.06.20.16.51.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 16:51:10 -0700 (PDT) From: Chia-I Wu To: Boris Brezillon , Steven Price , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] panthor: set owner field for driver fops Date: Fri, 20 Jun 2025 16:50:50 -0700 Message-ID: <20250620235053.164614-2-olvaffe@gmail.com> X-Mailer: git-send-email 2.50.0.714.g196bf9f422-goog In-Reply-To: <20250620235053.164614-1-olvaffe@gmail.com> References: <20250620235053.164614-1-olvaffe@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It allows us to get rid of manual try_module_get / module_put. Signed-off-by: Chia-I Wu Reviewed-by: Boris Brezillon Reviewed-by: Steven Price --- drivers/gpu/drm/panthor/panthor_drv.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/pantho= r/panthor_drv.c index 1116f2d2826ee..775a66c394544 100644 --- a/drivers/gpu/drm/panthor/panthor_drv.c +++ b/drivers/gpu/drm/panthor/panthor_drv.c @@ -1400,14 +1400,9 @@ panthor_open(struct drm_device *ddev, struct drm_fil= e *file) struct panthor_file *pfile; int ret; =20 - if (!try_module_get(THIS_MODULE)) - return -EINVAL; - pfile =3D kzalloc(sizeof(*pfile), GFP_KERNEL); - if (!pfile) { - ret =3D -ENOMEM; - goto err_put_mod; - } + if (!pfile) + return -ENOMEM; =20 pfile->ptdev =3D ptdev; pfile->user_mmio.offset =3D DRM_PANTHOR_USER_MMIO_OFFSET; @@ -1439,9 +1434,6 @@ panthor_open(struct drm_device *ddev, struct drm_file= *file) =20 err_free_file: kfree(pfile); - -err_put_mod: - module_put(THIS_MODULE); return ret; } =20 @@ -1454,7 +1446,6 @@ panthor_postclose(struct drm_device *ddev, struct drm= _file *file) panthor_vm_pool_destroy(pfile); =20 kfree(pfile); - module_put(THIS_MODULE); } =20 static const struct drm_ioctl_desc panthor_drm_driver_ioctls[] =3D { @@ -1555,6 +1546,7 @@ static void panthor_show_fdinfo(struct drm_printer *p= , struct drm_file *file) } =20 static const struct file_operations panthor_drm_driver_fops =3D { + .owner =3D THIS_MODULE, .open =3D drm_open, .release =3D drm_release, .unlocked_ioctl =3D drm_ioctl, --=20 2.50.0.714.g196bf9f422-goog From nobody Thu Oct 9 02:12:50 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 417DB4C79 for ; Fri, 20 Jun 2025 23:51:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463473; cv=none; b=OdbeMiYMlBbXH+GbuNH44tKCtSrxQiEtHbzpowvwfDL424jkA7cvjlFEalC/RLlRC78+GXn6aqn0AVquQX3cEQ3+kn9zMM0EAzcT6y/zIII3o7sm37yssMFHTlLcfhGBBKa0KQbMuZELDP+a4/GslG+Ww+ZxLuDyBfoWg7krHgo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463473; c=relaxed/simple; bh=tezOgqUzj0tSXoXYQjHFEksrNNxWPEqwWsTkjEPBchw=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n0FOWleJ5QWsDTE4O98yCxx97ObokreaX73Jfd2pIqa7RH5HsKc9APMlZz6KAzZUotO1Ty62UPha5WxeecdQgi0A5O7sJi6t01qremZ0MZfbORNGtD/mkm7T8MTU7dU6HBUMkpxDBHabUWqy4iz20w1t8/XAVJl/gvxZCblHPkM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OJRKjd+v; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OJRKjd+v" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-23633a6ac50so33297925ad.2 for ; Fri, 20 Jun 2025 16:51:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750463471; x=1751068271; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=A/sf8SbFL98/l1BPYcZBxqcTMjZT2nYTK7eVnC4HqoA=; b=OJRKjd+vEtOIj/VTKrcKk3QRJQogP3WWpk4oCMo8rsxSvUVj5P16V+qfDgpWE1MQLR hGttKZgOwCMc/8MaC3rLAG5htTZToo3AfFNfkMkCToGO/z4Wa3Gu73+wXODwW86+haDA vWq/EdELWq4US+elH8SMpLkq7jIhqnK1UpB3Spb5JE/Vx0goPCWHAxDowwjUCeQxvdZD L0f9i8oPbB8NuwQAKgBSzx3dMkPuMXy1wXre+bfsU7pwlh2DXvYUB2MsUraxYDQBMmJO kIZ1KL3NlgK+qeFhdCcKTTIv1d83o8ODJNpZlfzOc7PVgPdMYgcNOXFz3dqUp6rQIfhu UT8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750463471; x=1751068271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A/sf8SbFL98/l1BPYcZBxqcTMjZT2nYTK7eVnC4HqoA=; b=DxcWnFdbeNN8mf5kBvMdv6xFLpQiQzMAWMNa+vEG30lwB6xZhP1p9KtIzzhHAn3Iab syauYAyGnVGCIdxWr7RRZflGZ5eNNfl/bnowvlxtpmXNU9CYd9b8LbhNoYXPjpojuRXr 2VMVOmNLAZ1EkYy0JZVB8ZjbzVCHqFDWh8RN80HFVRtJIVFbMxY9wSv4pHMU6d+1HsuX F4qKMnmNomkWw5MrrMxbYV9qSjWxJTWwcjQqRc9615NyN6fl8kUA3GhtJtdxdkh7AeNv /KPwhZmTJq2tsoLBo3ACsvb8ofPBAcNuoAYGdizZ9dg+/iZfHKTiqfio1khE20kHAPr8 f5rg== X-Forwarded-Encrypted: i=1; AJvYcCWCZ7ho/cad2eGDa8dbSRmb3YwMILeJB1/eYSdi97g/WvwVHwebE5hEYFjGJPz8cdN5DBfriOIDqfKwAvs=@vger.kernel.org X-Gm-Message-State: AOJu0YysKl3Dx1bK3afFyrH2QJyZd3Hh8drDUcD1sSHyG0nVldGFTxkj yAzofBErmMV6x3QhDcSJ5aRs73z3pUJC6mTR6XLlxfoR53HKrPjzgvKE X-Gm-Gg: ASbGncvI9yp8iWSf04/kfmbIr13SGGypoPLv5bui0Qpccyz4z0oCjIp8qnlHCOeagX6 V8qSQsqO8lEUQvYG4Ky3/g76m2x+tyPKhGrCpxsUjD7o5hMe3QkDYnMr24vsiWsWlA4N4fKL1qA TYAkO1EwekLwNqV5UovljhDtm4YQ8NBzDumDEVclSxz843fGzobtRmrtDCeyRjowoYQxyH/ZylE 700d5bPf0Q0OqXOZImcdKh6KzeWbZA6B7zyu5AeMDB/xhAYl+Iv2XD9nHKPR3GcoYFXWgJ9/qI5 rjPlu0MrTQe/zGl7Mfdj9ej2QvNE8pMe1LHhKQx7YvvWbChzomhic6BtLU02abH1KmIC9hOeQiF Q8habozucwrUf4cloN1Df X-Google-Smtp-Source: AGHT+IFvpIeAyqoZmp4SoLpGagaWJW0y7zfMsAUf01waB/2UFM4r/d7TohfyBmPEFSr+3rivC9nOtw== X-Received: by 2002:a17:902:d50a:b0:236:748f:541f with SMTP id d9443c01a7336-237d9891ca5mr74419055ad.33.1750463471427; Fri, 20 Jun 2025 16:51:11 -0700 (PDT) Received: from localhost (212.18.125.34.bc.googleusercontent.com. [34.125.18.212]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-237d86635e0sm27040475ad.157.2025.06.20.16.51.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 16:51:11 -0700 (PDT) From: Chia-I Wu To: Boris Brezillon , Steven Price , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] panthor: save panthor_file in panthor_group Date: Fri, 20 Jun 2025 16:50:51 -0700 Message-ID: <20250620235053.164614-3-olvaffe@gmail.com> X-Mailer: git-send-email 2.50.0.714.g196bf9f422-goog In-Reply-To: <20250620235053.164614-1-olvaffe@gmail.com> References: <20250620235053.164614-1-olvaffe@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We would like to access panthor_file from panthor_group on gpu errors. Because panthour_group can outlive drm_file, add refcount to panthor_file to ensure its lifetime. Signed-off-by: Chia-I Wu --- drivers/gpu/drm/panthor/panthor_device.h | 16 ++++++++++++++++ drivers/gpu/drm/panthor/panthor_drv.c | 15 ++++++++++++++- drivers/gpu/drm/panthor/panthor_mmu.c | 1 + drivers/gpu/drm/panthor/panthor_sched.c | 6 ++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/pan= thor/panthor_device.h index 4fc7cf2aeed57..75ae6fd3a5128 100644 --- a/drivers/gpu/drm/panthor/panthor_device.h +++ b/drivers/gpu/drm/panthor/panthor_device.h @@ -256,8 +256,24 @@ struct panthor_file { =20 /** @stats: cycle and timestamp measures for job execution. */ struct panthor_gpu_usage stats; + + /** @refcount: ref count of this file */ + struct kref refcount; }; =20 +static inline struct panthor_file *panthor_file_get(struct panthor_file *p= file) +{ + kref_get(&pfile->refcount); + return pfile; +} + +void panthor_file_release(struct kref *kref); + +static inline void panthor_file_put(struct panthor_file *pfile) +{ + kref_put(&pfile->refcount, panthor_file_release); +} + int panthor_device_init(struct panthor_device *ptdev); void panthor_device_unplug(struct panthor_device *ptdev); =20 diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/pantho= r/panthor_drv.c index 775a66c394544..aea9609684b77 100644 --- a/drivers/gpu/drm/panthor/panthor_drv.c +++ b/drivers/gpu/drm/panthor/panthor_drv.c @@ -1393,6 +1393,16 @@ static int panthor_ioctl_set_user_mmio_offset(struct= drm_device *ddev, return 0; } =20 +void panthor_file_release(struct kref *kref) +{ + struct panthor_file *pfile =3D + container_of(kref, struct panthor_file, refcount); + + WARN_ON(pfile->vms || pfile->groups); + + kfree(pfile); +} + static int panthor_open(struct drm_device *ddev, struct drm_file *file) { @@ -1426,6 +1436,8 @@ panthor_open(struct drm_device *ddev, struct drm_file= *file) if (ret) goto err_destroy_vm_pool; =20 + kref_init(&pfile->refcount); + file->driver_priv =3D pfile; return 0; =20 @@ -1442,10 +1454,11 @@ panthor_postclose(struct drm_device *ddev, struct d= rm_file *file) { struct panthor_file *pfile =3D file->driver_priv; =20 + /* destroy vm and group handles now to avoid circular references */ panthor_group_pool_destroy(pfile); panthor_vm_pool_destroy(pfile); =20 - kfree(pfile); + panthor_file_put(pfile); } =20 static const struct drm_ioctl_desc panthor_drm_driver_ioctls[] =3D { diff --git a/drivers/gpu/drm/panthor/panthor_mmu.c b/drivers/gpu/drm/pantho= r/panthor_mmu.c index b39ea6acc6a96..ccbcfe11420ac 100644 --- a/drivers/gpu/drm/panthor/panthor_mmu.c +++ b/drivers/gpu/drm/panthor/panthor_mmu.c @@ -1604,6 +1604,7 @@ void panthor_vm_pool_destroy(struct panthor_file *pfi= le) =20 xa_destroy(&pfile->vms->xa); kfree(pfile->vms); + pfile->vms =3D NULL; } =20 /** diff --git a/drivers/gpu/drm/panthor/panthor_sched.c b/drivers/gpu/drm/pant= hor/panthor_sched.c index a2248f692a030..485072904cd7d 100644 --- a/drivers/gpu/drm/panthor/panthor_sched.c +++ b/drivers/gpu/drm/panthor/panthor_sched.c @@ -535,6 +535,9 @@ struct panthor_group { /** @ptdev: Device. */ struct panthor_device *ptdev; =20 + /** @pfile: File this group is created from. */ + struct panthor_file *pfile; + /** @vm: VM bound to the group. */ struct panthor_vm *vm; =20 @@ -919,6 +922,7 @@ static void group_release_work(struct work_struct *work) panthor_kernel_bo_destroy(group->syncobjs); =20 panthor_vm_put(group->vm); + panthor_file_put(group->pfile); kfree(group); } =20 @@ -3467,6 +3471,8 @@ int panthor_group_create(struct panthor_file *pfile, INIT_WORK(&group->tiler_oom_work, group_tiler_oom_work); INIT_WORK(&group->release_work, group_release_work); =20 + group->pfile =3D panthor_file_get(pfile); + group->vm =3D panthor_vm_pool_get_vm(pfile->vms, group_args->vm_id); if (!group->vm) { ret =3D -EINVAL; --=20 2.50.0.714.g196bf9f422-goog From nobody Thu Oct 9 02:12:50 2025 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 50336245032 for ; Fri, 20 Jun 2025 23:51:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463474; cv=none; b=e6vj+dqG7ZcqW0jMvlSbrR5lFLYAbw5/0avIh+2UuKI7wJDNv+lcDkVBDjaY7uiFEY1mEXG4cPQCecYknubFKgog9pJP2dGa24y4ojm5zKtQNtjcW5qJnw2iG8q41A3owcb5N3nK7bJhIDFMihENcdv7GZHZA5TtAeQ541jwMMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463474; c=relaxed/simple; bh=Cj4zKs7DnKWZkJpMc8mYNlJXa1wT5pxYJ23w3j6yLXQ=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YyKFDIeMl5pFie0l5xnTJVfI8W+cUJ5vkXLMyzKMjDyp87bBRBKAucGgm71S1i6VRikxJxiX8w+N72PXvXwWtmpB4cnEiWqr0O3LHYR8dbemHvZ0QA3CM36ySXthJe3Jz9QV7KiT3W9wDW26RSoIRUCAlMDyOgwMy7/D6lnUfOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ga46vXhP; arc=none smtp.client-ip=209.85.215.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ga46vXhP" Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-b31e0ead80eso1660195a12.0 for ; Fri, 20 Jun 2025 16:51:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750463472; x=1751068272; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=BJggbDFgahoVLzRwsUM10ANDxacsIIZurnN1KGmwE8c=; b=Ga46vXhPSSh5FRbL7bpkzoIhnMQ0/XFgXrDOZFDo64P0ieniLi19haTYLgwnbf9Rsh U3edu2Zp4H2KNHssZXbbLeN02Zy6RATT6f4fKa7V1q/tGiqxLYmFslUEwVrwDDDANCgC YeXceUNCu9h/YlHdjLEpPRf4guolrLEAkBcG0s5659AdNOK0zgMXlzoLgRQgc7f9OdcH kh2TEvgq4JqeN421ayiRzhuDdgqxykLuBYu23jdzj6t9leqzQg22Jtbqe0vqefWC+l0V QEDh6iET4Ak/Y7T/Qb5QgR09C9df7m3VfivtBhrOmUz4A/Gfk3+Dl7VbUSK4kgIDc4/1 WZXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750463472; x=1751068272; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BJggbDFgahoVLzRwsUM10ANDxacsIIZurnN1KGmwE8c=; b=oXe8ufRgb8wHo5fJ2cV/0bYx/3RW0/ajTXOLlRFBc/KxUo9AbNWJTpG7Qvta8xcSmK YdDJZQdJ9NLBABceVbIIjwxH0Lt98NYOzP78oeyVs5Pp5HT4z47wuBil9T/NmpttoGXj v5yaaLJngm3+yapBl9VpjHwLv+ApKB7RTTVQZCJgoHogAc0AQPGlYazLVhEMS0gJexOn W3YVpE76f2iN0Jvzj8/wMmHl8gaJX2/VioNBKqIxponj45K2XS04nT5UFkU0oEGNujuk E0lO5PMiAY4GuSyDTt9vdOZD2M8ztzjzt/UB8P7TudZ+0xWrqA5AOEcIcM4JrV2LS/Uh oSWw== X-Forwarded-Encrypted: i=1; AJvYcCXlwGf4dYABuuWOHAzPKGqsZph8sMiONyf8EdnMmhaf6W11Z2HqLvEgKMA4LPdEai9VSd5cmyuQo+WDLRk=@vger.kernel.org X-Gm-Message-State: AOJu0YwYIUdyQRsvSDCF812NjPhiFVb+sstgN+/fAsQTmSt/2omx2W5E ofodzGM6umA1WEXck469nzqqhJabIhBvmO5yQ51b2D9xHtpJAkV/S0HA X-Gm-Gg: ASbGncu+Zlb1fDoksQB/zknYriY7UtJyYdBvdspBB9nPtw4/aMBnyLF9AgVXxP5QhVE 81z7nTM9bfhZ/vi13lPhwYQ/ekcNZgTGZNj7JOXvrsA6XOl/arJUWLdId3k4HSVdfe7n5uM0ZjB iaYCEHpVlE5k2RzHP5GPQlbFmo/RIE9nXv/k+otIB+6LS8tzFCaNCF6mC8occx0AGHClJvlBpLk rhe4/RIoyuRC7EmiGvBMyjc5XzjOQcNrz/+4cGcU5JYa/CYOE76/MoA9dcuJlCnbGl9vPOaxabJ lFuGchLQ8yHUl6uUr1XQlrOYaSt1FQTFEvQ27+tzBhOGzT2d75Dsoh1NJX/7l5NVy+84NZtGC0T 7TMxFUfSxpBLABDn3ngEV X-Google-Smtp-Source: AGHT+IE7Gf80YdauKTLlHJx/1691HQ/ZMJ5S0nDnn5dolZyGBOPtHMDrQVVP52dMvXnCzNmlqpoDlQ== X-Received: by 2002:a17:90b:1f83:b0:310:8d4a:a246 with SMTP id 98e67ed59e1d1-3159d62bf7amr6819332a91.1.1750463472562; Fri, 20 Jun 2025 16:51:12 -0700 (PDT) Received: from localhost (212.18.125.34.bc.googleusercontent.com. [34.125.18.212]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-237d8608e24sm27699585ad.127.2025.06.20.16.51.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 16:51:12 -0700 (PDT) From: Chia-I Wu To: Boris Brezillon , Steven Price , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] panthor: save task pid and comm in panthor_file Date: Fri, 20 Jun 2025 16:50:52 -0700 Message-ID: <20250620235053.164614-4-olvaffe@gmail.com> X-Mailer: git-send-email 2.50.0.714.g196bf9f422-goog In-Reply-To: <20250620235053.164614-1-olvaffe@gmail.com> References: <20250620235053.164614-1-olvaffe@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We would like to report them on gpu errors. Signed-off-by: Chia-I Wu --- drivers/gpu/drm/panthor/panthor_device.h | 6 ++++++ drivers/gpu/drm/panthor/panthor_drv.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/pan= thor/panthor_device.h index 75ae6fd3a5128..8c31c1d4296b6 100644 --- a/drivers/gpu/drm/panthor/panthor_device.h +++ b/drivers/gpu/drm/panthor/panthor_device.h @@ -257,6 +257,12 @@ struct panthor_file { /** @stats: cycle and timestamp measures for job execution. */ struct panthor_gpu_usage stats; =20 + /** @pid: pid of the task created this file */ + pid_t pid; + + /** @comm: comm of the task created this file */ + char *comm; + /** @refcount: ref count of this file */ struct kref refcount; }; diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/pantho= r/panthor_drv.c index aea9609684b77..b9d86b86591db 100644 --- a/drivers/gpu/drm/panthor/panthor_drv.c +++ b/drivers/gpu/drm/panthor/panthor_drv.c @@ -1400,6 +1400,7 @@ void panthor_file_release(struct kref *kref) =20 WARN_ON(pfile->vms || pfile->groups); =20 + kfree(pfile->comm); kfree(pfile); } =20 @@ -1408,6 +1409,7 @@ panthor_open(struct drm_device *ddev, struct drm_file= *file) { struct panthor_device *ptdev =3D container_of(ddev, struct panthor_device= , base); struct panthor_file *pfile; + struct task_struct *task; int ret; =20 pfile =3D kzalloc(sizeof(*pfile), GFP_KERNEL); @@ -1436,6 +1438,13 @@ panthor_open(struct drm_device *ddev, struct drm_fil= e *file) if (ret) goto err_destroy_vm_pool; =20 + task =3D get_pid_task(rcu_access_pointer(file->pid), PIDTYPE_PID); + if (task) { + pfile->pid =3D task->pid; + pfile->comm =3D kstrdup(task->comm, GFP_KERNEL); + put_task_struct(task); + } + kref_init(&pfile->refcount); =20 file->driver_priv =3D pfile; --=20 2.50.0.714.g196bf9f422-goog From nobody Thu Oct 9 02:12:50 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 625762472A2 for ; Fri, 20 Jun 2025 23:51:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463477; cv=none; b=X3oEBuBvAHOdglM3MeObGzn2jlmTGlw8Cwuc9iOtMOfhqcUqnSwTeuidn8u7vsU+tMebC2omsob0ATJXoSlWH74CmiwOaAKQxWKAxSnlKWNcpYyuZpSurD0YfYbXp1SNJvTNJVjwhy7NYVQeEYdq6j8LROdksE/VDI7IcKVr5pk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750463477; c=relaxed/simple; bh=rXVwxZWJoCB2oz5CkHpcJBFbu6LRZ/lYVk7OW6Ml4iw=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A49afeNTPddgzgU+jcIQ82bivSIGRZIg+FwOy8SBosO7tz0fZoRj3TQ2OhmTxnU3osZ4WXKJZYumNtSQijm+DlX4We1Pcb9vCXNf/Uh4FNz89obUq3smb6cyu3R+5JcnAUTbng52Kr1lI5H1LQ1GObOO8VqkAA8RMBTNUUg76U0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GlL3Jm7Z; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GlL3Jm7Z" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-235ea292956so26029855ad.1 for ; Fri, 20 Jun 2025 16:51:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750463473; x=1751068273; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5vvox43cD9NYrsjyf5GKXqlmstOaekHhc5zLK9+dlWE=; b=GlL3Jm7ZvVqqLrGfT0p8QlaGk6A7GrnN6hLQwpVgw+EwWhVvfQ86gm7+mIvEJK1C6h bH9pdbXzBKnDXq3I9oxL4GlO3nGNTANnXPl2jSvG9LGagzXF3Xls4cTJV4Nn/uO/tQIk oLMa4kHAwp9QWxbeytIc2+9wOkn7E3f43lHngn03XdidgdofSZuVR5IUHwfSXa6etzLA sQVs4TC7XOcrsOj2iyfaxmwQMUrwt2gZ1Gk68l5cp7B5N588OT0Sgb1vGnmkKX+AXMVb XMFPBj9JC028TRYrEfVtNcN06oxO4D8cMwnFmXL4qfR5EtBvgSS2nyBnbXBcqUSZYYHa l7ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750463473; x=1751068273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5vvox43cD9NYrsjyf5GKXqlmstOaekHhc5zLK9+dlWE=; b=O8It+RxqaIViiwXA4oJCHzSmqGB1hkbDXd0Qpx0a/l8apm3ALjUJk45YfsTk8lhFVB k1TvKEBrCfF6YCZ9aqAC0Hz1+f7jS6NHyhyiPBM7zaRUj9BmlSyqpayfyV88d3LKF2sW VmY+2r1cINxnEL+dJEEtu45NSTDl+/r/0UE9MPW4WBmEJCvH1+ZNM664DiiLbpdbYaoj ecyRBD6FM5Nxh8uPCKuwfHio45pXzdvl2NRAaVK6C7YLkIj3aF7AW9TT0W6KhYVKhhii miHBxzLt15YQKk0fNuFOmfcQ8hJJ7NedVY74JFzSuWCrM8Kk4zvQcF1slKbqESXgl4kL lklg== X-Forwarded-Encrypted: i=1; AJvYcCWnq+6WAntucICN5ACganEnotmCXwdfpqghqg/nGvZ14YVT+0vbeGCdyvBXrzL6oxjFir+tKkxiJU9M0Kw=@vger.kernel.org X-Gm-Message-State: AOJu0Yxd3nHGP9wpN3UvipVOw/6x8xW27txALuJZG5+YGZ845BzVBdof hYzu4aRXggRMDbvq3dM0DiWmV4PNwXR24aKG3L1LxOQcNWoHkqxTStQ0zfFLOpL6 X-Gm-Gg: ASbGncv275d+7mZ2QplO6L9kEMVHza7YFGvX23PPjpI8bgI45DmBYIOltushTRBbwij HW6zUc1C/CxeXyPDa/S2BlikqoV8zNK/PxfBfP1F7J+6ebaS4kNyFS3IrHN2+Gj2NT7IH9/A09Z +2Iay16mF4ycPgcH5m35i43+sgOLYc0DwVsvjInqn3hHc4EzYESKXwnG4xT7cjyr8zJFDioCkCS 86zw+0xLMoArOSBxQQ/viaAsvQpxbJtF5Tkp6oT9f5K+8iZ0LBbnr3widYkS0NNzOEtKRoz32z3 VwunRXOYkhc/UaWk6LD6Z1yGyP1+Nm3muT8TrEwsRZgnDVzJuq7n2YCKmoL3uH29PRJZd0KD8AC kNg7Qo6gQjWzaQUJ4x3kD05TGDG5dg7k= X-Google-Smtp-Source: AGHT+IEG79oOLnu9PJ+AZ0fBSiD3lvfh6w0jAZd3L7P7KwYuJo5rGFZkWrNOQGbpSZwQOidQim91Kg== X-Received: by 2002:a17:902:ea0c:b0:235:e71e:a37b with SMTP id d9443c01a7336-237d99bcf92mr70013385ad.34.1750463473536; Fri, 20 Jun 2025 16:51:13 -0700 (PDT) Received: from localhost (212.18.125.34.bc.googleusercontent.com. [34.125.18.212]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-237d86d5ea7sm26670035ad.206.2025.06.20.16.51.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 16:51:13 -0700 (PDT) From: Chia-I Wu To: Boris Brezillon , Steven Price , Liviu Dudau , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] panthor: dump task pid and comm on gpu errors Date: Fri, 20 Jun 2025 16:50:53 -0700 Message-ID: <20250620235053.164614-5-olvaffe@gmail.com> X-Mailer: git-send-email 2.50.0.714.g196bf9f422-goog In-Reply-To: <20250620235053.164614-1-olvaffe@gmail.com> References: <20250620235053.164614-1-olvaffe@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It is useful to know which tasks cause gpu errors. Signed-off-by: Chia-I Wu --- drivers/gpu/drm/panthor/panthor_sched.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/panthor/panthor_sched.c b/drivers/gpu/drm/pant= hor/panthor_sched.c index 485072904cd7d..f44cf95e8f1d1 100644 --- a/drivers/gpu/drm/panthor/panthor_sched.c +++ b/drivers/gpu/drm/panthor/panthor_sched.c @@ -1359,8 +1359,12 @@ cs_slot_process_fatal_event_locked(struct panthor_de= vice *ptdev, fatal =3D cs_iface->output->fatal; info =3D cs_iface->output->fatal_info; =20 - if (group) + if (group) { + drm_warn(&ptdev->base, "CS_FATAL: pid=3D%d, comm=3D%s\n", + group->pfile->pid, group->pfile->comm); + group->fatal_queues |=3D BIT(cs_id); + } =20 if (CS_EXCEPTION_TYPE(fatal) =3D=3D DRM_PANTHOR_EXCEPTION_CS_UNRECOVERABL= E) { /* If this exception is unrecoverable, queue a reset, and make @@ -1420,6 +1424,11 @@ cs_slot_process_fault_event_locked(struct panthor_de= vice *ptdev, spin_unlock(&queue->fence_ctx.lock); } =20 + if (group) { + drm_warn(&ptdev->base, "CS_FAULT: pid=3D%d, comm=3D%s\n", + group->pfile->pid, group->pfile->comm); + } + drm_warn(&ptdev->base, "CSG slot %d CS slot: %d\n" "CS_FAULT.EXCEPTION_TYPE: 0x%x (%s)\n" @@ -1636,11 +1645,16 @@ csg_slot_process_progress_timer_event_locked(struct= panthor_device *ptdev, u32 c =20 lockdep_assert_held(&sched->lock); =20 - drm_warn(&ptdev->base, "CSG slot %d progress timeout\n", csg_id); - group =3D csg_slot->group; - if (!drm_WARN_ON(&ptdev->base, !group)) + if (!drm_WARN_ON(&ptdev->base, !group)) { + drm_warn(&ptdev->base, + "CSG_PROGRESS_TIMER_EVENT: pid=3D%d, comm=3D%s\n", + group->pfile->pid, group->pfile->comm); + group->timedout =3D true; + } + + drm_warn(&ptdev->base, "CSG slot %d progress timeout\n", csg_id); =20 sched_queue_delayed_work(sched, tick, 0); } @@ -3222,7 +3236,8 @@ queue_timedout_job(struct drm_sched_job *sched_job) struct panthor_scheduler *sched =3D ptdev->scheduler; struct panthor_queue *queue =3D group->queues[job->queue_idx]; =20 - drm_warn(&ptdev->base, "job timeout\n"); + drm_warn(&ptdev->base, "job timeout: pid=3D%d, comm=3D%s, seqno=3D%llu\n", + group->pfile->pid, group->pfile->comm, job->done_fence->seqno); =20 drm_WARN_ON(&ptdev->base, atomic_read(&sched->reset.in_progress)); =20 --=20 2.50.0.714.g196bf9f422-goog