diff options
author | Danilo Krummrich <dakr@redhat.com> | 2023-10-02 15:46:48 +0200 |
---|---|---|
committer | Danilo Krummrich <dakr@redhat.com> | 2023-10-04 00:10:18 +0200 |
commit | d59e75eef52d89201aaf5342a3ac23ddf3e9b112 (patch) | |
tree | 1afbf0272f482863b77a80163c1cc628ab6d7365 /include/uapi/drm | |
parent | bbe08a0e11ae76fc466c11b9fa6dd6eb52544a46 (diff) | |
download | linux-d59e75eef52d89201aaf5342a3ac23ddf3e9b112.tar.gz linux-d59e75eef52d89201aaf5342a3ac23ddf3e9b112.tar.bz2 linux-d59e75eef52d89201aaf5342a3ac23ddf3e9b112.zip |
drm/nouveau: exec: report max pushs through getparam
Report the maximum number of IBs that can be pushed with a single
DRM_IOCTL_NOUVEAU_EXEC through DRM_IOCTL_NOUVEAU_GETPARAM.
While the maximum number of IBs per ring might vary between chipsets,
the kernel will make sure that userspace can only push a fraction of the
maximum number of IBs per ring per job, such that we avoid a situation
where there's only a single job occupying the ring, which could
potentially lead to the ring run dry.
Using DRM_IOCTL_NOUVEAU_GETPARAM to report the maximum number of IBs
that can be pushed with a single DRM_IOCTL_NOUVEAU_EXEC implies that
all channels of a given device have the same ring size.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231002135008.10651-3-dakr@redhat.com
Diffstat (limited to 'include/uapi/drm')
-rw-r--r-- | include/uapi/drm/nouveau_drm.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h index 8d7402c13e56..eaf9f248619f 100644 --- a/include/uapi/drm/nouveau_drm.h +++ b/include/uapi/drm/nouveau_drm.h @@ -44,6 +44,16 @@ extern "C" { #define NOUVEAU_GETPARAM_PTIMER_TIME 14 #define NOUVEAU_GETPARAM_HAS_BO_USAGE 15 #define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16 + +/** + * @NOUVEAU_GETPARAM_EXEC_PUSH_MAX + * + * Query the maximum amount of IBs that can be pushed through a single + * &drm_nouveau_exec structure and hence a single &DRM_IOCTL_NOUVEAU_EXEC + * ioctl(). + */ +#define NOUVEAU_GETPARAM_EXEC_PUSH_MAX 17 + struct drm_nouveau_getparam { __u64 param; __u64 value; |