tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

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



> 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 the release (had to edit out
> > something about 3g modems to make it compile). I presume this is enough
> > to not have debug of any sort enabled.
>
> Not sure I understand; did you test a kernel from the netbsd-7.1 branch, or
> from netbsd-current? You might want to test netbsd-current, I know that several
> performance-related improvements were made.
>

I noted it's a current kernel. The 7.1 release bits were there to ensure
I don't run into userspace/kernel debug.

> > 3. pmap
> >
> > It seems most issues stem from slow pmap handling. Chances are there are
> > perfectly avoidable shootdowns and in fact cases where there is no need
> > to alter KVA in the first place.
>
> This seems rather surprising to me. I tried to reduce the number of shootdowns
> some time ago, but they were already optimized, and my attempts just made them
> slower to process. The only related thing I fixed was making sure there is no
> kernel page that gets flushed under a local shootdown, but as far as I
> remember, it didn't significantly improve performance (on a somewhat old
> hardware, I must admit).
>

Note this was tested on kvm, where shootdowns are more expensive than on
bare metal so the result is probably worsened compared to bare-metal
(still, kvm is a perfectly fine production vm deployment, so I don't
feel bad for testing on it).

I'm did not investigate in detail (I'll have to), but I believe
dragonflybsd went to extended measures to reduce/eleminate IPIs in
general. Most definitely worth looking at.

--
Mateusz Guzik
Swearing Maintenance Engineer


Home | Main Index | Thread Index | Old Index