gpu: ion: Fix performance issue in faulting code
authorRebecca Schultz Zavin <rebecca@android.com>
Wed, 12 Jun 2013 22:22:16 +0000 (15:22 -0700)
committerColin Cross <ccross@android.com>
Thu, 19 Sep 2013 18:50:13 +0000 (13:50 -0500)
commitbbf5538ee0e4c30ba9b4556f9699ed5f31df67da
tree09468f71dd29ce2f392e4f527f0c25db2c03f2fe
parentae2b22e9b7a207d9392df5b5ec93b8c042d4b3ce
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>
drivers/gpu/ion/ion.c
drivers/gpu/ion/ion_cma_heap.c
drivers/gpu/ion/ion_heap.c
drivers/gpu/ion/ion_priv.h
drivers/gpu/ion/ion_system_heap.c