Messages in this thread |  | | Date | Tue, 8 Jan 2013 18:38:56 -0800 | Subject | Re: [PATCH 7/8] mm: use vm_unmapped_area() on powerpc architecture | From | Michel Lespinasse <> |
| |
On Tue, Jan 8, 2013 at 6:15 PM, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote: > On Tue, 2013-01-08 at 17:28 -0800, Michel Lespinasse wrote: >> 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 <walken@google.com> >> >> --- >> 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.
|  |