1. 14 6月, 2016 2 次提交
  2. 23 1月, 2015 1 次提交
    • A
      powerpc: Add 64bit optimised memcmp · 15c2d45d
      Anton Blanchard 提交于
      I noticed ksm spending quite a lot of time in memcmp on a large
      KVM box. The current memcmp loop is very unoptimised - byte at a
      time compares with no loop unrolling. We can do much much better.
      
      Optimise the loop in a few ways:
      
      - Unroll the byte at a time loop
      
      - For large (at least 32 byte) comparisons that are also 8 byte
        aligned, use an unrolled modulo scheduled loop using 8 byte
        loads. This is similar to our glibc memcmp.
      
      A simple microbenchmark testing 10000000 iterations of an 8192 byte
      memcmp was used to measure the performance:
      
      baseline:	29.93 s
      
      modified:	 1.70 s
      
      Just over 17x faster.
      
      v2: Incorporated some suggestions from Segher:
      
      - Use andi. instead of rdlicl.
      
      - Convert bdnzt eq, to bdnz. It's just duplicating the earlier compare
        and was a relic from a previous version.
      
      - Don't use cr5, we have plans to use that CR field for fast local
        atomics.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      15c2d45d
  3. 03 7月, 2012 1 次提交
    • A
      powerpc: 64bit optimised __clear_user · 17968fbb
      Anton Blanchard 提交于
      I noticed __clear_user high up in a profile of one of my RAID stress
      tests. The testcase was doing a dd from /dev/zero which ends up
      calling __clear_user.
      
      __clear_user is basically a loop with a single 4 byte store which
      is horribly slow. We can do much better by aligning the desination
      and doing 32 bytes of 8 byte stores in a loop.
      
      The following testcase was used to verify the patch:
      
      http://ozlabs.org/~anton/junkcode/stress_clear_user.c
      
      To show the improvement in performance I ran a dd from /dev/zero
      to /dev/null on a POWER7 box:
      
      Before:
      
      # dd if=/dev/zero of=/dev/null bs=1M count=10000
      10485760000 bytes (10 GB) copied, 3.72379 s, 2.8 GB/s
      
      After:
      
      # time dd if=/dev/zero of=/dev/null bs=1M count=10000
      10485760000 bytes (10 GB) copied, 0.728318 s, 14.4 GB/s
      
      Over 5x faster.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      17968fbb
  4. 28 5月, 2012 1 次提交
  5. 21 5月, 2010 1 次提交
  6. 07 4月, 2010 1 次提交
    • J
      powerpc: Fix handling of strncmp with zero len · 637a9902
      Jeff Mahoney 提交于
      Commit 0119536c, which added the assembly version of strncmp to
      powerpc, mentions that it adds two instructions to the version from
      boot/string.S to allow it to handle len=0. Unfortunately, it doesn't
      always return 0 when that is the case. The length is passed in r5, but
      the return value is passed back in r3. In certain cases, this will
      happen to work. Otherwise it will pass back the address of the first
      string as the return value.
      
      This patch lifts the len <= 0 handling code from memcpy to handle that
      case.
      
      Reported by: Christian_Sellars@symantec.com
      Signed-off-by: NJeff Mahoney <jeffm@suse.com>
      CC: <stable@kernel.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      637a9902
  7. 22 7月, 2008 1 次提交
  8. 07 4月, 2008 1 次提交
  9. 01 7月, 2006 1 次提交
  10. 10 10月, 2005 1 次提交
  11. 26 9月, 2005 1 次提交
    • P
      powerpc: Merge enough to start building in arch/powerpc. · 14cf11af
      Paul Mackerras 提交于
      This creates the directory structure under arch/powerpc and a bunch
      of Kconfig files.  It does a first-cut merge of arch/powerpc/mm,
      arch/powerpc/lib and arch/powerpc/platforms/powermac.  This is enough
      to build a 32-bit powermac kernel with ARCH=powerpc.
      
      For now we are getting some unmerged files from arch/ppc/kernel and
      arch/ppc/syslib, or arch/ppc64/kernel.  This makes some minor changes
      to files in those directories and files outside arch/powerpc.
      
      The boot directory is still not merged.  That's going to be interesting.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      14cf11af
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4