Announcement

Collapse
No announcement yet.

Debian Wheezy GNU/kFreeBSD: Slower Than Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    I've found the reason for low OpenSSL scores on GNU/kFreeBSD, in the way it is built by the PTS. The openssl binaries shipped by Debian don't have this problem:

    Code:
    CC= gcc
    CFLAG= -Wa,--noexecstack -O3
    on GNU/kFreeBSD, vs. assembler optimisations are only being enabled for GNU/Linux:

    Code:
    CC= gcc
    CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
    This is clear from the full output of './openssl_/bin/openssl speed' also:

    Code:
    OpenSSL 1.0.0e 6 Sep 2011
    built on: Sat Jul 14 13:28:40 BST 2012
    options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
    compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
                      sign    verify    sign/s verify/s
    rsa 4096 bits 0.020554s 0.000307s     48.7   3254.5
    on GNU/Linux, vs. the following on a similar-ish machine running GNU/kFreeBSD:

    Code:
    built on: Sat Jul 14 13:42:24 BST 2012
    options:bn(64,32) rc4(ptr,int) des(idx,cisc,2,long) aes(partial) idea(int) blowfish(idx) 
    compiler: gcc -Wa,--noexecstack -O3
                      sign    verify    sign/s verify/s
    rsa 4096 bits 0.078346s 0.001050s     12.8    952.6

    Originally posted by nslay View Post
    ... FreeBSD is stuck at gcc 4.2 while the newer Linux distributions are using later versions of gcc.
    FWIW Debian GNU/kFreeBSD builds the kernel with gcc-4.6 and -O2, glibc with gcc-4.4 and -O2, and much of the userland with the new default compiler gcc-4.7.

    Originally posted by nslay View Post
    Shouldn't, for example, John the Ripper run about the same on FreeBSD? Why should the same blowfish implementation be slower on FreeBSD? That shouldn't involve FreeBSD at all.
    I agree, we may find more cases where the PTS differs from Debian's own package building, and this may account for some of the perceived slowness. With that fixed, we may then get a more interesting comparison of the actual kernels involved, their threads implementations (in applicable benchmarks), scheduling and hardware support.

    Kinda cool that GNU/kFreeBSD even managed to lead some of the benchmarks in http://www.phoronix.com/scan.php?pag...ubuntu12&num=1

    Comment


    • #22
      I've found the reason for low OpenSSL scores on GNU/kFreeBSD, in the way it is built by the PTS. The openssl binaries shipped by Debian don't have this problem:

      Code:
      CC= gcc
      CFLAG= -Wa,--noexecstack -O3
      on GNU/kFreeBSD, vs. assembler optimisations are only being enabled for GNU/Linux:

      Code:
      CC= gcc
      CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
      This is clear from the full output of './openssl_/bin/openssl speed' also:

      Code:
      OpenSSL 1.0.0e 6 Sep 2011
      built on: Sat Jul 14 13:28:40 BST 2012
      options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
      compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
                        sign    verify    sign/s verify/s
      rsa 4096 bits 0.020554s 0.000307s     48.7   3254.5
      on GNU/Linux, vs. the following on a similar-ish machine running GNU/kFreeBSD:

      Code:
      built on: Sat Jul 14 13:42:24 BST 2012
      options:bn(64,32) rc4(ptr,int) des(idx,cisc,2,long) aes(partial) idea(int) blowfish(idx) 
      compiler: gcc -Wa,--noexecstack -O3
                        sign    verify    sign/s verify/s
      rsa 4096 bits 0.078346s 0.001050s     12.8    952.6

      Originally posted by nslay View Post
      ... FreeBSD is stuck at gcc 4.2 while the newer Linux distributions are using later versions of gcc.
      FWIW Debian GNU/kFreeBSD builds the kernel with gcc-4.6 and -O2, glibc with gcc-4.4 and -O2, and much of the userland with the new default compiler gcc-4.7.

      Originally posted by nslay View Post
      Shouldn't, for example, John the Ripper run about the same on FreeBSD? Why should the same blowfish implementation be slower on FreeBSD? That shouldn't involve FreeBSD at all.
      I agree, we may find more cases where the PTS differs from Debian's own package building, and this may account for some of the perceived slowness. With that fixed, we may then get a more interesting comparison of the actual kernels involved, their threads implementations (in applicable benchmarks), scheduling and hardware support.

      Kinda cool that GNU/kFreeBSD even managed to lead some of the benchmarks in http://www.phoronix.com/scan.php?pag...ubuntu12&num=1

      Comment


      • #23
        How do I report a bug in the Phoronix Test Suite? Just keep bumping the forum thread?

        It seems that the automatic OS detection built into OpenSSL doesn't support GNU/kFreeBSD, but mis-detects it as GNU/Hurd x86 which means it still gets built, but without the ASM optimisations. Hence the slow OpenSSL benchmark result.

        The Debian packaged OpenSSL doesn't have this problem.

        Comment


        • #24
          Proving the old adage: Your benchmark results are only as good as your benchmark.

          Comment

          Working...
          X