Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1670425 > unrolled thread
| Started by | Gerd Hoffmann <kraxel@redhat.com> |
|---|---|
| First post | 2017-06-20 10:40 +0200 |
| Last post | 2017-06-21 09:30 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf operations Gerd Hoffmann <kraxel@redhat.com> - 2017-06-20 10:40 +0200
Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf operations Kirti Wankhede <kwankhede@nvidia.com> - 2017-06-20 16:00 +0200
Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf operations Gerd Hoffmann <kraxel@redhat.com> - 2017-06-21 09:30 +0200
| From | Gerd Hoffmann <kraxel@redhat.com> |
|---|---|
| Date | 2017-06-20 10:40 +0200 |
| Subject | Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf operations |
| Message-ID | <tUmRA-6dE-9@gated-at.bofh.it> |
Hi, > > Hmm, plane isn't really an ID, it is a type, with type being either > > DRM_PLANE_TYPE_PRIMARY or DRM_PLANE_TYPE_CURSOR, so I don't think > > the > > flage above make sense. > > The intention was that ..._REGION_ID and ...PLANE_ID are describing > what the vfio_device_query_gfx_plane.id field represents, either a > region index or a plane identifier. The type of plane would be > represented within the vfio_device_gfx_plane_info struct. The planes don't really have an id, we should rename that to plane_type, or maybe drm_plane_type (simliar to the drm_format_* fields), to avoid that confusion. plane_type is set by userspace to specify what kind of plane it asks for. > > Also I think it would be useful to have some way to figure the > > device > > capabilities as the userspace workflow will look quite different > > for > > the two cases. > > In the region case, VFIO_DEVICE_GET_REGION_INFO would include a > device > specific region with a hopefully common identifier to identify it as > a > graphics framebuffer. Ok, that should work to figure whenever the mdev supports a plane region or not. > In the dmabuf case,VFIO_DEVICE_QUERY_GFX_PLANE would indicate the > plane as a "plane ID" and some sort of > VFIO_DEVICE_GET_GFX_PLANE(VFIO_GFX_TYPE_DMABUF) ioctl would be > necessary to get a file descriptor to that plane. > > What else are you thinking we need? Thanks, I need to know whenever the mdev supports dmabufs or not, at device initialization time (because dmabufs require opengl support), when VFIO_DEVICE_QUERY_GFX_PLANE doesn't work due to the guest not having the device initialized yet. Maybe we should have a error field in the ioctl struct, or we need to clearly define error codes so the kernel doesn't just throw EINVAL in all cases. Or just a VFIO_DEVICE_GFX_CAPS ioctl which returns NONE, REGION or DMABUF. cheers, Gerd
[toc] | [next] | [standalone]
| From | Kirti Wankhede <kwankhede@nvidia.com> |
|---|---|
| Date | 2017-06-20 16:00 +0200 |
| Message-ID | <tUrRg-Tl-13@gated-at.bofh.it> |
| In reply to | #1670425 |
On 6/20/2017 2:05 PM, Gerd Hoffmann wrote: > Hi, > >>> Hmm, plane isn't really an ID, it is a type, with type being either >>> DRM_PLANE_TYPE_PRIMARY or DRM_PLANE_TYPE_CURSOR, so I don't think >>> the >>> flage above make sense. >> >> The intention was that ..._REGION_ID and ...PLANE_ID are describing >> what the vfio_device_query_gfx_plane.id field represents, either a >> region index or a plane identifier. The type of plane would be >> represented within the vfio_device_gfx_plane_info struct. > > The planes don't really have an id, we should rename that to > plane_type, or maybe drm_plane_type (simliar to the drm_format_* > fields), to avoid that confusion. > > plane_type is set by userspace to specify what kind of plane it asks > for. > Ok. so there should be two fields: - plane type : DRM_PLANE_TYPE_PRIMARY or DRM_PLANE_TYPE_CURSOR - id : fd for dmabuf or region index for region type Adding reply to Gerd's question from earlier mail: > What are the nvidia plane for cursor support btw? We don't support cursor for console vnc. Ideally console vnc should be used by admin for configuration or during maintenance, which refresh primary surface at low refresh rate, 10 fps. We recommend to use remoting solution for actual use. >>> Also I think it would be useful to have some way to figure the >>> device >>> capabilities as the userspace workflow will look quite different >>> for >>> the two cases. >> >> In the region case, VFIO_DEVICE_GET_REGION_INFO would include a >> device >> specific region with a hopefully common identifier to identify it as >> a >> graphics framebuffer. > > Ok, that should work to figure whenever the mdev supports a plane > region or not. > >> In the dmabuf case,VFIO_DEVICE_QUERY_GFX_PLANE would indicate the >> plane as a "plane ID" and some sort of >> VFIO_DEVICE_GET_GFX_PLANE(VFIO_GFX_TYPE_DMABUF) ioctl would be >> necessary to get a file descriptor to that plane. >> >> What else are you thinking we need? Thanks, > > I need to know whenever the mdev supports dmabufs or not, at device > initialization time (because dmabufs require opengl support), when > VFIO_DEVICE_QUERY_GFX_PLANE doesn't work due to the guest not having > the device initialized yet. > > Maybe we should have a error field in the ioctl struct, or we need to > clearly define error codes so the kernel doesn't just throw EINVAL in > all cases. > > Or just a VFIO_DEVICE_GFX_CAPS ioctl which returns NONE, REGION or > DMABUF. > Right we need to know this at device initialization time for both cases to initialize VGACommonState structure for that device and also need NONE to decide whether to init console vnc or not. We have a mechanism to disable console vnc path and we recommend to disable it for better performance. Thanks, Kirti > cheers, > Gerd >
[toc] | [prev] | [next] | [standalone]
| From | Gerd Hoffmann <kraxel@redhat.com> |
|---|---|
| Date | 2017-06-21 09:30 +0200 |
| Message-ID | <tUIfn-34h-13@gated-at.bofh.it> |
| In reply to | #1670790 |
Hi, > We don't support cursor for console vnc. Ideally console vnc should > be > used by admin for configuration or during maintenance, which refresh > primary surface at low refresh rate, 10 fps. But you surely want a mouse pointer for the admin? You render it directly to the primary surface then I guess? > Right we need to know this at device initialization time for both > cases > to initialize VGACommonState structure for that device Why do you need a VGACommonState? > and also need > NONE to decide whether to init console vnc or not. We have a > mechanism > to disable console vnc path and we recommend to disable it for better > performance. Hmm, maybe we should have a ioctl to configure the refresh rate, or a ioctl to allow qemu ask for a refresh when needed? qemu can throttle the display update rate, which for example happens in case no vnc client is connected. qemu updates the display only once every few seconds then. cheers, Gerd
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web