All of lore.kernel.org
 help / color / mirror / Atom feed
* i915 and swiotlb_max_segment
@ 2021-05-10 15:25 ` Christoph Hellwig
  0 siblings, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2021-05-10 15:25 UTC (permalink / raw)
  To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi
  Cc: intel-gfx, iommu, dri-devel, Daniel Vetter, Konrad Rzeszutek Wilk

Hi all,

swiotlb_max_segment is a rather strange "API" export by swiotlb.c,
and i915 is the only (remaining) user.

swiotlb_max_segment returns 0 if swiotlb is not in use, 1 if
SWIOTLB_FORCE is set or swiotlb-zen is set, and the swiotlb segment
size when swiotlb is otherwise enabled.

i915 then uses it to:

 a) decided on the max order in i915_gem_object_get_pages_internal
 b) decide on a max segment size in i915_sg_segment_size

for a) it really seems i915 should switch to dma_alloc_noncoherent
or dma_alloc_noncontigous ASAP instead of using alloc_page and
streaming DMA mappings.  Any chance I could trick one of the i915
maintaines into doing just that given that the callchain is not
exactly trivial?

For b) I'm not sure swiotlb and i915 really agree on the meaning
of the value.  swiotlb_set_max_segment basically returns the entire
size of the swiotlb buffer, while i915 seems to use it to limit
the size each scatterlist entry.  It seems like dma_max_mapping_size
might be the best value to use here.

Once that is fixed I'd like to kill off swiotlb_max_segment as it is
a horribly confusing API.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-06-03 13:32 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-10 15:25 i915 and swiotlb_max_segment Christoph Hellwig
2021-05-10 15:25 ` [Intel-gfx] " Christoph Hellwig
2021-05-20 15:12 ` Konrad Rzeszutek Wilk
2021-05-20 15:12   ` [Intel-gfx] " Konrad Rzeszutek Wilk
2021-05-20 15:12   ` Konrad Rzeszutek Wilk
2021-06-03  8:40   ` Joonas Lahtinen
2021-06-03  8:40     ` [Intel-gfx] " Joonas Lahtinen
2021-06-03  8:40     ` Joonas Lahtinen
2021-06-03  9:17     ` [Intel-gfx] " Tvrtko Ursulin
2021-06-03  9:17       ` Tvrtko Ursulin
2021-06-03  9:17       ` Tvrtko Ursulin
2021-06-03 10:54       ` Robin Murphy
2021-06-03 10:54         ` Robin Murphy
2021-06-03 10:54         ` Robin Murphy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.