lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <IA0PR11MB71851C0607629875CC458A90F8A12@IA0PR11MB7185.namprd11.prod.outlook.com>
Date: Thu, 27 Mar 2025 07:14:56 +0000
From: "Kasireddy, Vivek" <vivek.kasireddy@...el.com>
To: Dmitry Osipenko <dmitry.osipenko@...labora.com>, David Airlie
	<airlied@...hat.com>, Gerd Hoffmann <kraxel@...hat.com>, Gurchetan Singh
	<gurchetansingh@...omium.org>, Chia-I Wu <olvaffe@...il.com>, "Pierre-Eric
 Pelloux-Prayer" <pierre-eric.pelloux-prayer@....com>
CC: "dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
	"virtualization@...ts.linux.dev" <virtualization@...ts.linux.dev>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"kernel@...labora.com" <kernel@...labora.com>
Subject: RE: [PATCH v1 2/2] drm/virtio: Fix missed dmabuf unpinning in error
 path of prepare_fb()

Hi Dmitry,

> Subject: Re: [PATCH v1 2/2] drm/virtio: Fix missed dmabuf unpinning in error
> path of prepare_fb()
> 
> On 3/26/25 08:14, Kasireddy, Vivek wrote:
> ...
> >>  static int virtio_gpu_plane_prepare_fb(struct drm_plane *plane,
> >>  				       struct drm_plane_state *new_state)
> >>  {
> >> @@ -376,23 +386,16 @@ static int virtio_gpu_plane_prepare_fb(struct
> >> drm_plane *plane,
> >>  		vgplane_st->fence = virtio_gpu_fence_alloc(vgdev,
> >>  						     vgdev->fence_drv.context,
> >>  						     0);
> >> -		if (!vgplane_st->fence)
> >> +		if (!vgplane_st->fence) {
> >> +			if (obj->import_attach)
> >> +				virtio_gpu_cleanup_imported_obj(obj);
> > I think checking for fence allocation failure before import would be much
> better.
> > In other words, cleaning up the fence in case of any import errors would be
> > much simpler IMO.
> >
> > Regardless,
> > Acked-by: Vivek Kasireddy <vivek.kasireddy@...el.com>
> 
> Another question, why do we need this fencing for imported dmabuf?
> Fencing isn't done host/guest blobs in this code, while dmabuf is
> essentially a guest blob. Could you please clarify why this fence is
> needed? Maybe we shouldn't allocate fence in the first place for the dmabuf.
At-least for the non-virgl use-cases (where the rendering is done in the Guest such
as in passthrough), this Guest/Host synchronization fence serves two purposes:
- It prevents the Guest from reusing/destroying the submitted buffer (Guest compositor
  FB) until the Host is done using it. Otherwise, the Guest compositor might render
  into this buffer at the same time while the Host is consuming it, leading to issues
  such as tearing/flickering. This problem is more noticeable in cases where the
  Guest compositor has only one backbuffer such as Xorg + dirtfyFb.

- It also prevents the Guest compositor from rendering faster than the Host refresh
  rate. In other words, it just sets the upper bound in terms of the buffer submission
  rate as there is no point in going over the Host refresh rate, which would likely
  lead to wastage of GPU cycles and dropped frames.

Therefore, this fence is really needed for Guest blobs including imported dmabufs.

Thanks,
Vivek

> 
> --
> Best regards,
> Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ