[PATCH] lib/crc32: slice by 4 is more efficient than the default slice by 8 on Powerpc 8xx.

Joakim Tjernlund joakim.tjernlund at transmode.se
Wed Nov 20 10:39:45 EST 2013


Scott Wood <scottwood at freescale.com> wrote on 2013/11/19 19:29:26:
> 
> I don't think we should go littering the Kconfig with defaults for
> various bits of hardware -- especially since you've already pointed out
> non-8xx hardware that would also want this.  Put it in defconfig
> instead, unless you can identify very broad classes of machines for
> which SLICEBY4 is faster.

hmm, when 64bits went in there was not much proof that it was faster for
a wide range of CPU, just 2 or 3 if I recall correctly. I suspect there
are quite a few CPUs where 32 bits a equal or faster.

  Jocke

> 
> -Scott
> 
> On Tue, 2013-11-19 at 15:11 +0100, Joakim Tjernlund wrote:
> > I found the same on MPC8321 long time ago(when 64 bits change went 
in), 
> > the 32 bits were much faster. I guess the "smaller"
> > CPUs cannot handle the cache trashing these big tables impose, I 
didn't 
> > look into the details though.
> > So I think this is a good change for 8xx.
> > 
> > Acked-by: Joakim Tjernlund <joakim.tjernlund at transmode.se>
> > 
> > Christophe Leroy <christophe.leroy at c-s.fr> wrote on 2013/11/18 
08:04:23:
> > 
> > > From: Christophe Leroy <christophe.leroy at c-s.fr>
> > > To: Vitaly Bordug <vitb at kernel.crashing.org>, Marcelo Tosatti 
> > <marcelo at kvack.org>, Joakim Tjernlund <joakim.tjernlund at transmode.se>, 
Bob 
> > Pearson <rpearson at systemfabricworks.com>, 
> > > Cc: linux-kernel at vger.kernel.org, linuxppc-dev at lists.ozlabs.org
> > > Date: 2013/11/19 13:05
> > > Subject: [PATCH] lib/crc32: slice by 4 is more efficient than the 
> > default slice by 8 on Powerpc 8xx.
> > > 
> > > On PPC_8xx, CRC32_SLICEBY4 is more efficient (almost twice) than 
> > CRC32_SLICEBY8,
> > > as shown below:
> > > 
> > > With CRC32_SLICEBY8:
> > > [    1.109204] crc32: CRC_LE_BITS = 64, CRC_BE BITS = 64
> > > [    1.114401] crc32: self tests passed, processed 225944 bytes in 
> > 15118910 nsec
> > > [    1.130655] crc32c: CRC_LE_BITS = 64
> > > [    1.134235] crc32c: self tests passed, processed 225944 bytes in 
> > 4479879 nsec
> > > 
> > > With CRC32_SLICEBY4:
> > > [    1.097129] crc32: CRC_LE_BITS = 32, CRC_BE BITS = 32
> > > [    1.101878] crc32: self tests passed, processed 225944 bytes in 
> > 8616242 nsec
> > > [    1.116298] crc32c: CRC_LE_BITS = 32
> > > [    1.119607] crc32c: self tests passed, processed 225944 bytes in 
> > 3289576 nsec
> > > 
> > > Signed-off-by: Christophe Leroy <christophe.leroy at c-s.fr>
> > > 
> > > Index: a/lib/Kconfig
> > > ===================================================================
> > > --- a/lib/Kconfig   (révision 5325)
> > > +++ b/lib/Kconfig   (copie de travail)
> > > @@ -102,6 +102,7 @@
> > >  choice
> > >     prompt "CRC32 implementation"
> > >     depends on CRC32
> > > +   default CRC32_SLICEBY4 if PPC_8xx
> > >     default CRC32_SLICEBY8
> > >     help
> > >       This option allows a kernel builder to override the default 
choice
> > 
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev at lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
> > 
> > 
> 
> 
> 



More information about the Linuxppc-dev mailing list