From: Sergio Lopez <slp@redhat.com>
To: virtio-comment@lists.linux.dev
Cc: gurchetansingh@chromium.org, dmitry.osipenko@collabora.com,
parav@nvidia.com, mst@redhat.com, Sergio Lopez <slp@redhat.com>
Subject: [PATCH v2] virtio-gpu: support blob alignment information
Date: Wed, 9 Apr 2025 17:23:24 -0400 [thread overview]
Message-ID: <20250409212324.18134-1-slp@redhat.com> (raw)
Allow the device to require certain alignment constrains for blob
resources by extending the device configuration with the field
"blob_alignment" and introducing the VIRTIO_GPU_F_BLOB_ALIGNMENT
feature.
v2:
- Clarify blob_alignment valid values (thanks Michael).
- Rephrase feature negotiation (thanks Michael).
Signed-off-by: Sergio Lopez <slp@redhat.com>
---
device-types/gpu/description.tex | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/device-types/gpu/description.tex b/device-types/gpu/description.tex
index 4435248..b3e75d3 100644
--- a/device-types/gpu/description.tex
+++ b/device-types/gpu/description.tex
@@ -37,6 +37,8 @@ \subsection{Feature bits}\label{sec:Device Types / GPU Device / Feature bits}
resources is supported.
\item[VIRTIO_GPU_F_CONTEXT_INIT (4)] multiple context types and
synchronization timelines supported. Requires VIRTIO_GPU_F_VIRGL.
+\item[VIRTIO_GPU_F_BLOB_ALIGNMENT (5)] configuration field
+ \field{blob_alignment} is valid. Requires VIRTIO_GPU_F_RESOURCE_BLOB.
\end{description}
\subsection{Device configuration layout}\label{sec:Device Types / GPU Device / Device configuration layout}
@@ -52,6 +54,7 @@ \subsection{Device configuration layout}\label{sec:Device Types / GPU Device / D
le32 events_clear;
le32 num_scanouts;
le32 num_capsets;
+ le32 blob_alignment;
};
\end{lstlisting}
@@ -67,6 +70,9 @@ \subsubsection{Device configuration fields}
supported by the device. Minimum value is 1, maximum value is 16.
\item[\field{num_capsets}] specifies the maximum number of capability
sets supported by the device. The minimum value is zero.
+\item[\field{blob_alignment}] specifies the minimal alignment, in bytes,
+ required by the device for resource blobs. The value must a power of
+ two. Minimum value is 1, maximum value is 4294967296.
\end{description}
\subsubsection{Events}
@@ -672,6 +678,9 @@ \subsubsection{Device Operation: controlq}\label{sec:Device Types / GPU Device /
resource. There is no restriction on the image/buffer view the driver
has on the blob resource.
+If VIRTIO_GPU_F_BLOB_ALIGNMENT has been negotiated, \field{size} must be
+aligned to \field{blob_alignment} as defined in the device configuration.
+
\item[VIRTIO_GPU_CMD_SET_SCANOUT_BLOB] sets scanout parameters for a
blob resource. Request data is
\field{struct virtio_gpu_set_scanout_blob}. Response type is
@@ -776,6 +785,10 @@ \subsubsection{Device Operation: controlq (3d)}\label{sec:Device Types / GPU Dev
};
\end{lstlisting}
+If VIRTIO_GPU_F_BLOB_ALIGNMENT has been negotiated, \field{padding} and
+\field{offset} must be aligned to \field{blob_alignment} as defined in the
+device configuration.
+
\item[VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB] unmaps a
host-only blob resource from the host visible memory region. Request data
is \field{struct virtio_gpu_resource_unmap_blob}. Response type is
--
2.49.0
next reply other threads:[~2025-04-10 13:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-09 21:23 Sergio Lopez [this message]
2025-04-10 13:38 ` [PATCH v2] virtio-gpu: support blob alignment information Michael S. Tsirkin
2025-04-10 17:12 ` Daniel Verkamp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250409212324.18134-1-slp@redhat.com \
--to=slp@redhat.com \
--cc=dmitry.osipenko@collabora.com \
--cc=gurchetansingh@chromium.org \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=virtio-comment@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.