From nobody Fri Apr 17 21:54:37 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 7080534A3A7 for ; Fri, 13 Feb 2026 12:08:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770984527; cv=none; b=FQRkeeBv211Uz/M3tmGL6/Ae7NQmscgB7c4RPD9JrgGKSoKX0KjvtQ0ChqWH4L85+i8MmaEcz98LAF0hmkPep+nv4IjeRdGpLeoc5HXdi0qbfsZmTTkcceop+X8uPDAPBLRb+l/H5RDD/ZAXXmO6XHEyZLYY5D1KVUrCrKg3XBc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770984527; c=relaxed/simple; bh=hrhddXnGGELn0tADwE41L42Y7rNs8xVGmMqf0p1zkmg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s/60Akgp//4gFFwzjBrgZG+2wb3COtzXScl5lLiQiz0Xppi1OsPODQhO9TVXKqmJSyDHLvb3txkoH9Mh8vkvcIrNaJ1Dtzke8S0xlkdk+SnUepPxYXC8aAAY6qPrn6wrRxP+0ZbRvPPMWrgORCLXa1lRe9VEfVDpG3a8DzAnsrU= 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=h4isRKmZ; arc=none smtp.client-ip=209.85.128.50 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="h4isRKmZ" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-482f2599980so9757675e9.0 for ; Fri, 13 Feb 2026 04:08:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770984525; x=1771589325; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hXJX7nXY8BjcdSOfqiZmvYAlq9sn8uCtkrmoZSGXdnE=; b=h4isRKmZtUn1wU3uw3d8xk1zDu6UP3YyZgulP/2vpvm4Xnu10P1Rri2BpWjdO+NSou 5oZAVnNlwexXH6GWwm99YbmMa0y2GvKByHPMGpTsLi2aRihxN4n0IbTQwbhFA0oTvE/V SadAhnZ6tWzO/MjhBIQOKPRa3pHE/3be7wZAkA276kYTfAtC2qf8fkmIPZXaIVf0zw8c t/irhvw5OasmW+UBHE8DREOAm3xGuyUCEcNhmBNHNLp3ciyAJJw/J0h/szxhgjoa69nm eRAy2ysKSoDZLWnkVg4SkMRQllvPPUAmE5w5JDfA/cUQLTDYv4ITWmUX5pECjJnStmv8 NQzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770984525; x=1771589325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hXJX7nXY8BjcdSOfqiZmvYAlq9sn8uCtkrmoZSGXdnE=; b=j059860CNamrDJQRGeqQ9vpxG5jlfYrI//GTyXhhw9ObTmd9V11+KtK4DkTwmbDzn/ imYqj3UmR7zufNtvetNXB8cY954aL2pnNQtED8MMvvh1rYNBmpTu7k5BwFkPFedHgnUr 8VuDhSvKyXMJpuBvTpkK7cXKx/sRTybE9os5tRkNwXKu6R024YkeKvFudbdzaY3VrWZG V8XpyrXdjXDKZqxZ9BeYDZroGIYC9Xv5XyrBokbvUhtwLa8GjJ3lD5x+Y+1xezcvHGSU EdvIw+WwdZxRN4aUtLnNhcPlzuTXmhn3BIYMsl8gzboAUMIiaPrAQ1JbRIH1Rdbp+OwG yoyQ== X-Forwarded-Encrypted: i=1; AJvYcCUTgD8IrztsZ/O+Anq4yXlbaT8zAokwgORpjRT8MHC9hbZP9mtTX2G4jX3ewtkqd1g6UySH6zljzuKAu3o=@vger.kernel.org X-Gm-Message-State: AOJu0YwfrmS0wIdp/rZwGtQ1hSidft9pkvph//kjL6D3v9LNR+cxo8F5 RF7Ox6ibxhUdOl3FeNuO7wLS2ZufQAmeNuffFjDRXLEc2kfhjuHQC3JU X-Gm-Gg: AZuq6aKcXSybjqv6ifpOvCg9woMkOvHFQUrEN9ROdKWanT87yv0xNEvwi8x8Me3Y7yp hSHRy7c3fofndPKIrEMzL4+e0q795Y5WNwG7mwOLH7FgX9sEvYyC62ncj5tOJeLVIH/PB3jTwzd 1Nr+iocBiGCMS368PFt9202g1SLuwQ3xDyHyMnfvUG/KB1BLNKBdUGEqgC4Awj8uDje5AjIEUbh R7lw6FFTX6RJGl/xBAmQGMtRwSOVuGMHmaiGABhiYo8crBMqC/ucgXpFcGgQoOcA2ofBE3Tor2z nsA5dib6TzqvF9PcGw8fzzlGqeyfZl9OTAUz0CSEFNjZfgCNP5p5fe6Hlagi1P+FzcjnMsoQ4VV /PI3ogjPKjcwKgh23jSAHmi7oUwyGj0MUgqutZvIMp8RqxT04nORyA+JHRonns8RhAc2K63DHgA dtFJy/K7jmhC/hZYPh55Vy9WdzIzULLqMzmXI/3qFybIFFVCti0Pbfy5hWT5QDlEjFS8jUsYf3N xJizVg= X-Received: by 2002:a05:600c:4f4b:b0:477:98f7:2aec with SMTP id 5b1f17b1804b1-48373a160b8mr29989545e9.3.1770984524690; Fri, 13 Feb 2026 04:08:44 -0800 (PST) Received: from Arch-Spectre.dur.ac.uk ([129.234.0.168]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4835d99497asm289274955e9.6.2026.02.13.04.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Feb 2026 04:08:44 -0800 (PST) From: Yicong Hui To: christian.koenig@amd.com Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org, david.hunter.linux@gmail.com, Yicong Hui Subject: [RFC PATCH v1 1/2] drm/syncobj: Add DRM_IOCTL_SYNCOBJ_QUERY_ERROR to query fence error status Date: Fri, 13 Feb 2026 12:08:34 +0000 Message-ID: <20260213120836.81283-2-yiconghui@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260213120836.81283-1-yiconghui@gmail.com> References: <20260213120836.81283-1-yiconghui@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" Add DRM_IOCTL_SYNCOBJ_QUERY_ERROR to allow userspace to query the error status of a fence held by a timeline/binary syncobj. Signed-off-by: Yicong Hui --- drivers/gpu/drm/drm_internal.h | 2 ++ drivers/gpu/drm/drm_ioctl.c | 2 ++ drivers/gpu/drm/drm_syncobj.c | 22 ++++++++++++++++++++++ include/uapi/drm/drm.h | 13 +++++++++++++ 4 files changed, 39 insertions(+) diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h index f893b1e3a596..d4d722983544 100644 --- a/drivers/gpu/drm/drm_internal.h +++ b/drivers/gpu/drm/drm_internal.h @@ -285,6 +285,8 @@ int drm_syncobj_timeline_signal_ioctl(struct drm_device= *dev, void *data, struct drm_file *file_private); int drm_syncobj_query_ioctl(struct drm_device *dev, void *data, struct drm_file *file_private); +int drm_syncobj_query_error_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_private); =20 /* drm_framebuffer.c */ void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent, diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index ff193155129e..61b114a6a65f 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -732,6 +732,8 @@ static const struct drm_ioctl_desc drm_ioctls[] =3D { DRM_IOCTL_DEF(DRM_IOCTL_MODE_LIST_LESSEES, drm_mode_list_lessees_ioctl, D= RM_MASTER), DRM_IOCTL_DEF(DRM_IOCTL_MODE_GET_LEASE, drm_mode_get_lease_ioctl, DRM_MAS= TER), DRM_IOCTL_DEF(DRM_IOCTL_MODE_REVOKE_LEASE, drm_mode_revoke_lease_ioctl, D= RM_MASTER), + DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_QUERY_ERROR, drm_syncobj_query_error_ioct= l, + DRM_RENDER_ALLOW), }; =20 #define DRM_CORE_IOCTL_COUNT ARRAY_SIZE(drm_ioctls) diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index 2d4ab745fdad..2152cd029070 100644 --- a/drivers/gpu/drm/drm_syncobj.c +++ b/drivers/gpu/drm/drm_syncobj.c @@ -1717,3 +1717,25 @@ int drm_syncobj_query_ioctl(struct drm_device *dev, = void *data, =20 return ret; } + +int drm_syncobj_query_error_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_private) +{ + struct drm_syncobj_error *args =3D data; + struct dma_fence *fence; + int ret; + + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ)) + return -EOPNOTSUPP; + + ret =3D drm_syncobj_find_fence(file_private, args->handle, args->point, 0= , &fence); + + if (ret) + return ret; + + args->error =3D fence->error; + + dma_fence_put(fence); + + return 0; +} diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index 27cc159c1d27..087c0f2120ec 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h @@ -1051,6 +1051,11 @@ struct drm_syncobj_timeline_array { __u32 flags; }; =20 +struct drm_syncobj_error { + __u32 handle; + __s32 error; + __u64 point; +}; =20 /* Query current scanout sequence number */ struct drm_crtc_get_sequence { @@ -1363,6 +1368,14 @@ extern "C" { */ #define DRM_IOCTL_GEM_CHANGE_HANDLE DRM_IOWR(0xD2, struct drm_gem_chang= e_handle) =20 +/** + * DRM_IOCTL_SYNCOBJ_QUERY_ERROR - Query the error code from a failed drm_= syncobj + * + * This ioctl provides userspace a way to query the error code of a binary= and + * timeline drm_syncobj in the case that the submission fails. + */ +#define DRM_IOCTL_SYNCOBJ_QUERY_ERROR DRM_IOWR(0xD3, struct drm_syncobj_er= ror) + /* * Device specific ioctls should only be in their respective headers * The device specific ioctl range is from 0x40 to 0x9f. --=20 2.53.0 From nobody Fri Apr 17 21:54:37 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 CF7AD340286 for ; Fri, 13 Feb 2026 12:08:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770984529; cv=none; b=rMShbEbcDl+tBAHzxgsjae4axEgYl3csnnGD+XTfsybzJbK7X7/87o413Xtsx+QrHD24xSyysuDv8UNOaNjnn1ZPGyDic6GEk7HBxNm0vcQRGkKd/na2lzySr+IIP8xYVrTG7et0bnZIHmb67OWLMpee4oYHdVAmIyLSn4ASTQg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770984529; c=relaxed/simple; bh=dc55B+Xl5Ato1kruG3mb1NUidLSUy6T/R48hDgeIV9w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iHRXckhQ4KnxDbbzE7Z4/XnkUp2rE8wkr2BXQRM182oAGj3cLtVoTjexyX2iQn9QF4uq2Jofpw0grXhJm6DejN+Cd29+g3ygfjBBjrpWNsF/2Iu9wslNrfkNGCB597/wbmOrMiz4vbMe4aAx/8phL+DhOJjHmdXq9qNUqFJZWhw= 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=CLa+dqS0; arc=none smtp.client-ip=209.85.128.47 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="CLa+dqS0" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-483487335c2so7812105e9.2 for ; Fri, 13 Feb 2026 04:08:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770984526; x=1771589326; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lJzdbyANzV6mkPuqznRpgXIWmGCXzKevIL9GAIcIe3k=; b=CLa+dqS0Z4TS2yr5FS80WPlvccRz3sWURdyePwGS7BAMRmyvZADZ0klA4bkJl4BN8F bJtvqJ012GhKfJdyo2QPQ0Z/zMaoYCgrZqB3GdUZm8EOWzrSxZ0b6gKX97WjI6s/ruc2 WYQ9Aqfl04KgRtcCTnkjpaNh/Ks9wFuLuaK6IRTaZR40jFFjgyQGkJoQ2omccMXpgzei FEcUuZ3ZbJNNWg7t0T5inytYW8n0+zTjISAB00M1iSIkI2xFwq9XKlidUivMA/C68/Vo ndBzCydRAiqVmpIZdZ0ts8BQ65jm1/tsVbzg0LLDx63007kH2JL4l8ukwbyF5nbZ3wEh 0dYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770984526; x=1771589326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lJzdbyANzV6mkPuqznRpgXIWmGCXzKevIL9GAIcIe3k=; b=FAb30abVH2mspMkSt3U676PUW61fMOe809KENqlzwWCcqsDv/7LUaL/+rczyLZA5Sn pAAqhRp7mVV7NPg19Q07zsZs2pMRPqTfknEXe9ENTNcDT6zA8irsw7dttz2YxhrexWyO vWb2sJo4HuNeyJ5mlV5iLhwX6nunTiWzWz9YWOmwj49fkJ155WHPUD9cjn6argwQaBby UUbqzMdMkM9aTzImCP1KQL4QowopTTz1JVM2WCxM7ypGE9zPB6aRN/GZoA7mYRAzjBvp cbzVGY1++RXkTuueyuz3Ui6lPgCJ7Cw1KYquHSenucLsZU4qOd7bZ+g5yokJb5Nq8olZ mUUw== X-Forwarded-Encrypted: i=1; AJvYcCWCac6OruEcmCotUZd6B54kwS3VOxA3YSm/t9Oqsi1WVxkxYXNeBQVfuHm18EPDv4tZSMM4n74RiR1S+jc=@vger.kernel.org X-Gm-Message-State: AOJu0YwVlTm/yJG5wC80PsJd/4wHAIsfmbjsP7Zidh4RSEGVWrYMvoqJ gFfiPcoHwFK+8Cw2V1I7AHV0whPoeM/ZuNkiHDgCYGVWjcnjZRWRIOFj X-Gm-Gg: AZuq6aIKJXnZ/tzLOaFvJ9v1ipFTdzspjx6MW8fNhO/qd6l0HIKSDt9mV6hl7UATT/d LK/6U3U1Pq0PEpQmrCTDbwe/QQ9a7RKXBFDAhkDkj73gWcR9wm6+snLs67bDNkynNkj2HgKGqT9 4c1S0OmX1VOGhWuUE2Yd4JoxG8vY1gvLgVijglELbZNk37GfH2a+yli/RwZGBIsIT3ENTV+uH+y JDallvdQ8Wyl3/+JqVZJDugveJ3suk5h+Gt4t0HMsBQpmV2oZ8fYVuLkmKYahWIE1Xh/BLIJSMk 5ko5K6TRalqmeWjfasQDkAjHxcBbMwlRLzdnh7qNOMOGwvK25uO9VzWJKFzPueRzEm5C/WLwlcA Tim2xcNVb0e/od5Dr02nQJZ87LcalN7ThLvEbHfDMYTmK3nzu6wapkq6Ne/UD9itXbe7aqU9u2d 6pDorXs+yflkBte4rAC1Wxf039G3FZKIPnjPW15f94g2jhDmQUiYMRlsOjQ7kLMrA/Mnml X-Received: by 2002:a05:600c:8b32:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-483739fc64fmr27276625e9.7.1770984526212; Fri, 13 Feb 2026 04:08:46 -0800 (PST) Received: from Arch-Spectre.dur.ac.uk ([129.234.0.168]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4835d99497asm289274955e9.6.2026.02.13.04.08.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Feb 2026 04:08:46 -0800 (PST) From: Yicong Hui To: christian.koenig@amd.com Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org, david.hunter.linux@gmail.com, Yicong Hui Subject: [RFC PATCH v1 2/2] drm/syncobj/doc: Remove starter task from todo list Date: Fri, 13 Feb 2026 12:08:35 +0000 Message-ID: <20260213120836.81283-3-yiconghui@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260213120836.81283-1-yiconghui@gmail.com> References: <20260213120836.81283-1-yiconghui@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Remove the starter task for adding DRM_IOCTL_SYNCOBJ_QUERY_ERROR ioctl. Signed-off-by: Yicong Hui --- Documentation/gpu/todo.rst | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index 520da44a04a6..8dcb1901142e 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -878,22 +878,6 @@ Contact: Javier Martinez Canillas =20 Level: Advanced =20 -Querying errors from drm_syncobj -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - -The drm_syncobj container can be used by driver independent code to signal -complection of submission. - -One minor feature still missing is a generic DRM IOCTL to query the error -status of binary and timeline drm_syncobj. - -This should probably be improved by implementing the necessary kernel inte= rface -and adding support for that in the userspace stack. - -Contact: Christian K=C3=B6nig - -Level: Starter - DRM GPU Scheduler =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.53.0