Am 24.06.21 um 10:12 schrieb Christoph Hellwig:
On Thu, Jun 24, 2021 at 10:07:14AM +0200, Christian König wrote:
The key point is that accessing the underlying pages even when DMA-bufs are backed by system memory is illegal. Daniel even created a patch which mangles the page pointers in sg_tables used by DMA-buf to make sure that people don't try to use them.
Which is another goddamn layering violation of a subsystem that has no business at all poking into the scatterlist structure, yes.
Completely agree, but it is also the easiest way to get away from the scatterlist as trasnport vehicle for the dma_addresses.
[SNIP]
My best plan to get out of this mess is that we change the DMA-buf interface to use an array of dma_addresses instead of the sg_table object and I have already been working on this actively the last few month.
Awesome! I have a bit of related work on the DMA mapping subsystems, so let's sync up as soon as you have some first sketches.
Don't start cheering to fast.
I've already converted a bunch of the GPU drivers, but there are at least 6 GPU still needing to be fixed and on top of that comes VA-API and a few others.
What are your plans for the DMA mapping subsystem?
Btw, one thing I noticed when looking over the dma-buf instances is that there is a lot of duplicated code for creating a sg_table from pages, and then mapping it. It would be good if we could move toward common helpers instead of duplicating that all over again.
Can you give an example?
Thanks, Christian.