Re: [PATCH kernel] powerpc/dma: Fix dma_map_ops::get_required_mask
From: Alexey Kardashevskiy <hidden>
Date: 2021-09-29 08:49:02
On 09/09/2020 17:58, Christoph Hellwig wrote:
On Tue, Sep 08, 2020 at 11:10:03PM +1000, Alexey Kardashevskiy wrote:quoted
quoted
quoted
a-ha, this makes more sense, thanks. Then I guess we need to revert that one bit from yours f1565c24b596, do not we?Why? The was the original intent of the API, but now we also use internally to check the addressing capabilities.The bigger mask the better, no? As it is now, it's limited by the window size which happens to be bigger than 4GB but smaller then full 64bit (48bit on my system)Yes, the bigger mask is better. But I don't see why you'd want to revert the dma bypass code for that entirely.
Ok we have another victim of this change: https://github.com/torvalds/linux/blob/master/drivers/scsi/mpt3sas/mpt3sas_base.c#L3007 It calls dma_get_required_mask() to know "the mask that the platform requires to operate efficiently" (from dma-api.rst). The current upstream returns 31 for pseries which in no way is efficient, we can do better so we need this hunk back (but just this one): https://github.com/torvalds/linux/commit/f1565c24b5965dfd2352f209c417ff160be04db9#diff-18e87e1863bf902c6388d72ad99467b7fcec0dd37084636d96ad5a35a3e59904L156 (well, almost, move it above the !tbl check). This does not hit us on powernv/upstream as that returns 44 (or so) and the mpt3sas driver (which does the right thing afaict) just assumes that ">32" == ">=63". What do I miss here? Thanks, ps: https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20200908015106.79661-1-aik@ozlabs.ru/#2528801 is the rest of the thread I am replying to. -- Alexey