On 2025/11/21 14:43, Honglei Huang wrote:
On 2025/11/21 13:28, Akihiko Odaki wrote:
On 2025/11/21 14:21, Honglei Huang wrote:
On 2025/11/21 11:39, Akihiko Odaki wrote:
On 2025/11/21 12:14, Honglei Huang wrote:
On 2025/11/21 10:56, Akihiko Odaki wrote:
On 2025/11/21 11:47, Honglei Huang wrote:
Add support for the USE_USERPTR blob flag in virtio-gpu to enable
user pointer mapping for blob resources. This allows guest
applications
to use user-allocated memory for GPU resources more efficiently.
Changes include:
- Add VIRTIO_GPU_BLOB_FLAG_USE_USERPTR flag definition
- Enhance blob resource creation to handle userptr flag properly
- Remove arbitrary nr_entries limit (16384) in mapping creation
- Add conditional handling for userptr vs regular blob mapping
I don't see the added conditional handling.
Sorry, the additional handing is replaced by the fixing of value
check.
I will correct this commit message in the next version.
Not just the commit message, but it also questions the utility of
VIRTIO_GPU_BLOB_FLAG_USE_USERPTR and VIRTIO_GPU_F_RESOURCE_USERPTR.
Neither of them adds a new functionality. They should be dropped if
they are also replaced with the fix.
Yes totally agreed, it is my mistaken, I shouldn't mix the code for
fixing and the code for adding new features in one submission.
Actually this patch set are for another components upstream test, for
the sake of convenience, I have added both the fix and feature here,
that is a bad idea.
Will split the fix part into previous thread.
And for the check value fix thread, will send v4 as the final version.
Splitting fixes and features is a good idea, but that's not what I meant.
What I pointed out is that, it seems that one of the "features" you
are adding, namely VIRTIO_GPU_F_RESOURCE_USERPTR does nothing at at
all. So I'm wondering if you forgot to add a real implementation or
the feature is just no longer necessary.
Understood, actually the resource of flag VIRTIO_GPU_F_RESOURCE_USERPTR
just reuses the feature of VIRTIO_GPU_BLOB_MEM_GUEST: using the
virtio_gpu_create_mapping_iov function to map the iov from guest.
In qemu, the handing of VIRTIO_GPU_F_RESOURCE_USERPTR and
VIRTIO_GPU_BLOB_MEM_GUEST basically same.
The VIRTIO_GPU_F_RESOURCE_USERPTR is from guest userspace, but the
VIRTIO_GPU_BLOB_MEM_GUEST comes from guest kernel.
So in VIRTIO kernel and virglrenderer they are different, see VIRTIO
kerenl: [1], and virglrenderer: [2].
May I need to change the organizational form of this patch set?
[1]: https://lore.kernel.org/lkml/20251112074548.3718563-1-
[email protected]/
[2]: https://gitlab.freedesktop.org/virgl/virglrenderer/-/
merge_requests/1568/
diffs#14086999aaf57fc68a3d7d639ab280c3a2672430:~:text=if%20(args%2D%3Eblob_flags%20%26%20VIRGL_RENDERER_BLOB_FLAG_USE_USERPTR)%20%7B
Why does virglrenderer need to distinguish userspace and kernel?