Merge tag 'md/3.12' of git://neil.brown.name/md
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Sep 2013 20:03:41 +0000 (13:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Sep 2013 20:03:41 +0000 (13:03 -0700)
Pull md update from Neil Brown:
 "Headline item is multithreading for RAID5 so that more IO/sec can be
  supported on fast (SSD) devices.  Also TILE-Gx SIMD suppor for RAID6
  calculations and an assortment of bug fixes"

* tag 'md/3.12' of git://neil.brown.name/md:
  raid5: only wakeup necessary threads
  md/raid5: flush out all pending requests before proceeding with reshape.
  md/raid5: use seqcount to protect access to shape in make_request.
  raid5: sysfs entry to control worker thread number
  raid5: offload stripe handle to workqueue
  raid5: fix stripe release order
  raid5: make release_stripe lockless
  md: avoid deadlock when dirty buffers during md_stop.
  md: Don't test all of mddev->flags at once.
  md: Fix apparent cut-and-paste error in super_90_validate
  raid6/test: replace echo -e with printf
  RAID: add tilegx SIMD implementation of raid6
  md: fix safe_mode buglet.
  md: don't call md_allow_write in get_bitmap_file.

1  2 
include/linux/raid/pq.h
lib/raid6/Makefile
lib/raid6/algos.c
lib/raid6/test/Makefile

Simple merge
index b4625787c7eeb462d2ba220a5bf497fb522cf32c,e5e90219d69e314491b417ae5ee27e39363ae86e..c7dab0645554ea341590bee0ecf5b0a0139a55bd
@@@ -5,7 -5,7 +5,8 @@@ raid6_pq-y       += algos.o recov.o tables.o 
  
  raid6_pq-$(CONFIG_X86) += recov_ssse3.o recov_avx2.o mmx.o sse1.o sse2.o avx2.o
  raid6_pq-$(CONFIG_ALTIVEC) += altivec1.o altivec2.o altivec4.o altivec8.o
 +raid6_pq-$(CONFIG_KERNEL_MODE_NEON) += neon.o neon1.o neon2.o neon4.o neon8.o
+ raid6_pq-$(CONFIG_TILEGX) += tilegx8.o
  
  hostprogs-y   += mktables
  
@@@ -86,30 -71,11 +87,35 @@@ $(obj)/altivec8.c:   UNROLL := 
  $(obj)/altivec8.c:   $(src)/altivec.uc $(src)/unroll.awk FORCE
        $(call if_changed,unroll)
  
 +CFLAGS_neon1.o += $(NEON_FLAGS)
 +targets += neon1.c
 +$(obj)/neon1.c:   UNROLL := 1
 +$(obj)/neon1.c:   $(src)/neon.uc $(src)/unroll.awk FORCE
 +      $(call if_changed,unroll)
 +
 +CFLAGS_neon2.o += $(NEON_FLAGS)
 +targets += neon2.c
 +$(obj)/neon2.c:   UNROLL := 2
 +$(obj)/neon2.c:   $(src)/neon.uc $(src)/unroll.awk FORCE
 +      $(call if_changed,unroll)
 +
 +CFLAGS_neon4.o += $(NEON_FLAGS)
 +targets += neon4.c
 +$(obj)/neon4.c:   UNROLL := 4
 +$(obj)/neon4.c:   $(src)/neon.uc $(src)/unroll.awk FORCE
 +      $(call if_changed,unroll)
 +
 +CFLAGS_neon8.o += $(NEON_FLAGS)
 +targets += neon8.c
 +$(obj)/neon8.c:   UNROLL := 8
 +$(obj)/neon8.c:   $(src)/neon.uc $(src)/unroll.awk FORCE
 +      $(call if_changed,unroll)
 +
+ targets += tilegx8.c
+ $(obj)/tilegx8.c:   UNROLL := 8
+ $(obj)/tilegx8.c:   $(src)/tilegx.uc $(src)/unroll.awk FORCE
+       $(call if_changed,unroll)
  quiet_cmd_mktable = TABLE   $@
        cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 )
  
Simple merge
index 28afa1a06e033f264d2a9228d654e7fc50b6fea4,cf4959276a8b8081bbde8bfb452d2118132a6c60..29090f3db677b7c311a86da1120e1ceb805b2517
@@@ -36,11 -27,8 +36,11 @@@ ifeq ($(IS_X86),yes
          CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1" |  \
                      gcc -c -x assembler - >&/dev/null &&      \
                      rm ./-.o && echo -DCONFIG_AS_AVX2=1)
 +else ifeq ($(HAS_NEON),yes)
 +        OBJS   += neon.o neon1.o neon2.o neon4.o neon8.o
 +        CFLAGS += -DCONFIG_KERNEL_MODE_NEON=1
  else
-         HAS_ALTIVEC := $(shell echo -e '\#include <altivec.h>\nvector int a;' |\
+         HAS_ALTIVEC := $(shell printf '\#include <altivec.h>\nvector int a;\n' |\
                           gcc -c -x c - >&/dev/null && \
                           rm ./-.o && echo yes)
          ifeq ($(HAS_ALTIVEC),yes)
@@@ -113,7 -95,8 +119,8 @@@ tables.c: mktable
        ./mktables > tables.c
  
  clean:
 -      rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c tables.c raid6test
 +      rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c neon*.c tables.c raid6test
+       rm -f tilegx*.c
  
  spotless: clean
        rm -f *~