Message ID | 20190516162746.11636-1-tzimmermann@suse.de (mailing list archive) |
---|---|
Headers | show |
Series | Add BO reservation to GEM VRAM pin/unpin/push_to_system | expand |
Hi, > It turns out that the bochs and vbox drivers automatically reserved and > unreserved the BO from within their pin and unpin functions. The other > drivers; ast, hibmc and mgag200; performed reservation explicitly. With the > GEM VRAM conversion, automatic BO reservation within pin and unpin functions > accidentally got lost. So for bochs and vbox, ttm_bo_validate() worked on > unlocked BOs. > > This patch set fixes the problem by adding automatic reservation to the > implementation of drm_gem_vram_{pin,unpin,push_to_system}() to fix bochs > and vbox. It removes explicit BO reservation around the pin, unpin and > push-to-system calls in the ast, hibmc and mgag200 drivers. > > The only exception is the cursor handling of mgag200. In this case, the > mgag200 driver now calls drm_gem_vram_{pin,unpin}_reserved(), which works > with reserved BOs. The respective code should be refactored in a future > patch to work with the regular pin and unpin functions. Looks good, pushed to drm-misc-next. thanks, Gerd
On Fri, May 17, 2019 at 01:17:03PM +0200, Gerd Hoffmann wrote: > Hi, > > > It turns out that the bochs and vbox drivers automatically reserved and > > unreserved the BO from within their pin and unpin functions. The other > > drivers; ast, hibmc and mgag200; performed reservation explicitly. With the > > GEM VRAM conversion, automatic BO reservation within pin and unpin functions > > accidentally got lost. So for bochs and vbox, ttm_bo_validate() worked on > > unlocked BOs. > > > > This patch set fixes the problem by adding automatic reservation to the > > implementation of drm_gem_vram_{pin,unpin,push_to_system}() to fix bochs > > and vbox. It removes explicit BO reservation around the pin, unpin and > > push-to-system calls in the ast, hibmc and mgag200 drivers. > > > > The only exception is the cursor handling of mgag200. In this case, the > > mgag200 driver now calls drm_gem_vram_{pin,unpin}_reserved(), which works > > with reserved BOs. The respective code should be refactored in a future > > patch to work with the regular pin and unpin functions. > > Looks good, pushed to drm-misc-next. I have a bit of design review (replied to patch 1), would be great if either of you could address that as a follow up. Thanks, Daniel