diff options
| author | David Woodhouse <David.Woodhouse@intel.com> | 2010-08-09 05:36:44 -0400 |
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-08-09 05:36:44 -0400 |
| commit | 2144381da478cc4aa3a29ee29b0c5e6ddaaced14 (patch) | |
| tree | 380a29fec86b537ed602d12f4050654b1c66c27c | |
| parent | 45d7f32c7a43cbb9592886d38190e379e2eb2226 (diff) | |
| parent | e5d84970a554d5c0072043a7b9f0f5b88b5fdfe1 (diff) | |
Merge branch 'async' of macbook:git/btrfs-unstable
Conflicts:
drivers/md/Makefile
lib/raid6/unroll.pl
| -rw-r--r-- | crypto/async_tx/Kconfig | 14 | ||||
| -rw-r--r-- | drivers/md/Kconfig | 18 | ||||
| -rw-r--r-- | drivers/md/Makefile | 77 | ||||
| -rw-r--r-- | lib/Kconfig | 3 | ||||
| -rw-r--r-- | lib/Makefile | 1 | ||||
| -rw-r--r-- | lib/raid6/Makefile | 78 | ||||
| -rw-r--r-- | lib/raid6/mktables.c (renamed from drivers/md/mktables.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6algos.c (renamed from drivers/md/raid6algos.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6altivec.uc (renamed from drivers/md/raid6altivec.uc) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6int.uc (renamed from drivers/md/raid6int.uc) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6mmx.c (renamed from drivers/md/raid6mmx.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6recov.c (renamed from drivers/md/raid6recov.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6sse1.c (renamed from drivers/md/raid6sse1.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6sse2.c (renamed from drivers/md/raid6sse2.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6test/Makefile (renamed from drivers/md/raid6test/Makefile) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6test/test.c (renamed from drivers/md/raid6test/test.c) | 0 | ||||
| -rw-r--r-- | lib/raid6/raid6x86.h (renamed from drivers/md/raid6x86.h) | 0 | ||||
| -rw-r--r-- | lib/raid6/unroll.awk (renamed from drivers/md/unroll.awk) | 0 |
18 files changed, 97 insertions, 94 deletions
diff --git a/crypto/async_tx/Kconfig b/crypto/async_tx/Kconfig index e28e276ac611..5de2ed13b35d 100644 --- a/crypto/async_tx/Kconfig +++ b/crypto/async_tx/Kconfig | |||
| @@ -22,6 +22,20 @@ config ASYNC_RAID6_RECOV | |||
| 22 | tristate | 22 | tristate |
| 23 | select ASYNC_CORE | 23 | select ASYNC_CORE |
| 24 | select ASYNC_PQ | 24 | select ASYNC_PQ |
| 25 | select ASYNC_XOR | ||
| 26 | |||
| 27 | config ASYNC_RAID6_TEST | ||
| 28 | tristate "Self test for hardware accelerated raid6 recovery" | ||
| 29 | depends on ASYNC_RAID6_RECOV | ||
| 30 | select ASYNC_MEMCPY | ||
| 31 | ---help--- | ||
| 32 | This is a one-shot self test that permutes through the | ||
| 33 | recovery of all the possible two disk failure scenarios for a | ||
| 34 | N-disk array. Recovery is performed with the asynchronous | ||
| 35 | raid6 recovery routines, and will optionally use an offload | ||
| 36 | engine if one is available. | ||
| 37 | |||
| 38 | If unsure, say N. | ||
| 25 | 39 | ||
| 26 | config ASYNC_TX_DISABLE_PQ_VAL_DMA | 40 | config ASYNC_TX_DISABLE_PQ_VAL_DMA |
| 27 | bool | 41 | bool |
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig index 4a6feac8c94a..bf1a95e31559 100644 --- a/drivers/md/Kconfig +++ b/drivers/md/Kconfig | |||
| @@ -121,7 +121,7 @@ config MD_RAID10 | |||
| 121 | config MD_RAID456 | 121 | config MD_RAID456 |
| 122 | tristate "RAID-4/RAID-5/RAID-6 mode" | 122 | tristate "RAID-4/RAID-5/RAID-6 mode" |
| 123 | depends on BLK_DEV_MD | 123 | depends on BLK_DEV_MD |
| 124 | select MD_RAID6_PQ | 124 | select RAID6_PQ |
| 125 | select ASYNC_MEMCPY | 125 | select ASYNC_MEMCPY |
| 126 | select ASYNC_XOR | 126 | select ASYNC_XOR |
| 127 | select ASYNC_PQ | 127 | select ASYNC_PQ |
| @@ -165,22 +165,6 @@ config MULTICORE_RAID456 | |||
| 165 | 165 | ||
| 166 | If unsure, say N. | 166 | If unsure, say N. |
| 167 | 167 | ||
| 168 | config MD_RAID6_PQ | ||
| 169 | tristate | ||
| 170 | |||
| 171 | config ASYNC_RAID6_TEST | ||
| 172 | tristate "Self test for hardware accelerated raid6 recovery" | ||
| 173 | depends on MD_RAID6_PQ | ||
| 174 | select ASYNC_RAID6_RECOV | ||
| 175 | ---help--- | ||
| 176 | This is a one-shot self test that permutes through the | ||
| 177 | recovery of all the possible two disk failure scenarios for a | ||
| 178 | N-disk array. Recovery is performed with the asynchronous | ||
| 179 | raid6 recovery routines, and will optionally use an offload | ||
| 180 | engine if one is available. | ||
| 181 | |||
| 182 | If unsure, say N. | ||
| 183 | |||
| 184 | config MD_MULTIPATH | 168 | config MD_MULTIPATH |
| 185 | tristate "Multipath I/O support" | 169 | tristate "Multipath I/O support" |
| 186 | depends on BLK_DEV_MD | 170 | depends on BLK_DEV_MD |
diff --git a/drivers/md/Makefile b/drivers/md/Makefile index e355e7f6a536..5e3aac41919d 100644 --- a/drivers/md/Makefile +++ b/drivers/md/Makefile | |||
| @@ -12,13 +12,6 @@ dm-log-userspace-y \ | |||
| 12 | += dm-log-userspace-base.o dm-log-userspace-transfer.o | 12 | += dm-log-userspace-base.o dm-log-userspace-transfer.o |
| 13 | md-mod-y += md.o bitmap.o | 13 | md-mod-y += md.o bitmap.o |
| 14 | raid456-y += raid5.o | 14 | raid456-y += raid5.o |
| 15 | raid6_pq-y += raid6algos.o raid6recov.o raid6tables.o \ | ||
| 16 | raid6int1.o raid6int2.o raid6int4.o \ | ||
| 17 | raid6int8.o raid6int16.o raid6int32.o \ | ||
| 18 | raid6altivec1.o raid6altivec2.o raid6altivec4.o \ | ||
| 19 | raid6altivec8.o \ | ||
| 20 | raid6mmx.o raid6sse1.o raid6sse2.o | ||
| 21 | hostprogs-y += mktables | ||
| 22 | 15 | ||
| 23 | # Note: link order is important. All raid personalities | 16 | # Note: link order is important. All raid personalities |
| 24 | # and must come before md.o, as they each initialise | 17 | # and must come before md.o, as they each initialise |
| @@ -29,7 +22,6 @@ obj-$(CONFIG_MD_LINEAR) += linear.o | |||
| 29 | obj-$(CONFIG_MD_RAID0) += raid0.o | 22 | obj-$(CONFIG_MD_RAID0) += raid0.o |
| 30 | obj-$(CONFIG_MD_RAID1) += raid1.o | 23 | obj-$(CONFIG_MD_RAID1) += raid1.o |
| 31 | obj-$(CONFIG_MD_RAID10) += raid10.o | 24 | obj-$(CONFIG_MD_RAID10) += raid10.o |
| 32 | obj-$(CONFIG_MD_RAID6_PQ) += raid6_pq.o | ||
| 33 | obj-$(CONFIG_MD_RAID456) += raid456.o | 25 | obj-$(CONFIG_MD_RAID456) += raid456.o |
| 34 | obj-$(CONFIG_MD_MULTIPATH) += multipath.o | 26 | obj-$(CONFIG_MD_MULTIPATH) += multipath.o |
| 35 | obj-$(CONFIG_MD_FAULTY) += faulty.o | 27 | obj-$(CONFIG_MD_FAULTY) += faulty.o |
| @@ -45,75 +37,6 @@ obj-$(CONFIG_DM_MIRROR) += dm-mirror.o dm-log.o dm-region-hash.o | |||
| 45 | obj-$(CONFIG_DM_LOG_USERSPACE) += dm-log-userspace.o | 37 | obj-$(CONFIG_DM_LOG_USERSPACE) += dm-log-userspace.o |
| 46 | obj-$(CONFIG_DM_ZERO) += dm-zero.o | 38 | obj-$(CONFIG_DM_ZERO) += dm-zero.o |
| 47 | 39 | ||
| 48 | quiet_cmd_unroll = UNROLL $@ | ||
| 49 | cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ | ||
| 50 | < $< > $@ || ( rm -f $@ && exit 1 ) | ||
| 51 | |||
| 52 | ifeq ($(CONFIG_ALTIVEC),y) | ||
| 53 | altivec_flags := -maltivec -mabi=altivec | ||
| 54 | endif | ||
| 55 | |||
| 56 | ifeq ($(CONFIG_DM_UEVENT),y) | 40 | ifeq ($(CONFIG_DM_UEVENT),y) |
| 57 | dm-mod-objs += dm-uevent.o | 41 | dm-mod-objs += dm-uevent.o |
| 58 | endif | 42 | endif |
| 59 | |||
| 60 | targets += raid6int1.c | ||
| 61 | $(obj)/raid6int1.c: UNROLL := 1 | ||
| 62 | $(obj)/raid6int1.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 63 | $(call if_changed,unroll) | ||
| 64 | |||
| 65 | targets += raid6int2.c | ||
| 66 | $(obj)/raid6int2.c: UNROLL := 2 | ||
| 67 | $(obj)/raid6int2.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 68 | $(call if_changed,unroll) | ||
| 69 | |||
| 70 | targets += raid6int4.c | ||
| 71 | $(obj)/raid6int4.c: UNROLL := 4 | ||
| 72 | $(obj)/raid6int4.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 73 | $(call if_changed,unroll) | ||
| 74 | |||
| 75 | targets += raid6int8.c | ||
| 76 | $(obj)/raid6int8.c: UNROLL := 8 | ||
| 77 | $(obj)/raid6int8.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 78 | $(call if_changed,unroll) | ||
| 79 | |||
| 80 | targets += raid6int16.c | ||
| 81 | $(obj)/raid6int16.c: UNROLL := 16 | ||
| 82 | $(obj)/raid6int16.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 83 | $(call if_changed,unroll) | ||
| 84 | |||
| 85 | targets += raid6int32.c | ||
| 86 | $(obj)/raid6int32.c: UNROLL := 32 | ||
| 87 | $(obj)/raid6int32.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 88 | $(call if_changed,unroll) | ||
| 89 | |||
| 90 | CFLAGS_raid6altivec1.o += $(altivec_flags) | ||
| 91 | targets += raid6altivec1.c | ||
| 92 | $(obj)/raid6altivec1.c: UNROLL := 1 | ||
| 93 | $(obj)/raid6altivec1.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 94 | $(call if_changed,unroll) | ||
| 95 | |||
| 96 | CFLAGS_raid6altivec2.o += $(altivec_flags) | ||
| 97 | targets += raid6altivec2.c | ||
| 98 | $(obj)/raid6altivec2.c: UNROLL := 2 | ||
| 99 | $(obj)/raid6altivec2.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 100 | $(call if_changed,unroll) | ||
| 101 | |||
| 102 | CFLAGS_raid6altivec4.o += $(altivec_flags) | ||
| 103 | targets += raid6altivec4.c | ||
| 104 | $(obj)/raid6altivec4.c: UNROLL := 4 | ||
| 105 | $(obj)/raid6altivec4.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 106 | $(call if_changed,unroll) | ||
| 107 | |||
| 108 | CFLAGS_raid6altivec8.o += $(altivec_flags) | ||
| 109 | targets += raid6altivec8.c | ||
| 110 | $(obj)/raid6altivec8.c: UNROLL := 8 | ||
| 111 | $(obj)/raid6altivec8.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 112 | $(call if_changed,unroll) | ||
| 113 | |||
| 114 | quiet_cmd_mktable = TABLE $@ | ||
| 115 | cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) | ||
| 116 | |||
| 117 | targets += raid6tables.c | ||
| 118 | $(obj)/raid6tables.c: $(obj)/mktables FORCE | ||
| 119 | $(call if_changed,mktable) | ||
diff --git a/lib/Kconfig b/lib/Kconfig index 5b916bc0fbae..fa9bf2c06199 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
| @@ -7,6 +7,9 @@ config BINARY_PRINTF | |||
| 7 | 7 | ||
| 8 | menu "Library routines" | 8 | menu "Library routines" |
| 9 | 9 | ||
| 10 | config RAID6_PQ | ||
| 11 | tristate | ||
| 12 | |||
| 10 | config BITREVERSE | 13 | config BITREVERSE |
| 11 | tristate | 14 | tristate |
| 12 | 15 | ||
diff --git a/lib/Makefile b/lib/Makefile index 0bfabba1bb32..e6a3763b8212 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
| @@ -69,6 +69,7 @@ obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate/ | |||
| 69 | obj-$(CONFIG_REED_SOLOMON) += reed_solomon/ | 69 | obj-$(CONFIG_REED_SOLOMON) += reed_solomon/ |
| 70 | obj-$(CONFIG_LZO_COMPRESS) += lzo/ | 70 | obj-$(CONFIG_LZO_COMPRESS) += lzo/ |
| 71 | obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ | 71 | obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ |
| 72 | obj-$(CONFIG_RAID6_PQ) += raid6/ | ||
| 72 | 73 | ||
| 73 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o | 74 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o |
| 74 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o | 75 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o |
diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile new file mode 100644 index 000000000000..19bf32da644f --- /dev/null +++ b/lib/raid6/Makefile | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | obj-$(CONFIG_RAID6_PQ) += raid6_pq.o | ||
| 2 | |||
| 3 | raid6_pq-y += raid6algos.o raid6recov.o raid6tables.o \ | ||
| 4 | raid6int1.o raid6int2.o raid6int4.o \ | ||
| 5 | raid6int8.o raid6int16.o raid6int32.o \ | ||
| 6 | raid6altivec1.o raid6altivec2.o raid6altivec4.o \ | ||
| 7 | raid6altivec8.o \ | ||
| 8 | raid6mmx.o raid6sse1.o raid6sse2.o | ||
| 9 | hostprogs-y += mktables | ||
| 10 | |||
| 11 | quiet_cmd_unroll = UNROLL $@ | ||
| 12 | cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ | ||
| 13 | < $< > $@ || ( rm -f $@ && exit 1 ) | ||
| 14 | |||
| 15 | ifeq ($(CONFIG_ALTIVEC),y) | ||
| 16 | altivec_flags := -maltivec -mabi=altivec | ||
| 17 | endif | ||
| 18 | |||
| 19 | targets += raid6int1.c | ||
| 20 | $(obj)/raid6int1.c: UNROLL := 1 | ||
| 21 | $(obj)/raid6int1.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 22 | $(call if_changed,unroll) | ||
| 23 | |||
| 24 | targets += raid6int2.c | ||
| 25 | $(obj)/raid6int2.c: UNROLL := 2 | ||
| 26 | $(obj)/raid6int2.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 27 | $(call if_changed,unroll) | ||
| 28 | |||
| 29 | targets += raid6int4.c | ||
| 30 | $(obj)/raid6int4.c: UNROLL := 4 | ||
| 31 | $(obj)/raid6int4.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 32 | $(call if_changed,unroll) | ||
| 33 | |||
| 34 | targets += raid6int8.c | ||
| 35 | $(obj)/raid6int8.c: UNROLL := 8 | ||
| 36 | $(obj)/raid6int8.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 37 | $(call if_changed,unroll) | ||
| 38 | |||
| 39 | targets += raid6int16.c | ||
| 40 | $(obj)/raid6int16.c: UNROLL := 16 | ||
| 41 | $(obj)/raid6int16.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 42 | $(call if_changed,unroll) | ||
| 43 | |||
| 44 | targets += raid6int32.c | ||
| 45 | $(obj)/raid6int32.c: UNROLL := 32 | ||
| 46 | $(obj)/raid6int32.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
| 47 | $(call if_changed,unroll) | ||
| 48 | |||
| 49 | CFLAGS_raid6altivec1.o += $(altivec_flags) | ||
| 50 | targets += raid6altivec1.c | ||
| 51 | $(obj)/raid6altivec1.c: UNROLL := 1 | ||
| 52 | $(obj)/raid6altivec1.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 53 | $(call if_changed,unroll) | ||
| 54 | |||
| 55 | CFLAGS_raid6altivec2.o += $(altivec_flags) | ||
| 56 | targets += raid6altivec2.c | ||
| 57 | $(obj)/raid6altivec2.c: UNROLL := 2 | ||
| 58 | $(obj)/raid6altivec2.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 59 | $(call if_changed,unroll) | ||
| 60 | |||
| 61 | CFLAGS_raid6altivec4.o += $(altivec_flags) | ||
| 62 | targets += raid6altivec4.c | ||
| 63 | $(obj)/raid6altivec4.c: UNROLL := 4 | ||
| 64 | $(obj)/raid6altivec4.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 65 | $(call if_changed,unroll) | ||
| 66 | |||
| 67 | CFLAGS_raid6altivec8.o += $(altivec_flags) | ||
| 68 | targets += raid6altivec8.c | ||
| 69 | $(obj)/raid6altivec8.c: UNROLL := 8 | ||
| 70 | $(obj)/raid6altivec8.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
| 71 | $(call if_changed,unroll) | ||
| 72 | |||
| 73 | quiet_cmd_mktable = TABLE $@ | ||
| 74 | cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) | ||
| 75 | |||
| 76 | targets += raid6tables.c | ||
| 77 | $(obj)/raid6tables.c: $(obj)/mktables FORCE | ||
| 78 | $(call if_changed,mktable) | ||
diff --git a/drivers/md/mktables.c b/lib/raid6/mktables.c index 3b1500843bba..3b1500843bba 100644 --- a/drivers/md/mktables.c +++ b/lib/raid6/mktables.c | |||
diff --git a/drivers/md/raid6algos.c b/lib/raid6/raid6algos.c index 1f8784bfd44d..1f8784bfd44d 100644 --- a/drivers/md/raid6algos.c +++ b/lib/raid6/raid6algos.c | |||
diff --git a/drivers/md/raid6altivec.uc b/lib/raid6/raid6altivec.uc index 2654d5c854be..2654d5c854be 100644 --- a/drivers/md/raid6altivec.uc +++ b/lib/raid6/raid6altivec.uc | |||
diff --git a/drivers/md/raid6int.uc b/lib/raid6/raid6int.uc index d1e276a14fab..d1e276a14fab 100644 --- a/drivers/md/raid6int.uc +++ b/lib/raid6/raid6int.uc | |||
diff --git a/drivers/md/raid6mmx.c b/lib/raid6/raid6mmx.c index e7f6c13132bf..e7f6c13132bf 100644 --- a/drivers/md/raid6mmx.c +++ b/lib/raid6/raid6mmx.c | |||
diff --git a/drivers/md/raid6recov.c b/lib/raid6/raid6recov.c index 2609f00e0d61..2609f00e0d61 100644 --- a/drivers/md/raid6recov.c +++ b/lib/raid6/raid6recov.c | |||
diff --git a/drivers/md/raid6sse1.c b/lib/raid6/raid6sse1.c index b274dd5eab8f..b274dd5eab8f 100644 --- a/drivers/md/raid6sse1.c +++ b/lib/raid6/raid6sse1.c | |||
diff --git a/drivers/md/raid6sse2.c b/lib/raid6/raid6sse2.c index 6ed6c6c0389f..6ed6c6c0389f 100644 --- a/drivers/md/raid6sse2.c +++ b/lib/raid6/raid6sse2.c | |||
diff --git a/drivers/md/raid6test/Makefile b/lib/raid6/raid6test/Makefile index 2874cbef529d..2874cbef529d 100644 --- a/drivers/md/raid6test/Makefile +++ b/lib/raid6/raid6test/Makefile | |||
diff --git a/drivers/md/raid6test/test.c b/lib/raid6/raid6test/test.c index 7a930318b17d..7a930318b17d 100644 --- a/drivers/md/raid6test/test.c +++ b/lib/raid6/raid6test/test.c | |||
diff --git a/drivers/md/raid6x86.h b/lib/raid6/raid6x86.h index 4c22c1568558..4c22c1568558 100644 --- a/drivers/md/raid6x86.h +++ b/lib/raid6/raid6x86.h | |||
diff --git a/drivers/md/unroll.awk b/lib/raid6/unroll.awk index c6aa03631df8..c6aa03631df8 100644 --- a/drivers/md/unroll.awk +++ b/lib/raid6/unroll.awk | |||
