gpu: ion: Fix performance issue in faulting code
Previously the code to fault ion buffers in one page at a time had a performance problem caused by the requirement to traverse the sg list looking for the right page to load in (a result of the fact that the items in the list may not be of uniform size). To fix the problem, for buffers that will be faulted in, also keep a flat array of all the pages in the buffer to use from the fault handler. To recover some of the additional memory footprint this creates per buffer, dirty bits used to indicate which pages have been faulted in to the cpu are now stored in the low bit of each page struct pointer in the page array. Change-Id: I891b077dc0c88ed6d416b256626d8778fd67be84 Signed-off-by:Rebecca Schultz Zavin <rebecca@android.com> Git-commit: bbf5538ee0e4c30ba9b4556f9699ed5f31df67da Git-repo: https://android.googlesource.com/kernel/common/ [mitchelh@codeaurora.org: conflicts due to msm modifications. Changed a private dma API (__dma_page_cpu_to_dev) to public (ARM-specific) wrapper (arm_dma_ops.sync_single_for_device).] Signed-off-by:
Mitchel Humpherys <mitchelh@codeaurora.org>
Loading
Please register or sign in to comment