Re: remove the last set_fs() in common code, and remove it for x86 and powerpc

From: Christoph Hellwig
Date: Tue Aug 18 2020 - 14:06:01 EST


On Tue, Aug 18, 2020 at 07:46:22PM +0200, Christophe Leroy wrote:
> I gave it a go on my powerpc mpc832x. I tested it on top of my newest
> series that reworks the 32 bits signal handlers (see
> https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=196278) with
> the microbenchmark test used is that series.
>
> With KUAP activated, on top of signal32 rework, performance is boosted as
> system time for the microbenchmark goes from 1.73s down to 1.56s, that is
> 10% quicker
>
> Surprisingly, with the kernel as is today without my signal's series, your
> series degrades performance slightly (from 2.55s to 2.64s ie 3.5% slower).
>
>
> I also observe, in both cases, a degradation on
>
> dd if=/dev/zero of=/dev/null count=1M
>
> Without your series, it runs in 5.29 seconds.
> With your series, it runs in 5.82 seconds, that is 10% more time.

That's pretty strage, I wonder if some kernel text cache line
effects come into play here?

The kernel access side is only used in slow path code, so it should
not make a difference, and the uaccess code is simplified and should be
(marginally) faster.

Btw, was this with the __{get,put}_user_allowed cockup that you noticed
fixed?