diff options
author | Mingli Yu <mingli.yu@windriver.com> | 2023-03-16 16:27:40 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-03-16 17:49:38 +0000 |
commit | 47b0e320f4c440aaeab270aac34c29bf0d0288b8 (patch) | |
tree | afee148cf051b584f8f9b60faf77f21baf56abf7 /meta | |
parent | 78465fcbbba997e70b06d9e7eb3cace6e29dff92 (diff) | |
download | poky-47b0e320f4c440aaeab270aac34c29bf0d0288b8.tar.gz |
mdadm: Fix raid0 tests
Backport patches to fix raid0 tests:
tests/00raid0
tests/00readonly
tests/03r0assem
tests/04r0update
tests/04update-metadata
(From OE-Core rev: cb8ab2674d155fa8d90956c3522653b013ce6e6c)
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
4 files changed, 185 insertions, 0 deletions
diff --git a/meta/recipes-extended/mdadm/files/0001-tests-00readonly-Run-udevadm-settle-before-setting-r.patch b/meta/recipes-extended/mdadm/files/0001-tests-00readonly-Run-udevadm-settle-before-setting-r.patch new file mode 100644 index 0000000000..c621c082e8 --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-tests-00readonly-Run-udevadm-settle-before-setting-r.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | From 39b381252c32275079344d30de18b76fda4bba26 Mon Sep 17 00:00:00 2001 | ||
2 | From: Logan Gunthorpe <logang@deltatee.com> | ||
3 | Date: Wed, 27 Jul 2022 15:52:45 -0600 | ||
4 | Subject: [PATCH] tests/00readonly: Run udevadm settle before setting ro | ||
5 | |||
6 | In some recent kernel versions, 00readonly fails with: | ||
7 | |||
8 | mdadm: failed to set readonly for /dev/md0: Device or resource busy | ||
9 | ERROR: array is not read-only! | ||
10 | |||
11 | This was traced down to a race condition with udev holding a reference | ||
12 | to the block device at the same time as trying to set it read only. | ||
13 | |||
14 | To fix this, call udevadm settle before setting the array read only. | ||
15 | |||
16 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=39b381252c32275079344d30de18b76fda4bba26] | ||
17 | |||
18 | Signed-off-by: Logan Gunthorpe <logang@deltatee.com> | ||
19 | Signed-off-by: Jes Sorensen <jsorensen@fb.com> | ||
20 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
21 | --- | ||
22 | tests/00readonly | 1 + | ||
23 | 1 file changed, 1 insertion(+) | ||
24 | |||
25 | diff --git a/tests/00readonly b/tests/00readonly | ||
26 | index 39202487..afe243b3 100644 | ||
27 | --- a/tests/00readonly | ||
28 | +++ b/tests/00readonly | ||
29 | @@ -12,6 +12,7 @@ do | ||
30 | $dev1 $dev2 $dev3 $dev4 --assume-clean | ||
31 | check nosync | ||
32 | check $level | ||
33 | + udevadm settle | ||
34 | mdadm -ro $md0 | ||
35 | check readonly | ||
36 | state=$(cat /sys/block/md0/md/array_state) | ||
37 | -- | ||
38 | 2.25.1 | ||
39 | |||
diff --git a/meta/recipes-extended/mdadm/files/0001-tests-04update-metadata-avoid-passing-chunk-size-to.patch b/meta/recipes-extended/mdadm/files/0001-tests-04update-metadata-avoid-passing-chunk-size-to.patch new file mode 100644 index 0000000000..9098fb2540 --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-tests-04update-metadata-avoid-passing-chunk-size-to.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From de045db607b1ac4b70fc2a8878463e029c2ab1dc Mon Sep 17 00:00:00 2001 | ||
2 | From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com> | ||
3 | Date: Wed, 22 Jun 2022 14:25:15 -0600 | ||
4 | Subject: [PATCH] tests/04update-metadata: avoid passing chunk size to raid1 | ||
5 | |||
6 | '04update-metadata' test fails with error, "specifying chunk size is | ||
7 | forbidden for this level" added by commit, 5b30a34aa4b5e. Hence, | ||
8 | correcting the test to ignore passing chunk size to raid1. | ||
9 | |||
10 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=de045db607b1ac4b70fc2a8878463e029c2ab1dc] | ||
11 | |||
12 | Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com> | ||
13 | Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com> | ||
14 | [logang@deltatee.com: fix if/then style and dropped unrelated hunk] | ||
15 | Signed-off-by: Logan Gunthorpe <logang@deltatee.com> | ||
16 | Signed-off-by: Jes Sorensen <jes@trained-monkey.org> | ||
17 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
18 | --- | ||
19 | tests/04update-metadata | 6 +++++- | ||
20 | 1 file changed, 5 insertions(+), 1 deletion(-) | ||
21 | |||
22 | diff --git a/tests/04update-metadata b/tests/04update-metadata | ||
23 | index 08c14af7..2b72a303 100644 | ||
24 | --- a/tests/04update-metadata | ||
25 | +++ b/tests/04update-metadata | ||
26 | @@ -11,7 +11,11 @@ dlist="$dev0 $dev1 $dev2 $dev3" | ||
27 | for ls in linear/4 raid1/1 raid5/3 raid6/2 | ||
28 | do | ||
29 | s=${ls#*/} l=${ls%/*} | ||
30 | - mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist | ||
31 | + if [[ $l == 'raid1' ]]; then | ||
32 | + mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 $dlist | ||
33 | + else | ||
34 | + mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist | ||
35 | + fi | ||
36 | testdev $md0 $s 19904 64 | ||
37 | mdadm -S $md0 | ||
38 | mdadm -A $md0 --update=metadata $dlist | ||
39 | -- | ||
40 | 2.25.1 | ||
41 | |||
diff --git a/meta/recipes-extended/mdadm/files/0001-tests-fix-raid0-tests-for-0.90-metadata.patch b/meta/recipes-extended/mdadm/files/0001-tests-fix-raid0-tests-for-0.90-metadata.patch new file mode 100644 index 0000000000..d2e7d8ee50 --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-tests-fix-raid0-tests-for-0.90-metadata.patch | |||
@@ -0,0 +1,102 @@ | |||
1 | From 14c2161edb77d7294199e8aa7daa9f9d1d0ad5d7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com> | ||
3 | Date: Wed, 22 Jun 2022 14:25:14 -0600 | ||
4 | Subject: [PATCH] tests: fix raid0 tests for 0.90 metadata | ||
5 | |||
6 | Some of the test cases fail because raid0 creation fails with the error, | ||
7 | "0.90 metadata does not support layouts for RAID0" added by commit, | ||
8 | 329dfc28debb. Fix some of the test cases by switching from raid0 to | ||
9 | linear level for 0.9 metadata where possible. | ||
10 | |||
11 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=14c2161edb77d7294199e8aa7daa9f9d1d0ad5d7] | ||
12 | |||
13 | Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com> | ||
14 | Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com> | ||
15 | Signed-off-by: Logan Gunthorpe <logang@deltatee.com> | ||
16 | Signed-off-by: Jes Sorensen <jes@trained-monkey.org> | ||
17 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
18 | --- | ||
19 | tests/00raid0 | 4 ++-- | ||
20 | tests/00readonly | 4 ++++ | ||
21 | tests/03r0assem | 6 +++--- | ||
22 | tests/04r0update | 4 ++-- | ||
23 | tests/04update-metadata | 2 +- | ||
24 | 5 files changed, 12 insertions(+), 8 deletions(-) | ||
25 | |||
26 | diff --git a/tests/00raid0 b/tests/00raid0 | ||
27 | index e6b21cc4..9b8896cb 100644 | ||
28 | --- a/tests/00raid0 | ||
29 | +++ b/tests/00raid0 | ||
30 | @@ -20,8 +20,8 @@ mdadm -S $md0 | ||
31 | # now same again with different chunk size | ||
32 | for chunk in 4 32 256 | ||
33 | do | ||
34 | - mdadm -CR $md0 -e0.90 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2 | ||
35 | - check raid0 | ||
36 | + mdadm -CR $md0 -e0.90 -l linear --chunk $chunk -n3 $dev0 $dev1 $dev2 | ||
37 | + check linear | ||
38 | testdev $md0 3 $mdsize0 $chunk | ||
39 | mdadm -S $md0 | ||
40 | |||
41 | diff --git a/tests/00readonly b/tests/00readonly | ||
42 | index 28b0fa13..39202487 100644 | ||
43 | --- a/tests/00readonly | ||
44 | +++ b/tests/00readonly | ||
45 | @@ -4,6 +4,10 @@ for metadata in 0.9 1.0 1.1 1.2 | ||
46 | do | ||
47 | for level in linear raid0 raid1 raid4 raid5 raid6 raid10 | ||
48 | do | ||
49 | + if [[ $metadata == "0.9" && $level == "raid0" ]]; | ||
50 | + then | ||
51 | + continue | ||
52 | + fi | ||
53 | mdadm -CR $md0 -l $level -n 4 --metadata=$metadata \ | ||
54 | $dev1 $dev2 $dev3 $dev4 --assume-clean | ||
55 | check nosync | ||
56 | diff --git a/tests/03r0assem b/tests/03r0assem | ||
57 | index 6744e322..44df0645 100644 | ||
58 | --- a/tests/03r0assem | ||
59 | +++ b/tests/03r0assem | ||
60 | @@ -68,9 +68,9 @@ mdadm -S $md2 | ||
61 | ### Now for version 0... | ||
62 | |||
63 | mdadm --zero-superblock $dev0 $dev1 $dev2 | ||
64 | -mdadm -CR $md2 -l0 --metadata=0.90 -n3 $dev0 $dev1 $dev2 | ||
65 | -check raid0 | ||
66 | -tst="testdev $md2 3 $mdsize0 512" | ||
67 | +mdadm -CR $md2 -llinear --metadata=0.90 -n3 $dev0 $dev1 $dev2 | ||
68 | +check linear | ||
69 | +tst="testdev $md2 3 $mdsize0 1" | ||
70 | $tst | ||
71 | |||
72 | uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'` | ||
73 | diff --git a/tests/04r0update b/tests/04r0update | ||
74 | index 73ee3b9f..b95efb06 100644 | ||
75 | --- a/tests/04r0update | ||
76 | +++ b/tests/04r0update | ||
77 | @@ -1,7 +1,7 @@ | ||
78 | |||
79 | # create a raid0, re-assemble with a different super-minor | ||
80 | -mdadm -CR -e 0.90 $md0 -l0 -n3 $dev0 $dev1 $dev2 | ||
81 | -testdev $md0 3 $mdsize0 512 | ||
82 | +mdadm -CR -e 0.90 $md0 -llinear -n3 $dev0 $dev1 $dev2 | ||
83 | +testdev $md0 3 $mdsize0 1 | ||
84 | minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'` | ||
85 | mdadm -S /dev/md0 | ||
86 | |||
87 | diff --git a/tests/04update-metadata b/tests/04update-metadata | ||
88 | index 232fc1ff..08c14af7 100644 | ||
89 | --- a/tests/04update-metadata | ||
90 | +++ b/tests/04update-metadata | ||
91 | @@ -8,7 +8,7 @@ set -xe | ||
92 | |||
93 | dlist="$dev0 $dev1 $dev2 $dev3" | ||
94 | |||
95 | -for ls in raid0/4 linear/4 raid1/1 raid5/3 raid6/2 | ||
96 | +for ls in linear/4 raid1/1 raid5/3 raid6/2 | ||
97 | do | ||
98 | s=${ls#*/} l=${ls%/*} | ||
99 | mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist | ||
100 | -- | ||
101 | 2.25.1 | ||
102 | |||
diff --git a/meta/recipes-extended/mdadm/mdadm_4.2.bb b/meta/recipes-extended/mdadm/mdadm_4.2.bb index b5fbc5b18e..ffb42aa13a 100644 --- a/meta/recipes-extended/mdadm/mdadm_4.2.bb +++ b/meta/recipes-extended/mdadm/mdadm_4.2.bb | |||
@@ -28,6 +28,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \ | |||
28 | file://0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \ | 28 | file://0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \ |
29 | file://0001-mdadm-Fix-optional-write-behind-parameter.patch \ | 29 | file://0001-mdadm-Fix-optional-write-behind-parameter.patch \ |
30 | file://0001-tests-02lineargrow-clear-the-superblock-at-every-ite.patch \ | 30 | file://0001-tests-02lineargrow-clear-the-superblock-at-every-ite.patch \ |
31 | file://0001-tests-fix-raid0-tests-for-0.90-metadata.patch \ | ||
32 | file://0001-tests-00readonly-Run-udevadm-settle-before-setting-r.patch \ | ||
33 | file://0001-tests-04update-metadata-avoid-passing-chunk-size-to.patch \ | ||
31 | " | 34 | " |
32 | 35 | ||
33 | SRC_URI[sha256sum] = "461c215670864bb74a4d1a3620684aa2b2f8296dffa06743f26dda5557acf01d" | 36 | SRC_URI[sha256sum] = "461c215670864bb74a4d1a3620684aa2b2f8296dffa06743f26dda5557acf01d" |