lkml.org 
[lkml]   [2020]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v5 0/4] Allow bigger 64bit window by removing default DMA window
From
Date
Hello Michael,

Do you suggest any change for this patchset?
Any chance it can get in this merge window?

Best regards,
Leonardo Bras

On Wed, 2020-08-05 at 00:04 -0300, Leonardo Bras wrote:
> There are some devices in which a hypervisor may only allow 1 DMA window
> to exist at a time, and in those cases, a DDW is never created to them,
> since the default DMA window keeps using this resource.
>
> LoPAR recommends this procedure:
> 1. Remove the default DMA window,
> 2. Query for which configs the DDW can be created,
> 3. Create a DDW.
>
> Patch #1:
> Create defines for outputs of ibm,ddw-applicable, so it's easier to
> identify them.
>
> Patch #2:
> - After LoPAR level 2.8, there is an extension that can make
> ibm,query-pe-dma-windows to have 6 outputs instead of 5. This changes the
> order of the outputs, and that can cause some trouble.
> - query_ddw() was updated to check how many outputs the
> ibm,query-pe-dma-windows is supposed to have, update the rtas_call() and
> deal correctly with the outputs in both cases.
> - This patch looks somehow unrelated to the series, but it can avoid future
> problems on DDW creation.
>
> Patch #3 moves the window-removing code from remove_ddw() to
> remove_dma_window(), creating a way to delete any DMA window, so it can be
> used to delete the default DMA window.
>
> Patch #4 makes use of the remove_dma_window() from patch #3 to remove the
> default DMA window before query_ddw(). It also implements a new rtas call
> to recover the default DMA window, in case anything fails after it was
> removed, and a DDW couldn't be created.
>
> ---
> Changes since v4:
> - Removed patches 5+ in order to deal with a feature at a time
> - Remove unnecessary parentesis in patch #4
> - Changed patch #4 title from
> "Remove default DMA window before creating DDW"
> - Included David Dai tested-by
> - v4 link: http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=190051&state=%2A&archive=both
>
> Changes since v3:
> - Introduces new patch #5, to prepare for an important change in #6
> - struct iommu_table was not being updated, so include a way to do this
> in patch #6.
> - Improved patch #4 based in a suggestion from Alexey, to make code
> more easily understandable
> - v3 link: http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=187348&state=%2A&archive=both
>
> Changes since v2:
> - Change the way ibm,ddw-extensions is accessed, using a proper function
> instead of doing this inline everytime it's used.
> - Remove previous patch #6, as it doesn't look like it would be useful.
> - Add new patch, for changing names from direct* to dma*, as indirect
> mapping can be used from now on.
> - Fix some typos, corrects some define usage.
> - v2 link: http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=185433&state=%2A&archive=both
>
> Changes since v1:
> - Add defines for ibm,ddw-applicable and ibm,ddw-extensions outputs
> - Merge aux function query_ddw_out_sz() into query_ddw()
> - Merge reset_dma_window() patch (prev. #2) into remove default DMA
> window patch (#4).
> - Keep device_node *np name instead of using pdn in remove_*()
> - Rename 'device_node *pdn' into 'parent' in new functions
> - Rename dfl_win to default_win
> - Only remove the default DMA window if there is no window available
> in first query.
> - Check if default DMA window can be restored before removing it.
> - Fix 'unitialized use' (found by travis mpe:ci-test)
> - New patches #5 and #6
> - v1 link: http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=184420&state=%2A&archive=both
>
> Special thanks for Alexey Kardashevskiy, Brian King and
> Oliver O'Halloran for the feedback provided!
>
>
> Leonardo Bras (4):
> powerpc/pseries/iommu: Create defines for operations in
> ibm,ddw-applicable
> powerpc/pseries/iommu: Update call to ibm,query-pe-dma-windows
> powerpc/pseries/iommu: Move window-removing part of remove_ddw into
> remove_dma_window
> powerpc/pseries/iommu: Allow bigger 64bit window by removing default
> DMA window
>
> arch/powerpc/platforms/pseries/iommu.c | 242 ++++++++++++++++++++-----
> 1 file changed, 195 insertions(+), 47 deletions(-)
>

\
 
 \ /
  Last update: 2020-08-12 06:43    [W:0.192 / U:1.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site