Re: [PATCH v3] iommu/dma: Use NUMA aware memory allocations in __iommu_dma_alloc_pages()

From: John Garry
Date: Wed Nov 21 2018 - 11:48:07 EST


On 21/11/2018 16:07, Will Deacon wrote:
On Wed, Nov 21, 2018 at 10:54:10PM +0800, John Garry wrote:
From: Ganapatrao Kulkarni <ganapatrao.kulkarni@xxxxxxxxxx>

Change function __iommu_dma_alloc_pages() to allocate pages for DMA from
respective device NUMA node. The ternary operator which would be for
alloc_pages_node() is tidied along with this.

We also include a change to use kvzalloc() for kzalloc()/vzalloc()
combination.

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@xxxxxxxxxx>
[JPG: Added kvzalloc(), drop pages ** being device local, tidied ternary operator]
Signed-off-by: John Garry <john.garry@xxxxxxxxxx>

Weird, you're missing a diffstat here.

Anyway, the patch looks fine to me, but it would be nice if you could
justify the change with some numbers. Do you actually see an improvement
from this change?


Hi Will,

Ah, I missed adding my comments explaining the motivation. It would be better in the commit log. Anyway, here's the snippet:

" ... as mentioned in [3], dma_alloc_coherent() uses the locality
information from the device - as in direct DMA - so this patch is just
applying this same policy.

[3] https://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1692998.html";

I did have some numbers to show improvement in some scenarios when I tested this a while back which I'll dig out.

However I would say that some scenarios will improve and the opposite for others with this change, considering different conditions in which DMA memory may be used.

Cheers,
John

Will

.