On Tue, Oct 08, 2013 at 04:12:02PM +0900, Minchan Kim wrote:
> On Tue, Oct 08, 2013 at 12:35:33AM -0400, KOSAKI Motohiro wrote:
> > (10/7/13 11:07 PM), Minchan Kim wrote:
> > >Hi KOSAKI,
> > >
> > >On Mon, Oct 07, 2013 at 10:51:18PM -0400, KOSAKI Motohiro wrote:
> > >>>Maybe, int madvise5(addr, length, MADV_DONTNEED|MADV_LAZY|MADV_SIGBUS,
> > >>>         &purged, &ret);
> > >>>
> > >>>Another reason to make it hard is that madvise(2) is tight coupled with
> > >>>with vmas split/merge. It needs mmap_sem's write-side lock and it hurt
> > >>>anon-vrange test performance much heavily and userland might want to
> > >>>make volatile range with small unit like "page size" so it's undesireable
> > >>>to make it with vma. Then, we should filter out to avoid vma split/merge
> > >>>in implementation if only MADV_LAZY case? Doable but it could make code
> > >>>complicated and lost consistency with other variant of madvise.
> > >>
> > >>I haven't seen your performance test result. Could please point out URLs?
> > >
> > >https://lkml.org/lkml/2013/3/12/105
> > 
> > It's not comparison with and without vma merge. I'm interest how much 
> > benefit
> > vmas operation avoiding have.
> 
> I had an number but lost it so I should set up it in my KVM machine :(
> And I needed old kernel 3.7.0 for testing vma-based approach.
> 
> DRAM:2G, CPU : 12 
> 
> kernel 3.7.0
> 
> jemalloc: 20527 records/s
> jemalloc vma based approach : 5360 records/s
> 
> vrange call made worse because every thread stuck with mmap_sem.
> 
> kernel 3.11.0
> 
> jemalloc: 21176 records/s
> jemalloc vroot tree approach: 103637 records/s
> 
> It could enhance 5 times.

And please keep in mind that vrange's user might want to small vrange
like PAGE_SIZE. If we go with vma-based approach, we would consume memory
with lots of vm_area_struct.

-- 
Kind regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to