Thread (24 messages) 24 messages, 4 authors, 2013-01-25

Re: [PATCH 7/8] mm: use vm_unmapped_area() on powerpc architecture

From: Michel Lespinasse <hidden>
Date: 2013-01-09 02:39:00
Also in: linux-mm, linuxppc-dev, lkml

On Tue, Jan 8, 2013 at 6:15 PM, Benjamin Herrenschmidt
[off-list ref] wrote:
On Tue, 2013-01-08 at 17:28 -0800, Michel Lespinasse wrote:
quoted
Update the powerpc slice_get_unmapped_area function to make use of
vm_unmapped_area() instead of implementing a brute force search.

Signed-off-by: Michel Lespinasse <redacted>

---
 arch/powerpc/mm/slice.c |  128 +++++++++++++++++++++++++++++-----------------
 1 files changed, 81 insertions(+), 47 deletions(-)
That doesn't look good ... the resulting code is longer than the
original, which makes me wonder how it is an improvement...
Well no fair, the previous patch (for powerpc as well) has 22
insertions and 93 deletions :)

The benefit is that the new code has lower algorithmic complexity, it
replaces a per-vma loop with O(N) complexity with an outer loop that
finds contiguous slice blocks and passes them to vm_unmapped_area()
which is only O(log N) complexity. So the new code will be faster for
workloads which use lots of vmas.

That said, I do agree that the code that looks for contiguous
available slices looks kinda ugly - just not sure how to make it look
nicer though.

-- 
Michel "Walken" Lespinasse
A program is never fully debugged until the last user dies.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help