Christoph Hellwig
2022-Jul-11 08:26 UTC
[Nouveau] susetting the remaining swioltb couplin in DRM
Hi i915 and nouveau maintainers, any chance I could get some help to remove the remaining direct driver calls into swiotlb, namely swiotlb_max_segment and is_swiotlb_active. Either should not matter to a driver as they should be written to the DMA API. In the i915 case it seems like the driver should use dma_alloc_noncontiguous and/or dma_alloc_noncoherent to allocate DMAable memory instead of using alloc_page and the streaming dma mapping helpers. For the latter it seems like it should just stop passing use_dma_alloc == true to ttm_device_init and/or that function should switch to use dma_alloc_noncoherent.
Rodrigo Vivi
2022-Jul-11 20:31 UTC
[Nouveau] susetting the remaining swioltb couplin in DRM
On Mon, Jul 11, 2022 at 10:26:14AM +0200, Christoph Hellwig wrote:> Hi i915 and nouveau maintainers, > > any chance I could get some help to remove the remaining direct > driver calls into swiotlb, namely swiotlb_max_segment and > is_swiotlb_active. Either should not matter to a driver as they > should be written to the DMA API.Hi Christoph, while we take a look here, could you please share the reasons behind sunsetting this calls?> > In the i915 case it seems like the driver should use > dma_alloc_noncontiguous and/or dma_alloc_noncoherent to allocate > DMAable memory instead of using alloc_page and the streaming > dma mapping helpers. > > For the latter it seems like it should just stop passing > use_dma_alloc == true to ttm_device_init and/or that function > should switch to use dma_alloc_noncoherent.
Hi! Sorry about the slow reply to this, been busy with a bunch of other pressing nouveau work lately. Anyway, the steps look pretty simple here so I can see if I can write up a patch shortly :) On Mon, 2022-07-11 at 10:26 +0200, Christoph Hellwig wrote:> Hi i915 and nouveau maintainers, > > any chance I could get some help to remove the remaining direct > driver calls into swiotlb, namely swiotlb_max_segment and > is_swiotlb_active.? Either should not matter to a driver as they > should be written to the DMA API. > > In the i915 case it seems like the driver should use > dma_alloc_noncontiguous and/or dma_alloc_noncoherent to allocate > DMAable memory instead of using alloc_page and the streaming > dma mapping helpers. > > For the latter it seems like it should just stop passing > use_dma_alloc == true to ttm_device_init and/or that function > should switch to use dma_alloc_noncoherent. >-- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat