Re: [PATCH] x86: enable RCU based table free when PARAVIRT

From: Kirill A. Shutemov
Date: Thu Aug 24 2017 - 04:47:59 EST


On Wed, Aug 23, 2017 at 04:03:53PM -0700, Linus Torvalds wrote:
> On Wed, Aug 23, 2017 at 3:36 PM, Kirill A. Shutemov
> <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
> >
> > Below is test cases that allocates a lot of page tables and measuare
> > fork/exit time. (I'm not entirely sure it's the best way to stress the
> > codepath.)
>
> Looks ok to me. Doing a profile (without the RCU freeing, obviously) gives me
>
> 0.77% a.out [kernel.vmlinux] [k] free_pgd_range
>
>
> â
>
> so it does seem to spend time in the page directory code.
>
> > Unpatched: average 4.8322s, stddev 0.114s
> > Patched: average 4.8362s, stddev 0.111s
>
> Ok, I vote for avoiding the complexity of two different behaviors, and
> just making the page table freeing use RCU unconditionally.
>
> If actively trying to trigger that code doesn't show a real measurable
> difference, I don't think it matters, and the fewer different code
> paths we have, the better.

Numbers from bigger 2-socket machine:

Unpatched: average 5.0542s, stddev 0.058s
Patched: average 5.0440s, stddev 0.072s

Still fine.

I don't see a reason not to go this path.

--
Kirill A. Shutemov