[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <40zxgY4PMWz9s2k@ozlabs.org>
Date: Tue, 5 Jun 2018 00:11:20 +1000 (AEST)
From: Michael Ellerman <patch-notifications@...erman.id.au>
To: Christophe Leroy <christophe.leroy@....fr>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>, segher@...nel.crashing.org
Cc: linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: Re: [v6,1/2] powerpc/lib: optimise 32 bits __clear_user()
On Wed, 2018-05-30 at 07:06:13 UTC, Christophe Leroy wrote:
> Rewrite clear_user() on the same principle as memset(0), making use
> of dcbz to clear complete cache lines.
>
> This code is a copy/paste of memset(), with some modifications
> in order to retrieve remaining number of bytes to be cleared,
> as it needs to be returned in case of error.
>
> On the same way as done on PPC64 in commit 17968fbbd19f1
> ("powerpc: 64bit optimised __clear_user"), the patch moves
> __clear_user() into a dedicated file string_32.S
>
> On a MPC885, throughput is almost doubled:
>
> Before:
> ~# dd if=/dev/zero of=/dev/null bs=1M count=1000
> 1048576000 bytes (1000.0MB) copied, 18.990779 seconds, 52.7MB/s
>
> After:
> ~# dd if=/dev/zero of=/dev/null bs=1M count=1000
> 1048576000 bytes (1000.0MB) copied, 9.611468 seconds, 104.0MB/s
>
> On a MPC8321, throughput is multiplied by 2.12:
>
> Before:
> root@...ippro:~# dd if=/dev/zero of=/dev/null bs=1M count=1000
> 1048576000 bytes (1000.0MB) copied, 6.844352 seconds, 146.1MB/s
>
> After:
> root@...ippro:~# dd if=/dev/zero of=/dev/null bs=1M count=1000
> 1048576000 bytes (1000.0MB) copied, 3.218854 seconds, 310.7MB/s
>
> Signed-off-by: Christophe Leroy <christophe.leroy@....fr>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/f36bbf21e8b911b3c629fd36d4d217
cheers
Powered by blists - more mailing lists