Re: performance issues during build.sh -j 40 kernel

2017-09-11 Thread Mateusz Guzik
On Sat, Sep 09, 2017 at 08:48:19PM +0200, Mateusz Guzik wrote: > > Here is a bunch of "./build.sh -j 40 kernel=MYCONF > /dev/null" on stock > kernel: > 618.65s user 1097.80s system 2502% cpu 1:08.60 total [..] > > And on kernel with total hacks: > 594.08s user 693.11s system 2459% cpu 52.331

Re: performance issues during build.sh -j 40 kernel

2017-09-11 Thread Mateusz Guzik
On Sun, Sep 10, 2017 at 06:51:31PM +0100, Mindaugas Rasiukevicius wrote: > Mateusz Guzik wrote: > > 1. exclusive vnode locking (genfs_lock) > > > > ... > > > > 2. uvm_fault_internal > > > > ... > > > > 4. vm locks in general > > > > We know these points of lock contention, but

Re: performance issues during build.sh -j 40 kernel

2017-09-11 Thread Mateusz Guzik
> Le 09/09/2017 à 20:48, Mateusz Guzik a écrit : On Sun, Sep 10, 2017 at 07:29:11PM +0200, Maxime Villard wrote: > Le 09/09/2017 à 20:48, Mateusz Guzik a écrit : > > [...] > > I installed the 7.1 release, downloaded recent git snapshot and built the > > trunk kernel while using config stolen from

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Joerg Sonnenberger
On Sun, Sep 10, 2017 at 07:56:11PM +0200, Maxime Villard wrote: > Le 10/09/2017 à 19:50, Joerg Sonnenberger a écrit : > > On Sun, Sep 10, 2017 at 07:17:51PM +0200, Joerg Sonnenberger wrote: > > > That's true, but changing this also has quite a significant downside on > > > some workloads for

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Maxime Villard
Le 10/09/2017 à 19:50, Joerg Sonnenberger a écrit : On Sun, Sep 10, 2017 at 07:17:51PM +0200, Joerg Sonnenberger wrote: That's true, but changing this also has quite a significant downside on some workloads for second order effects. I don't think it is a good idea to change this right now, as

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Mindaugas Rasiukevicius
Mateusz Guzik wrote: > ... > > 1) #define UBC_NWINS 1024 > > The parameter was set in 2001 and is used on amd64 to this very day. > > lockstat says: > 51.63 585505 321201.06 e4011d8304c0 > 40.39 291550 251302.17 e4011d8304c0 ubc_alloc+69 > 9.13

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Joerg Sonnenberger
On Sun, Sep 10, 2017 at 07:17:51PM +0200, Joerg Sonnenberger wrote: > That's true, but changing this also has quite a significant downside on > some workloads for second order effects. I don't think it is a good idea > to change this right now, as it doesn't even fix the real problem. Just to

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Maxime Villard
Thanks for this analysis. I have three remarks: Le 09/09/2017 à 20:48, Mateusz Guzik a écrit : [...] I installed the 7.1 release, downloaded recent git snapshot and built the trunk kernel while using config stolen from the release (had to edit out something about 3g modems to make it compile).

Re: performance issues during build.sh -j 40 kernel

2017-09-10 Thread Joerg Sonnenberger
On Sat, Sep 09, 2017 at 08:48:19PM +0200, Mateusz Guzik wrote: > 1) #define UBC_NWINS 1024 Yes, this one should scale automatically. Needs a bit thought about that a good scaling would be. > 2. uvm_pageidlezero I disagree on this, a lot. At best it is a band aid unless the uvm_f?pageqlock