 4d7696f1b0
			
		
	
	
	4d7696f1b0
	
	
	
		
			
			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. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIVAwUAUi6dRTnsnt1WYoG5AQIqMBAAm/XUEqfyBNUiTPHmIU/OyReOlfsp8A2o xtcmSzaCtIUz4btPszUrw3PShqnk+lXXX2AB0rp3PzfOgyNYXBRKbzOf3eGr2VEp L/Cm0iSWHqQ7V7MoV5ZrqtvuyJV1a7FK3a3VaoKaUk424o4sZ7P67t/YZAnTCP/i 9wQoPeIOJ8YjZsaAQjzI3q7yRMRE8ytyBnF4NdgeMyr2p17w2e9pnmNfCTo4wnWs Nu2wPr2QCPQXr/FoIhdIVEy3kVatqH8qXG8Fw+5n07HJYxGCvQZLDuoOVDYyFeoW gnNq2MMgLZm/7Nzqd1bN+QQZuBCd5JL4VJ2G4vLfYrn3ZSdSysrVKQXFKYG3Gkua 1KP4Pv0hndAl4DtGbUk8CiZp6b+c5qeWvq+sO2NuhUGmumFMK2q4DJhITNexjmrs Eg4opnR8JMLDkYD6o52Ziu5KQR/q1PKRLj80eoVuqB2QQM5+NPb4s3k2WN+53lQD L9fH2alUxxSK+5R8ykk923QQ/XErMUwXaka+O/gGFAlYvaaW/GKTxFnKn/GIXAkc tKW88zB+zA5EZEFec+K43z1UjtGxMWsryvDN55ON2iV+LIZBISm7krroBeR55cyO +3tHlPsga0pO+9DdSm7hvZeWRrq5ZJTiZmL/e2FYygrC5tFAY0p+z49fK3e9Th13 C85G7fg3yDY= =zLxh -----END PGP SIGNATURE----- Merge tag 'md/3.12' of git://neil.brown.name/md 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.
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			3.6 KiB
			
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			3.6 KiB
			
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| obj-$(CONFIG_RAID6_PQ)	+= raid6_pq.o
 | |
| 
 | |
| raid6_pq-y	+= algos.o recov.o tables.o int1.o int2.o int4.o \
 | |
| 		   int8.o int16.o int32.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
 | |
| 
 | |
| quiet_cmd_unroll = UNROLL  $@
 | |
|       cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \
 | |
|                    < $< > $@ || ( rm -f $@ && exit 1 )
 | |
| 
 | |
| ifeq ($(CONFIG_ALTIVEC),y)
 | |
| altivec_flags := -maltivec -mabi=altivec
 | |
| endif
 | |
| 
 | |
| # The GCC option -ffreestanding is required in order to compile code containing
 | |
| # ARM/NEON intrinsics in a non C99-compliant environment (such as the kernel)
 | |
| ifeq ($(CONFIG_KERNEL_MODE_NEON),y)
 | |
| NEON_FLAGS := -ffreestanding
 | |
| ifeq ($(ARCH),arm)
 | |
| NEON_FLAGS += -mfloat-abi=softfp -mfpu=neon
 | |
| endif
 | |
| ifeq ($(ARCH),arm64)
 | |
| CFLAGS_REMOVE_neon1.o += -mgeneral-regs-only
 | |
| CFLAGS_REMOVE_neon2.o += -mgeneral-regs-only
 | |
| CFLAGS_REMOVE_neon4.o += -mgeneral-regs-only
 | |
| CFLAGS_REMOVE_neon8.o += -mgeneral-regs-only
 | |
| endif
 | |
| endif
 | |
| 
 | |
| targets += int1.c
 | |
| $(obj)/int1.c:   UNROLL := 1
 | |
| $(obj)/int1.c:   $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| targets += int2.c
 | |
| $(obj)/int2.c:   UNROLL := 2
 | |
| $(obj)/int2.c:   $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| targets += int4.c
 | |
| $(obj)/int4.c:   UNROLL := 4
 | |
| $(obj)/int4.c:   $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| targets += int8.c
 | |
| $(obj)/int8.c:   UNROLL := 8
 | |
| $(obj)/int8.c:   $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| targets += int16.c
 | |
| $(obj)/int16.c:  UNROLL := 16
 | |
| $(obj)/int16.c:  $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| targets += int32.c
 | |
| $(obj)/int32.c:  UNROLL := 32
 | |
| $(obj)/int32.c:  $(src)/int.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| CFLAGS_altivec1.o += $(altivec_flags)
 | |
| targets += altivec1.c
 | |
| $(obj)/altivec1.c:   UNROLL := 1
 | |
| $(obj)/altivec1.c:   $(src)/altivec.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| CFLAGS_altivec2.o += $(altivec_flags)
 | |
| targets += altivec2.c
 | |
| $(obj)/altivec2.c:   UNROLL := 2
 | |
| $(obj)/altivec2.c:   $(src)/altivec.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| CFLAGS_altivec4.o += $(altivec_flags)
 | |
| targets += altivec4.c
 | |
| $(obj)/altivec4.c:   UNROLL := 4
 | |
| $(obj)/altivec4.c:   $(src)/altivec.uc $(src)/unroll.awk FORCE
 | |
| 	$(call if_changed,unroll)
 | |
| 
 | |
| CFLAGS_altivec8.o += $(altivec_flags)
 | |
| targets += altivec8.c
 | |
| $(obj)/altivec8.c:   UNROLL := 8
 | |
| $(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 )
 | |
| 
 | |
| targets += tables.c
 | |
| $(obj)/tables.c: $(obj)/mktables FORCE
 | |
| 	$(call if_changed,mktable)
 |