Skip to content

Commit 93b3a68

Browse files
johnpgarrykawasaki
authored andcommitted
md/rc: test atomic writes for dm-mirror
Raise the required device size to 16MB, which would be enough to create a 2M mirror array. Signed-off-by: John Garry <[email protected]> Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
1 parent 9c015b7 commit 93b3a68

4 files changed

Lines changed: 28 additions & 6 deletions

File tree

tests/md/002

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ test() {
2323
num_tgts=1
2424
add_host=4
2525
per_host_store=true
26-
dev_size_mb=5
26+
dev_size_mb=16
2727
)
2828

2929
echo "Running md_atomics_test"

tests/md/002.out

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,4 +181,17 @@ TEST 9 dm-stripe step 4 - perform a pwritev2 with size of sysfs_atomic_unit_max_
181181
TEST 10 dm-stripe step 4 - perform a pwritev2 with size of sysfs_atomic_unit_min_bytes with RWF_ATOMIC flag - pwritev2 should fail - pass
182182
pwrite: Invalid argument
183183
TEST 11 dm-stripe step 4 - perform a pwritev2 with a size of sysfs_atomic_write_unit_max_bytes - LBS bytes with RWF_ATOMIC flag - pwritev2 should fail - pass
184+
TEST 1 dm-mirror step 1 - Verify md sysfs atomic attributes matches - pass
185+
TEST 2 dm-mirror step 1 - Verify sysfs atomic attributes - pass
186+
TEST 3 dm-mirror step 1 - Verify md sysfs_atomic_write_max is equal to expected_atomic_write_max - pass
187+
TEST 4 dm-mirror step 1 - Verify sysfs atomic_write_unit_max_bytes = expected_atomic_write_unit_max - pass
188+
TEST 5 dm-mirror step 1 - Verify sysfs atomic_write_unit_boundary_bytes = expected atomic_write_unit_boundary_bytes - pass
189+
TEST 6 dm-mirror step 1 - Verify statx stx_atomic_write_unit_min - pass
190+
TEST 7 dm-mirror step 1 - Verify statx stx_atomic_write_unit_max - pass
191+
TEST 8 dm-mirror step 1 - perform a pwritev2 with size of sysfs_atomic_unit_max_bytes with RWF_ATOMIC flag - pwritev2 should fail - pass
192+
pwrite: Invalid argument
193+
TEST 9 dm-mirror step 1 - perform a pwritev2 with size of sysfs_atomic_unit_max_bytes + LBS bytes with RWF_ATOMIC flag - pwritev2 should not be succesful - pass
194+
TEST 10 dm-mirror step 1 - perform a pwritev2 with size of sysfs_atomic_unit_min_bytes with RWF_ATOMIC flag - pwritev2 should fail - pass
195+
pwrite: Invalid argument
196+
TEST 11 dm-mirror step 1 - perform a pwritev2 with a size of sysfs_atomic_write_unit_max_bytes - LBS bytes with RWF_ATOMIC flag - pwritev2 should fail - pass
184197
Test complete

tests/md/003

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ requires() {
1818

1919
device_requires() {
2020
_require_test_dev_is_nvme
21-
_require_test_dev_size 5m
21+
_require_test_dev_size 16m
2222
}
2323

2424
test_device_array() {

tests/md/rc

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ _stacked_atomic_test_requires() {
2020
_have_driver raid1
2121
_have_driver raid10
2222
_have_driver dm-mod
23+
_have_driver dm-mirror
2324
_have_program vgcreate
2425
_have_program lvm
2526
}
@@ -157,8 +158,7 @@ _md_atomics_test() {
157158
raw_atomic_write_boundary=0;
158159
fi
159160

160-
161-
for personality in raid0 raid1 raid10 dm-linear dm-stripe; do
161+
for personality in raid0 raid1 raid10 dm-linear dm-stripe dm-mirror; do
162162
local step_limit
163163
if [ "$personality" = raid0 ] || [ "$personality" = raid10 ] || \
164164
[ "$personality" = dm-stripe ]
@@ -227,7 +227,8 @@ _md_atomics_test() {
227227
md_dev=$(readlink /dev/md/blktests_md | sed 's|\.\./||')
228228
fi
229229

230-
if [ "$personality" = dm-linear ] || [ "$personality" = dm-stripe ]
230+
if [ "$personality" = dm-linear ] || [ "$personality" = dm-stripe ] || \
231+
[ "$personality" = dm-mirror ]
231232
then
232233
for i in "${MD_DEVICES[@]}"; do
233234
pvremove --force /dev/"$i" 2> /dev/null 1>&2
@@ -266,6 +267,13 @@ _md_atomics_test() {
266267
md_dev=$(readlink /dev/mapper/blktests_vg00-blktests_lv | sed 's|\.\./||')
267268
fi
268269

270+
if [ "$personality" = dm-mirror ]
271+
then
272+
echo y | lvm lvcreate --type mirror -m3 -L 2M -n blktests_lv blktests_vg00 2> /dev/null 1>&2
273+
274+
md_dev=$(readlink /dev/mapper/blktests_vg00-blktests_lv | sed 's|\.\./||')
275+
fi
276+
269277
md_dev_sysfs="/sys/devices/virtual/block/${md_dev}"
270278

271279
sysfs_logical_block_size=$(< "${md_dev_sysfs}"/queue/logical_block_size)
@@ -437,7 +445,8 @@ _md_atomics_test() {
437445
done
438446
fi
439447

440-
if [ "$personality" = dm-linear ] || [ "$personality" = dm-stripe ]
448+
if [ "$personality" = dm-linear ] || [ "$personality" = dm-stripe ] || \
449+
[ "$personality" = dm-mirror ]
441450
then
442451
lvremove --force /dev/mapper/blktests_vg00-blktests_lv 2> /dev/null 1>&2
443452
vgremove --force blktests_vg00 2> /dev/null 1>&2

0 commit comments

Comments
 (0)