* regression with commit "null_blk: add helper for deleting the nullb_list"
[not found] <cki.3B19A2362B.9VSYF9B2I1@redhat.com>
@ 2020-07-04 11:37 ` Yi Zhang
2020-07-04 14:25 ` Jens Axboe
0 siblings, 1 reply; 3+ messages in thread
From: Yi Zhang @ 2020-07-04 11:37 UTC (permalink / raw)
To: chaitanya.kulkarni, axboe; +Cc: CKI Project, linux-block, Rachel Sibley
Hello
commit[1] on linux-block/for-next introduced one regression which lead kernel panic, could you help check it?
[1]
commit a65dee60e5384a648bc49c4ffbd3960d3fa354b0 (origin/for-5.9/drivers)
Author: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Date: Thu Jul 2 18:31:30 2020 -0700
null_blk: add helper for deleting the nullb_list
[2]
[ 301.942805] run blktests block/006 at 2020-07-04 07:28:13
[ 310.483587] ------------[ cut here ]------------
[ 310.488208] kernel BUG at lib/idr.c:491!
[ 310.492141] invalid opcode: 0000 [#1] SMP NOPTI
[ 310.496674] CPU: 9 PID: 2261 Comm: modprobe Tainted: G I 5.8.0-rc3+ #1
[ 310.504498] Hardware name: Dell Inc. PowerEdge R640/06NR82, BIOS 2.6.4 04/09/2020
[ 310.511982] RIP: 0010:ida_free+0x140/0x150
[ 310.516076] Code: 00 48 89 ef e8 e1 75 fd ff 48 3d 00 04 00 00 75 ce 48 89 ef e8 11 89 e3 ff eb ba 48 8d 74 2d 01 48 89 e7 e8 92 02 01 00 eb b5 <0f> 0b e8 29 65 46 00 66 0f 1f 84 00 00 00 00 00 41 55 4c 8d 6f 08
[ 310.534823] RSP: 0018:ffffa84d40fd7e50 EFLAGS: 00010282
[ 310.540047] RAX: 00000000003fffe7 RBX: 00000000ffff9c5d RCX: 0000000080800001
[ 310.547171] RDX: ffff9465fb695b01 RSI: 00000000ffff9c5d RDI: ffffffffc0546740
[ 310.554305] RBP: ffffffffc0546750 R08: 0000000000000001 R09: 0000000000000000
[ 310.561435] R10: ffff945746955760 R11: 0000000000000000 R12: 000000000000005d
[ 310.568559] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 310.575683] FS: 00007f8d250b7740(0000) GS:ffff9466bf840000(0000) knlGS:0000000000000000
[ 310.583760] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 310.589498] CR2: 00007f8d24553230 CR3: 000000101fc96003 CR4: 00000000007606e0
[ 310.596622] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 310.603753] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 310.610878] PKRU: 55555554
[ 310.613592] Call Trace:
[ 310.616049] null_del_dev+0x2b/0x120 [null_blk]
[ 310.620579] null_delete_nullb_list+0x2c/0x38 [null_blk]
[ 310.625890] null_exit+0x2f/0xc4d [null_blk]
[ 310.630165] __x64_sys_delete_module+0x153/0x210
[ 310.634782] ? __prepare_exit_to_usermode+0x6d/0x1c0
[ 310.639748] do_syscall_64+0x4d/0x90
[ 310.643327] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 310.648377] RIP: 0033:0x7f8d24583e57
[ 310.651958] Code: Bad RIP value.
[ 310.655189] RSP: 002b:00007ffed28bbf68 EFLAGS: 00000202 ORIG_RAX: 00000000000000b0
[ 310.662748] RAX: ffffffffffffffda RBX: 0000000001727410 RCX: 00007f8d24583e57
[ 310.669879] RDX: 0000000000000000 RSI: 0000000000000800 RDI: 0000000001727478
[ 310.677010] RBP: 0000000000000000 R08: 00007f8d2484d060 R09: 00007f8d245f8a00
[ 310.684136] R10: 00007ffed28bb360 R11: 0000000000000202 R12: 0000000000000000
[ 310.691267] R13: 0000000000000001 R14: 0000000001727478 R15: 0000000000000000
[ 310.698392] Modules linked in: null_blk(-) rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache intel_rapl_msr intel_rapl_common rfkill skx_edac x86_pkg_temp_thermal sunrpc intel_powerclamp coretemp kvm_intel kvm iTCO_wdt dell_smbios vfat iTCO_vendor_support fat wmi_bmof dell_wmi_descriptor ipmi_ssif irqbypass crc32_pclmul dcdbas ghash_clmulni_intel aesni_intel acpi_ipmi crypto_simd ipmi_si mei_me cryptd ipmi_devintf i2c_i801 sg mei glue_helper dax_pmem_compat pcspkr i2c_smbus lpc_ich device_dax wmi ipmi_msghandler dax_pmem_core acpi_power_meter dm_multipath ip_tables xfs libcrc32c nd_pmem nd_btt sd_mod t10_pi crc_t10dif crct10dif_generic mgag200 drm_vram_helper drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm_ttm_helper ttm drm ahci libahci libata tg3 crct10dif_pclmul megaraid_sas crct10dif_common nfit crc32c_intel ptp pps_core i2c_algo_bit libnvdimm dm_mirror dm_region_hash dm_log dm_mod
[ 310.780000] ---[ end trace 61a20a5d291b22f8 ]---
[ 310.811342] RIP: 0010:ida_free+0x140/0x150
[ 310.815444] Code: 00 48 89 ef e8 e1 75 fd ff 48 3d 00 04 00 00 75 ce 48 89 ef e8 11 89 e3 ff eb ba 48 8d 74 2d 01 48 89 e7 e8 92 02 01 00 eb b5 <0f> 0b e8 29 65 46 00 66 0f 1f 84 00 00 00 00 00 41 55 4c 8d 6f 08
[ 310.834190] RSP: 0018:ffffa84d40fd7e50 EFLAGS: 00010282
[ 310.839416] RAX: 00000000003fffe7 RBX: 00000000ffff9c5d RCX: 0000000080800001
[ 310.846549] RDX: ffff9465fb695b01 RSI: 00000000ffff9c5d RDI: ffffffffc0546740
[ 310.853679] RBP: ffffffffc0546750 R08: 0000000000000001 R09: 0000000000000000
[ 310.860812] R10: ffff945746955760 R11: 0000000000000000 R12: 000000000000005d
[ 310.867945] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 310.875076] FS: 00007f8d250b7740(0000) GS:ffff9466bf840000(0000) knlGS:0000000000000000
[ 310.883161] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 310.888908] CR2: 00007f8d24553230 CR3: 000000101fc96003 CR4: 00000000007606e0
[ 310.896040] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 310.903172] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 310.910306] PKRU: 55555554
[ 310.913019] Kernel panic - not syncing: Fatal exception
[ 311.326108] Kernel Offset: 0x1a400000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 311.351017] ---[ end Kernel panic - not syncing: Fatal exception ]---
Best Regards,
Yi Zhang
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: regression with commit "null_blk: add helper for deleting the nullb_list"
2020-07-04 11:37 ` regression with commit "null_blk: add helper for deleting the nullb_list" Yi Zhang
@ 2020-07-04 14:25 ` Jens Axboe
2020-07-06 2:08 ` Chaitanya Kulkarni
0 siblings, 1 reply; 3+ messages in thread
From: Jens Axboe @ 2020-07-04 14:25 UTC (permalink / raw)
To: Yi Zhang, chaitanya.kulkarni; +Cc: CKI Project, linux-block, Rachel Sibley
On 7/4/20 5:37 AM, Yi Zhang wrote:
> Hello
>
> commit[1] on linux-block/for-next introduced one regression which lead kernel panic, could you help check it?
>
> [1]
> commit a65dee60e5384a648bc49c4ffbd3960d3fa354b0 (origin/for-5.9/drivers)
> Author: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
> Date: Thu Jul 2 18:31:30 2020 -0700
>
> null_blk: add helper for deleting the nullb_list
Chaitanya, did you even test your patch?
+ nullb = list_first_entry(nullb_list.next, struct nullb, list);
I'm guessing no... Dropped it.
--
Jens Axboe
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: regression with commit "null_blk: add helper for deleting the nullb_list"
2020-07-04 14:25 ` Jens Axboe
@ 2020-07-06 2:08 ` Chaitanya Kulkarni
0 siblings, 0 replies; 3+ messages in thread
From: Chaitanya Kulkarni @ 2020-07-06 2:08 UTC (permalink / raw)
To: Jens Axboe; +Cc: Yi Zhang, CKI Project, linux-block, Rachel Sibley
Hi Jens,
On 7/4/20 7:25 AM, Jens Axboe wrote:
> Chaitanya, did you even test your patch?
>
> + nullb = list_first_entry(nullb_list.next, struct nullb, list);
>
> I'm guessing no... Dropped it.
>
I've made a complete blunder out of sending V2 with replacing
list_first_entry(), there was a manual mistake I found in history
while testing which never tested V2 even though it was compiled.
However testing of the patch V1 was done and no panic or
any other issue was observed [1].
Again sorry the trouble, I'm documenting V3 (with test log) at
the end of the email which is tested [2][2.1][2.2], if and when we
decide to get in I'll rebase and resend.
Going forward I'll make sure to add a test log for every patch.
Regards,
Chaitanya
[1] Results with and without V1 :-
1. No kernel panic.
2. Same tests (block/009, /block/017 and block/018 failed) with and
without patch V1.
3. The new blktest which is yet to submit upstream :-
a. Loads the null_blk nr_devices=1024 in the background and runs
the modprobe -r null_blk in the while loop is successful with
and without V1 the cases.
b. Creates 100 memory backed null_blk devices with 500M size sleep
0.50 in the creation loop, deletes and runs the rmmod null_blk in
the foreground. No panic was observed with and without patch V1.
[1.1] Test without V1:-
(for-next) # git log -1 drivers/block/null_blk_main.c
commit c62b37d96b6eb3ec5ae4cbe00db107bf15aebc93
Author: Christoph Hellwig <hch@lst.de>
Date: Wed Jul 1 10:59:43 2020 +0200
block: move ->make_request_fn to struct block_device_operations
The make_request_fn is a little weird in that it sits directly in
struct request_queue instead of an operation vector. Replace it with
a block_device_operations method called submit_bio (which describes
much
better what it does). Also remove the request_queue argument to it, as
the queue can be derived pretty trivially from the bio.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(for-next) #
blktests: -
------------
block/001 (stress device hotplugging)
block/001 (stress device hotplugging) [passed]
runtime 30.515s ... 30.580s
block/002 (remove a device while running blktrace)
block/002 (remove a device while running blktrace) [passed]
runtime 1.010s ... 1.070s
block/006 (run null-blk in blocking mode)
read iops 5972239 ...
block/006 (run null-blk in blocking mode) [passed]
read iops 5972239 ... 5912466
runtime 19.125s ... 19.637s
block/009 (check page-cache coherency after BLKDISCARD)
block/009 (check page-cache coherency after BLKDISCARD) [failed]
runtime 0.502s ... 0.503s
--- tests/block/009.out 2019-09-13 21:45:10.342000000 -0700
+++ /root/blktests/results/nodev/block/009.out.bad 2020-07-05
17:16:20.575000000 -0700
@@ -1,6 +1,10 @@
Running block/009
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
+1fa4000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa
+*
+1fa5000 0000 0000 0000 0000 0000 0000 0000 0000
+*
...
(Run 'diff -u tests/block/009.out
/root/blktests/results/nodev/block/009.out.bad' to see the entire diff)
block/010 (run I/O on null_blk with shared and non-shared tags)
runtime 34.827s ...
block/010 (run I/O on null_blk with shared and non-shared tags) [passed]
runtime 34.827s ... 34.327s
Shared tags read iops 6647074 ... 6677498
Individual tags read iops ... 6774567
block/014 (run null-blk with blk-mq and timeout injection configured)
[not run]
null_blk module does not have parameter timeout
block/015 (run null-blk on different schedulers with requeue injection
configured) [not run]
null_blk module does not have parameter requeue
block/016 (send a signal to a process waiting on a frozen queue)
block/016 (send a signal to a process waiting on a frozen queue) [passed]
runtime 0.003s ... 68.088s
block/017 (do I/O and check the inflight counter)
block/017 (do I/O and check the inflight counter) [failed]
runtime 32.694s ... 32.694s
--- tests/block/017.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/017.out.bad 2020-07-05
17:18:36.021000000 -0700
@@ -7,8 +7,8 @@
sysfs inflight writes 1
sysfs stat 2
diskstats 2
-sysfs inflight reads 0
+sysfs inflight reads 8
sysfs inflight writes 0
-sysfs stat 0
...
(Run 'diff -u tests/block/017.out
/root/blktests/results/nodev/block/017.out.bad' to see the entire diff)
block/018 (do I/O and check iostats times)
block/018 (do I/O and check iostats times) [failed]
runtime 66.096s ... 66.099s
--- tests/block/018.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/018.out.bad 2020-07-05
17:19:42.154000000 -0700
@@ -5,6 +5,6 @@
write 0 s
read 1 s
write 1 s
-read 2 s
+read 11 s
write 3 s
Test complete
block/020 (run null-blk on different schedulers with only one hardware tag)
block/020 (run null-blk on different schedulers with only one hardware
tag) [passed]
runtime 33.318s ... 33.295s
block/021 (read/write nr_requests on null-blk with different schedulers)
block/021 (read/write nr_requests on null-blk with different schedulers)
[passed]
runtime 5.114s ... 5.245s
block/022 (Test hang caused by freeze/unfreeze sequence)
block/022 (Test hang caused by freeze/unfreeze sequence) [passed]
runtime 30.119s ... 30.140s
block/023 (do I/O on all null_blk queue modes)
block/023 (do I/O on all null_blk queue modes) [passed]
runtime 0.308s ... 0.317s
block/024 (do I/O faster than a jiffy and check iostats times)
block/024 (do I/O faster than a jiffy and check iostats times) [passed]
runtime 2.604s ... 2.621s
block/025 (do a huge discard with 4k sector size)
block/025 (do a huge discard with 4k sector size) [passed]
runtime 4.066s ... 4.102s
block/027 (stress device hotplugging with running fio jobs and different
schedulers) [not run]
cgroup2 is not mounted
block/028 (do I/O on scsi_debug with DIF/DIX enabled)
block/028 (do I/O on scsi_debug with DIF/DIX enabled) [passed]
runtime 25.682s ... 25.240s
block/029 (trigger blk_mq_update_nr_hw_queues())
block/029 (trigger blk_mq_update_nr_hw_queues()) [passed]
runtime 31.639s ... 31.585s
block/030 (trigger the blk_mq_realloc_hw_ctxs() error path) [not run]
null_blk module does not have parameter init_hctx
[1.2] Testing With V1:-
# git log drivers/block/null_blk_main.c
commit 3ded4bf8c904205ab8d8c223d926b90434048789 (HEAD -> for-next)
Author: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Date: Sun Jul 5 16:31:14 2020 -0700
null_blk: add helper for deleting the nullb_list
The nullb_list is destroyed when error occurs in the null_init() and
when removing the module in null_exit(). The identical code is repeated
in those functions which can be a part of helper function. This also
removes the extra variable struct nullb *nullb in the both functions.
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
blktests (master) # ./check tests/block/
block/001 (stress device hotplugging)
block/001 (stress device hotplugging) [passed]
runtime 30.580s ... 30.565s
block/002 (remove a device while running blktrace)
block/002 (remove a device while running blktrace) [passed]
runtime 1.070s ... 1.011s
block/006 (run null-blk in blocking mode)
read iops 5912466 ...
block/006 (run null-blk in blocking mode) [passed]
read iops 5912466 ... 5975217
runtime 19.637s ... 19.131s
block/009 (check page-cache coherency after BLKDISCARD)
block/009 (check page-cache coherency after BLKDISCARD) [failed]
runtime 0.504s ... 0.510s
--- tests/block/009.out 2019-09-13 21:45:10.342000000 -0700
+++ /root/blktests/results/nodev/block/009.out.bad 2020-07-05
17:26:18.164000000 -0700
@@ -1,6 +1,10 @@
Running block/009
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
+1fab000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa
+*
+1fac000 0000 0000 0000 0000 0000 0000 0000 0000
+*
...
(Run 'diff -u tests/block/009.out
/root/blktests/results/nodev/block/009.out.bad' to see the entire diff)
block/010 (run I/O on null_blk with shared and non-shared tags)
Individual tags read iops 6774567 ...
runtime 34.327s ...
block/010 (run I/O on null_blk with shared and non-shared tags) [passed]
Individual tags read iops 6774567 ... 6768417
runtime 34.327s ... 34.392s
Shared tags read iops 6677498 ... 6585757
block/014 (run null-blk with blk-mq and timeout injection configured)
[not run]
null_blk module does not have parameter timeout
block/015 (run null-blk on different schedulers with requeue injection
configured) [not run]
null_blk module does not have parameter requeue
block/016 (send a signal to a process waiting on a frozen queue)
block/016 (send a signal to a process waiting on a frozen queue) [passed]
runtime 68.088s ... 68.103s
block/017 (do I/O and check the inflight counter)
block/017 (do I/O and check the inflight counter) [failed]
runtime 32.694s ... 32.698s
--- tests/block/017.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/017.out.bad 2020-07-05
17:28:33.672000000 -0700
@@ -7,8 +7,8 @@
sysfs inflight writes 1
sysfs stat 2
diskstats 2
-sysfs inflight reads 0
+sysfs inflight reads 3
sysfs inflight writes 0
-sysfs stat 0
...
(Run 'diff -u tests/block/017.out
/root/blktests/results/nodev/block/017.out.bad' to see the entire diff)
block/018 (do I/O and check iostats times)
block/018 (do I/O and check iostats times) [failed]
runtime 66.099s ... 66.102s
--- tests/block/018.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/018.out.bad 2020-07-05
17:29:39.807000000 -0700
@@ -5,6 +5,6 @@
write 0 s
read 1 s
write 1 s
-read 2 s
+read 18 s
write 3 s
Test complete
block/020 (run null-blk on different schedulers with only one hardware tag)
block/020 (run null-blk on different schedulers with only one hardware
tag) [passed]
runtime 33.295s ... 33.910s
block/021 (read/write nr_requests on null-blk with different schedulers)
block/021 (read/write nr_requests on null-blk with different schedulers)
[passed]
runtime 5.245s ... 5.216s
block/022 (Test hang caused by freeze/unfreeze sequence)
block/022 (Test hang caused by freeze/unfreeze sequence) [passed]
runtime 30.140s ... 30.099s
block/023 (do I/O on all null_blk queue modes)
block/023 (do I/O on all null_blk queue modes) [passed]
runtime 0.317s ... 0.313s
block/024 (do I/O faster than a jiffy and check iostats times)
block/024 (do I/O faster than a jiffy and check iostats times) [passed]
runtime 2.621s ... 2.633s
block/025 (do a huge discard with 4k sector size)
block/025 (do a huge discard with 4k sector size) [passed]
runtime 4.102s ... 4.405s
block/027 (stress device hotplugging with running fio jobs and different
schedulers) [not run]
cgroup2 is not mounted
block/028 (do I/O on scsi_debug with DIF/DIX enabled)
block/028 (do I/O on scsi_debug with DIF/DIX enabled) [passed]
runtime 25.240s ... 25.293s
block/029 (trigger blk_mq_update_nr_hw_queues())
block/029 (trigger blk_mq_update_nr_hw_queues()) [passed]
runtime 31.585s ... 31.574s
block/030 (trigger the blk_mq_realloc_hw_ctxs() error path) [not run]
null_blk module does not have parameter init_hctx
[2] V3 :-
[2.1] Patch :-
From 06ec96c98367e516bc47f317629385967f128039 Mon Sep 17 00:00:00 2001
From: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Date: Sun, 5 Jul 2020 16:31:14 -0700
Subject: [PATCH V3] null_blk: add helper for deleting the nullb_list
The nullb_list is destroyed when error occurs in the null_init() and
when removing the module in null_exit(). The identical code is repeated
in those functions which can be a part of helper function. This also
removes the extra variable struct nullb *nullb in the both functions.
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
---
* Changes from V1: -
--------------------
1. Add missing sign-off and reviewed-by tag.
2. Use list_entry_first() instead of list_entry().
* Changes from V2 : -
---------------------
1. Fix the wrong first parameter for list_first_entry();.
2. Update Reviewed-by tag.
---
drivers/block/null_blk_main.c | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c
index 907c6858aec0..f1216e7218e4 100644
--- a/drivers/block/null_blk_main.c
+++ b/drivers/block/null_blk_main.c
@@ -1868,11 +1868,23 @@ static int null_add_dev(struct nullb_device *dev)
return rv;
}
+static void null_delete_nullb_list(void)
+{
+ struct nullb_device *dev;
+ struct nullb *nullb;
+
+ while (!list_empty(&nullb_list)) {
+ nullb = list_first_entry(&nullb_list, struct nullb, list);
+ dev = nullb->dev;
+ null_del_dev(nullb);
+ null_free_dev(dev);
+ }
+}
+
static int __init null_init(void)
{
int ret = 0;
unsigned int i;
- struct nullb *nullb;
struct nullb_device *dev;
if (g_bs > PAGE_SIZE) {
@@ -1939,12 +1951,7 @@ static int __init null_init(void)
return 0;
err_dev:
- while (!list_empty(&nullb_list)) {
- nullb = list_entry(nullb_list.next, struct nullb, list);
- dev = nullb->dev;
- null_del_dev(nullb);
- null_free_dev(dev);
- }
+ null_delete_nullb_list();
unregister_blkdev(null_major, "nullb");
err_conf:
configfs_unregister_subsystem(&nullb_subsys);
@@ -1956,21 +1963,12 @@ static int __init null_init(void)
static void __exit null_exit(void)
{
- struct nullb *nullb;
-
configfs_unregister_subsystem(&nullb_subsys);
unregister_blkdev(null_major, "nullb");
mutex_lock(&lock);
- while (!list_empty(&nullb_list)) {
- struct nullb_device *dev;
-
- nullb = list_entry(nullb_list.next, struct nullb, list);
- dev = nullb->dev;
- null_del_dev(nullb);
- null_free_dev(dev);
- }
+ null_delete_nullb_list();
mutex_unlock(&lock);
if (g_queue_mode == NULL_Q_MQ && shared_tags)
--
2.26.0
[2.2] blktest test report V3:-
# ./check tests/block/
block/001 (stress device hotplugging)
block/001 (stress device hotplugging) [passed]
runtime 30.549s ... 30.520s
block/002 (remove a device while running blktrace)
block/002 (remove a device while running blktrace) [passed]
runtime 1.035s ... 1.108s
block/006 (run null-blk in blocking mode)
read iops 5999576 ...
block/006 (run null-blk in blocking mode) [passed]
read iops 5999576 ... 5987158
runtime 19.319s ... 19.398s
block/009 (check page-cache coherency after BLKDISCARD)
block/009 (check page-cache coherency after BLKDISCARD) [failed]
runtime 0.505s ... 0.515s
--- tests/block/009.out 2019-09-13 21:45:10.342000000 -0700
+++ /root/blktests/results/nodev/block/009.out.bad 2020-07-05
18:21:34.958000000 -0700
@@ -1,6 +1,10 @@
Running block/009
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
+1fab000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa
+*
+1fac000 0000 0000 0000 0000 0000 0000 0000 0000
+*
...
(Run 'diff -u tests/block/009.out
/root/blktests/results/nodev/block/009.out.bad' to see the entire diff)
block/010 (run I/O on null_blk with shared and non-shared tags)
Individual tags read iops 6706192 ...
runtime 34.675s ...
block/010 (run I/O on null_blk with shared and non-shared tags) [passed]
Individual tags read iops 6706192 ... 6649050
runtime 34.675s ... 34.645s
Shared tags read iops 6390103 ... 6613013
block/014 (run null-blk with blk-mq and timeout injection configured)
[not run]
null_blk module does not have parameter timeout
block/015 (run null-blk on different schedulers with requeue injection
configured) [not run]
null_blk module does not have parameter requeue
block/016 (send a signal to a process waiting on a frozen queue)
block/016 (send a signal to a process waiting on a frozen queue) [passed]
runtime 68.093s ... 68.094s
block/017 (do I/O and check the inflight counter)
block/017 (do I/O and check the inflight counter) [failed]
runtime 32.695s ... 32.696s
--- tests/block/017.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/017.out.bad 2020-07-05
18:23:50.686000000 -0700
@@ -7,8 +7,8 @@
sysfs inflight writes 1
sysfs stat 2
diskstats 2
-sysfs inflight reads 0
+sysfs inflight reads 8
sysfs inflight writes 0
-sysfs stat 0
...
(Run 'diff -u tests/block/017.out
/root/blktests/results/nodev/block/017.out.bad' to see the entire diff)
block/018 (do I/O and check iostats times)
block/018 (do I/O and check iostats times) [failed]
runtime 66.090s ... 66.097s
--- tests/block/018.out 2019-09-13 21:45:10.344000000 -0700
+++ /root/blktests/results/nodev/block/018.out.bad 2020-07-05
18:24:56.816000000 -0700
@@ -5,6 +5,6 @@
write 0 s
read 1 s
write 1 s
-read 2 s
+read 18 s
write 3 s
Test complete
block/020 (run null-blk on different schedulers with only one hardware tag)
block/020 (run null-blk on different schedulers with only one hardware
tag) [passed]
runtime 33.370s ... 33.657s
block/021 (read/write nr_requests on null-blk with different schedulers)
block/021 (read/write nr_requests on null-blk with different schedulers)
[passed]
runtime 5.162s ... 5.271s
block/022 (Test hang caused by freeze/unfreeze sequence)
block/022 (Test hang caused by freeze/unfreeze sequence) [passed]
runtime 30.117s ... 30.089s
block/023 (do I/O on all null_blk queue modes)
block/023 (do I/O on all null_blk queue modes) [passed]
runtime 0.318s ... 0.310s
block/024 (do I/O faster than a jiffy and check iostats times)
block/024 (do I/O faster than a jiffy and check iostats times) [passed]
runtime 2.629s ... 2.626s
block/025 (do a huge discard with 4k sector size)
block/025 (do a huge discard with 4k sector size) [passed]
runtime 4.208s ... 4.124s
block/027 (stress device hotplugging with running fio jobs and different
schedulers) [not run]
cgroup2 is not mounted
block/028 (do I/O on scsi_debug with DIF/DIX enabled)
block/028 (do I/O on scsi_debug with DIF/DIX enabled) [passed]
runtime 25.274s ... 25.423s
block/029 (trigger blk_mq_update_nr_hw_queues())
block/029 (trigger blk_mq_update_nr_hw_queues()) [passed]
runtime 31.585s ... 31.547s
block/030 (trigger the blk_mq_realloc_hw_ctxs() error path) [not run]
null_blk module does not have parameter init_hctx
[2.2] modprobe test with on-membacked test :-
Terminal 1:-
(for-next) # modprobe null_blk nr_devices=1024
(for-next) # modprobe -r null_blk
Terminal 2:-
blktests (master) # while [ 1 ] ; do modprobe -r null_blk;
if [ $? -eq 0 ]; then
break; fi; sleep 1; done
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
[2.3] Mixed mondprobe test Membacked and non-membacked :-
# ./tests.sh
+ NN=100
+ modprobe -r null_blk
+ modprobe null_blk nr_devices=10 gb=1
+ echo loading devices
loading devices
+ declare -a arr
++ seq 0 100
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb0
+ mkdir config/nullb/nullb0
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb0/index
+ IDX=10
+ echo -n ' 0 '
0 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb1
+ mkdir config/nullb/nullb1
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb1/index
+ IDX=11
+ echo -n ' 1 '
1 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb2
+ mkdir config/nullb/nullb2
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb2/index
+ IDX=12
+ echo -n ' 2 '
2 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb3
+ mkdir config/nullb/nullb3
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb3/index
+ IDX=13
+ echo -n ' 3 '
3 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb4
+ mkdir config/nullb/nullb4
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb4/index
+ IDX=14
+ echo -n ' 4 '
4 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb5
+ mkdir config/nullb/nullb5
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb5/index
+ IDX=15
+ echo -n ' 5 '
5 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb6
+ mkdir config/nullb/nullb6
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb6/index
+ IDX=16
+ echo -n ' 6 '
6 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb7
+ mkdir config/nullb/nullb7
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb7/index
+ IDX=17
+ echo -n ' 7 '
7 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb8
+ mkdir config/nullb/nullb8
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb8/index
+ IDX=18
+ echo -n ' 8 '
8 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb9
+ mkdir config/nullb/nullb9
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb9/index
+ IDX=19
+ echo -n ' 9 '
9 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb10
+ mkdir config/nullb/nullb10
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb10/index
+ IDX=20
+ echo -n ' 10 '
10 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb11
+ mkdir config/nullb/nullb11
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb11/index
+ IDX=21
+ echo -n ' 11 '
11 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb12
+ mkdir config/nullb/nullb12
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb12/index
+ IDX=22
+ echo -n ' 12 '
12 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb13
+ mkdir config/nullb/nullb13
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb13/index
+ IDX=23
+ echo -n ' 13 '
13 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb14
+ mkdir config/nullb/nullb14
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb14/index
+ IDX=24
+ echo -n ' 14 '
14 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb15
+ mkdir config/nullb/nullb15
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb15/index
+ IDX=25
+ echo -n ' 15 '
15 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb16
+ mkdir config/nullb/nullb16
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb16/index
+ IDX=26
+ echo -n ' 16 '
16 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb17
+ mkdir config/nullb/nullb17
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb17/index
+ IDX=27
+ echo -n ' 17 '
17 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb18
+ mkdir config/nullb/nullb18
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb18/index
+ IDX=28
+ echo -n ' 18 '
18 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb19
+ mkdir config/nullb/nullb19
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb19/index
+ IDX=29
+ echo -n ' 19 '
19 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb20
+ mkdir config/nullb/nullb20
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb20/index
+ IDX=30
+ echo -n ' 20 '
20 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb21
+ mkdir config/nullb/nullb21
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb21/index
+ IDX=31
+ echo -n ' 21 '
21 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb22
+ mkdir config/nullb/nullb22
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb22/index
+ IDX=32
+ echo -n ' 22 '
22 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb23
+ mkdir config/nullb/nullb23
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb23/index
+ IDX=33
+ echo -n ' 23 '
23 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb24
+ mkdir config/nullb/nullb24
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb24/index
+ IDX=34
+ echo -n ' 24 '
24 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb25
+ mkdir config/nullb/nullb25
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb25/index
+ IDX=35
+ echo -n ' 25 '
25 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb26
+ mkdir config/nullb/nullb26
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb26/index
+ IDX=36
+ echo -n ' 26 '
26 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb27
+ mkdir config/nullb/nullb27
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb27/index
+ IDX=37
+ echo -n ' 27 '
27 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb28
+ mkdir config/nullb/nullb28
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb28/index
+ IDX=38
+ echo -n ' 28 '
28 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb29
+ mkdir config/nullb/nullb29
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb29/index
+ IDX=39
+ echo -n ' 29 '
29 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb30
+ mkdir config/nullb/nullb30
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb30/index
+ IDX=40
+ echo -n ' 30 '
30 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb31
+ mkdir config/nullb/nullb31
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb31/index
+ IDX=41
+ echo -n ' 31 '
31 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb32
+ mkdir config/nullb/nullb32
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb32/index
+ IDX=42
+ echo -n ' 32 '
32 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb33
+ mkdir config/nullb/nullb33
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb33/index
+ IDX=43
+ echo -n ' 33 '
33 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb34
+ mkdir config/nullb/nullb34
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb34/index
+ IDX=44
+ echo -n ' 34 '
34 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb35
+ mkdir config/nullb/nullb35
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb35/index
+ IDX=45
+ echo -n ' 35 '
35 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb36
+ mkdir config/nullb/nullb36
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb36/index
+ IDX=46
+ echo -n ' 36 '
36 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb37
+ mkdir config/nullb/nullb37
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb37/index
+ IDX=47
+ echo -n ' 37 '
37 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb38
+ mkdir config/nullb/nullb38
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb38/index
+ IDX=48
+ echo -n ' 38 '
38 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb39
+ mkdir config/nullb/nullb39
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb39/index
+ IDX=49
+ echo -n ' 39 '
39 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb40
+ mkdir config/nullb/nullb40
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb40/index
+ IDX=50
+ echo -n ' 40 '
40 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb41
+ mkdir config/nullb/nullb41
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb41/index
+ IDX=51
+ echo -n ' 41 '
41 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb42
+ mkdir config/nullb/nullb42
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb42/index
+ IDX=52
+ echo -n ' 42 '
42 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb43
+ mkdir config/nullb/nullb43
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb43/index
+ IDX=53
+ echo -n ' 43 '
43 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb44
+ mkdir config/nullb/nullb44
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb44/index
+ IDX=54
+ echo -n ' 44 '
44 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb45
+ mkdir config/nullb/nullb45
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb45/index
+ IDX=55
+ echo -n ' 45 '
45 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb46
+ mkdir config/nullb/nullb46
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb46/index
+ IDX=56
+ echo -n ' 46 '
46 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb47
+ mkdir config/nullb/nullb47
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb47/index
+ IDX=57
+ echo -n ' 47 '
47 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb48
+ mkdir config/nullb/nullb48
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb48/index
+ IDX=58
+ echo -n ' 48 '
48 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb49
+ mkdir config/nullb/nullb49
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb49/index
+ IDX=59
+ echo -n ' 49 '
49 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb50
+ mkdir config/nullb/nullb50
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb50/index
+ IDX=60
+ echo -n ' 50 '
50 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb51
+ mkdir config/nullb/nullb51
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb51/index
+ IDX=61
+ echo -n ' 51 '
51 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb52
+ mkdir config/nullb/nullb52
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb52/index
+ IDX=62
+ echo -n ' 52 '
52 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb53
+ mkdir config/nullb/nullb53
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb53/index
+ IDX=63
+ echo -n ' 53 '
53 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb54
+ mkdir config/nullb/nullb54
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb54/index
+ IDX=64
+ echo -n ' 54 '
54 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb55
+ mkdir config/nullb/nullb55
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb55/index
+ IDX=65
+ echo -n ' 55 '
55 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb56
+ mkdir config/nullb/nullb56
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb56/index
+ IDX=66
+ echo -n ' 56 '
56 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb57
+ mkdir config/nullb/nullb57
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb57/index
+ IDX=67
+ echo -n ' 57 '
57 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb58
+ mkdir config/nullb/nullb58
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb58/index
+ IDX=68
+ echo -n ' 58 '
58 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb59
+ mkdir config/nullb/nullb59
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb59/index
+ IDX=69
+ echo -n ' 59 '
59 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb60
+ mkdir config/nullb/nullb60
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb60/index
+ IDX=70
+ echo -n ' 60 '
60 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb61
+ mkdir config/nullb/nullb61
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb61/index
+ IDX=71
+ echo -n ' 61 '
61 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb62
+ mkdir config/nullb/nullb62
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb62/index
+ IDX=72
+ echo -n ' 62 '
62 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb63
+ mkdir config/nullb/nullb63
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb63/index
+ IDX=73
+ echo -n ' 63 '
63 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb64
+ mkdir config/nullb/nullb64
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb64/index
+ IDX=74
+ echo -n ' 64 '
64 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb65
+ mkdir config/nullb/nullb65
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb65/index
+ IDX=75
+ echo -n ' 65 '
65 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb66
+ mkdir config/nullb/nullb66
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb66/index
+ IDX=76
+ echo -n ' 66 '
66 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb67
+ mkdir config/nullb/nullb67
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb67/index
+ IDX=77
+ echo -n ' 67 '
67 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb68
+ mkdir config/nullb/nullb68
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb68/index
+ IDX=78
+ echo -n ' 68 '
68 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb69
+ mkdir config/nullb/nullb69
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb69/index
+ IDX=79
+ echo -n ' 69 '
69 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb70
+ mkdir config/nullb/nullb70
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb70/index
+ IDX=80
+ echo -n ' 70 '
70 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb71
+ mkdir config/nullb/nullb71
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb71/index
+ IDX=81
+ echo -n ' 71 '
71 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb72
+ mkdir config/nullb/nullb72
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb72/index
+ IDX=82
+ echo -n ' 72 '
72 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb73
+ mkdir config/nullb/nullb73
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb73/index
+ IDX=83
+ echo -n ' 73 '
73 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb74
+ mkdir config/nullb/nullb74
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb74/index
+ IDX=84
+ echo -n ' 74 '
74 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb75
+ mkdir config/nullb/nullb75
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb75/index
+ IDX=85
+ echo -n ' 75 '
75 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb76
+ mkdir config/nullb/nullb76
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb76/index
+ IDX=86
+ echo -n ' 76 '
76 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb77
+ mkdir config/nullb/nullb77
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb77/index
+ IDX=87
+ echo -n ' 77 '
77 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb78
+ mkdir config/nullb/nullb78
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb78/index
+ IDX=88
+ echo -n ' 78 '
78 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb79
+ mkdir config/nullb/nullb79
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb79/index
+ IDX=89
+ echo -n ' 79 '
79 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb80
+ mkdir config/nullb/nullb80
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb80/index
+ IDX=90
+ echo -n ' 80 '
80 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb81
+ mkdir config/nullb/nullb81
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb81/index
+ IDX=91
+ echo -n ' 81 '
81 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb82
+ mkdir config/nullb/nullb82
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb82/index
+ IDX=92
+ echo -n ' 82 '
82 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb83
+ mkdir config/nullb/nullb83
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb83/index
+ IDX=93
+ echo -n ' 83 '
83 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb84
+ mkdir config/nullb/nullb84
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb84/index
+ IDX=94
+ echo -n ' 84 '
84 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb85
+ mkdir config/nullb/nullb85
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb85/index
+ IDX=95
+ echo -n ' 85 '
85 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb86
+ mkdir config/nullb/nullb86
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb86/index
+ IDX=96
+ echo -n ' 86 '
86 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb87
+ mkdir config/nullb/nullb87
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb87/index
+ IDX=97
+ echo -n ' 87 '
87 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb88
+ mkdir config/nullb/nullb88
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb88/index
+ IDX=98
+ echo -n ' 88 '
88 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb89
+ mkdir config/nullb/nullb89
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb89/index
+ IDX=99
+ echo -n ' 89 '
89 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb90
+ mkdir config/nullb/nullb90
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb90/index
+ IDX=100
+ echo -n ' 90 '
90 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb91
+ mkdir config/nullb/nullb91
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb91/index
+ IDX=101
+ echo -n ' 91 '
91 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb92
+ mkdir config/nullb/nullb92
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb92/index
+ IDX=102
+ echo -n ' 92 '
92 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb93
+ mkdir config/nullb/nullb93
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb93/index
+ IDX=103
+ echo -n ' 93 '
93 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb94
+ mkdir config/nullb/nullb94
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb94/index
+ IDX=104
+ echo -n ' 94 '
94 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb95
+ mkdir config/nullb/nullb95
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb95/index
+ IDX=105
+ echo -n ' 95 '
95 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb96
+ mkdir config/nullb/nullb96
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb96/index
+ IDX=106
+ echo -n ' 96 '
96 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb97
+ mkdir config/nullb/nullb97
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb97/index
+ IDX=107
+ echo -n ' 97 '
97 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb98
+ mkdir config/nullb/nullb98
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb98/index
+ IDX=108
+ echo -n ' 98 '
98 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb99
+ mkdir config/nullb/nullb99
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb99/index
+ IDX=109
+ echo -n ' 99 '
99 + sleep .50
+ for i in '`seq 0 $NN`'
+ NULLB_DIR=config/nullb/nullb100
+ mkdir config/nullb/nullb100
+ echo 1
+ echo 512
+ echo 500
+ echo 1
++ cat config/nullb/nullb100/index
+ IDX=110
+ echo -n ' 100 '
100 + sleep .50
+ lsblk
+ grep null
+ sort
nullb0 252:0 0 1G 0 disk
nullb100 252:100 0 500M 0 disk
nullb101 252:101 0 500M 0 disk
nullb102 252:102 0 500M 0 disk
nullb10 252:10 0 500M 0 disk
nullb103 252:103 0 500M 0 disk
nullb104 252:104 0 500M 0 disk
nullb105 252:105 0 500M 0 disk
nullb106 252:106 0 500M 0 disk
nullb107 252:107 0 500M 0 disk
nullb108 252:108 0 500M 0 disk
nullb109 252:109 0 500M 0 disk
nullb110 252:110 0 500M 0 disk
nullb11 252:11 0 500M 0 disk
nullb12 252:12 0 500M 0 disk
nullb1 252:1 0 1G 0 disk
nullb13 252:13 0 500M 0 disk
nullb14 252:14 0 500M 0 disk
nullb15 252:15 0 500M 0 disk
nullb16 252:16 0 500M 0 disk
nullb17 252:17 0 500M 0 disk
nullb18 252:18 0 500M 0 disk
nullb19 252:19 0 500M 0 disk
nullb20 252:20 0 500M 0 disk
nullb21 252:21 0 500M 0 disk
nullb22 252:22 0 500M 0 disk
nullb2 252:2 0 1G 0 disk
nullb23 252:23 0 500M 0 disk
nullb24 252:24 0 500M 0 disk
nullb25 252:25 0 500M 0 disk
nullb26 252:26 0 500M 0 disk
nullb27 252:27 0 500M 0 disk
nullb28 252:28 0 500M 0 disk
nullb29 252:29 0 500M 0 disk
nullb30 252:30 0 500M 0 disk
nullb31 252:31 0 500M 0 disk
nullb32 252:32 0 500M 0 disk
nullb3 252:3 0 1G 0 disk
nullb33 252:33 0 500M 0 disk
nullb34 252:34 0 500M 0 disk
nullb35 252:35 0 500M 0 disk
nullb36 252:36 0 500M 0 disk
nullb37 252:37 0 500M 0 disk
nullb38 252:38 0 500M 0 disk
nullb39 252:39 0 500M 0 disk
nullb40 252:40 0 500M 0 disk
nullb41 252:41 0 500M 0 disk
nullb42 252:42 0 500M 0 disk
nullb4 252:4 0 1G 0 disk
nullb43 252:43 0 500M 0 disk
nullb44 252:44 0 500M 0 disk
nullb45 252:45 0 500M 0 disk
nullb46 252:46 0 500M 0 disk
nullb47 252:47 0 500M 0 disk
nullb48 252:48 0 500M 0 disk
nullb49 252:49 0 500M 0 disk
nullb50 252:50 0 500M 0 disk
nullb51 252:51 0 500M 0 disk
nullb52 252:52 0 500M 0 disk
nullb5 252:5 0 1G 0 disk
nullb53 252:53 0 500M 0 disk
nullb54 252:54 0 500M 0 disk
nullb55 252:55 0 500M 0 disk
nullb56 252:56 0 500M 0 disk
nullb57 252:57 0 500M 0 disk
nullb58 252:58 0 500M 0 disk
nullb59 252:59 0 500M 0 disk
nullb60 252:60 0 500M 0 disk
nullb61 252:61 0 500M 0 disk
nullb62 252:62 0 500M 0 disk
nullb6 252:6 0 1G 0 disk
nullb63 252:63 0 500M 0 disk
nullb64 252:64 0 500M 0 disk
nullb65 252:65 0 500M 0 disk
nullb66 252:66 0 500M 0 disk
nullb67 252:67 0 500M 0 disk
nullb68 252:68 0 500M 0 disk
nullb69 252:69 0 500M 0 disk
nullb70 252:70 0 500M 0 disk
nullb71 252:71 0 500M 0 disk
nullb72 252:72 0 500M 0 disk
nullb7 252:7 0 1G 0 disk
nullb73 252:73 0 500M 0 disk
nullb74 252:74 0 500M 0 disk
nullb75 252:75 0 500M 0 disk
nullb76 252:76 0 500M 0 disk
nullb77 252:77 0 500M 0 disk
nullb78 252:78 0 500M 0 disk
nullb79 252:79 0 500M 0 disk
nullb80 252:80 0 500M 0 disk
nullb81 252:81 0 500M 0 disk
nullb82 252:82 0 500M 0 disk
nullb8 252:8 0 1G 0 disk
nullb83 252:83 0 500M 0 disk
nullb84 252:84 0 500M 0 disk
nullb85 252:85 0 500M 0 disk
nullb86 252:86 0 500M 0 disk
nullb87 252:87 0 500M 0 disk
nullb88 252:88 0 500M 0 disk
nullb89 252:89 0 500M 0 disk
nullb90 252:90 0 500M 0 disk
nullb91 252:91 0 500M 0 disk
nullb92 252:92 0 500M 0 disk
nullb9 252:9 0 1G 0 disk
nullb93 252:93 0 500M 0 disk
nullb94 252:94 0 500M 0 disk
nullb95 252:95 0 500M 0 disk
nullb96 252:96 0 500M 0 disk
nullb97 252:97 0 500M 0 disk
nullb98 252:98 0 500M 0 disk
nullb99 252:99 0 500M 0 disk
+ sleep 1
+ dmesg -c
[ 5690.756095] null_blk: module loaded
+ lsblk
+ grep null
nullb23 252:23 0 500M 0 disk
nullb51 252:51 0 500M 0 disk
nullb108 252:108 0 500M 0 disk
nullb13 252:13 0 500M 0 disk
nullb41 252:41 0 500M 0 disk
nullb1 252:1 0 1G 0 disk
nullb98 252:98 0 500M 0 disk
nullb31 252:31 0 500M 0 disk
nullb88 252:88 0 500M 0 disk
nullb21 252:21 0 500M 0 disk
nullb106 252:106 0 500M 0 disk
nullb78 252:78 0 500M 0 disk
nullb11 252:11 0 500M 0 disk
nullb68 252:68 0 500M 0 disk
nullb96 252:96 0 500M 0 disk
nullb58 252:58 0 500M 0 disk
nullb86 252:86 0 500M 0 disk
nullb48 252:48 0 500M 0 disk
nullb104 252:104 0 500M 0 disk
nullb76 252:76 0 500M 0 disk
nullb8 252:8 0 1G 0 disk
nullb38 252:38 0 500M 0 disk
nullb66 252:66 0 500M 0 disk
nullb94 252:94 0 500M 0 disk
nullb28 252:28 0 500M 0 disk
nullb56 252:56 0 500M 0 disk
nullb84 252:84 0 500M 0 disk
nullb18 252:18 0 500M 0 disk
nullb46 252:46 0 500M 0 disk
nullb102 252:102 0 500M 0 disk
nullb74 252:74 0 500M 0 disk
nullb6 252:6 0 1G 0 disk
nullb36 252:36 0 500M 0 disk
nullb64 252:64 0 500M 0 disk
nullb92 252:92 0 500M 0 disk
nullb26 252:26 0 500M 0 disk
nullb54 252:54 0 500M 0 disk
nullb110 252:110 0 500M 0 disk
nullb82 252:82 0 500M 0 disk
nullb16 252:16 0 500M 0 disk
nullb44 252:44 0 500M 0 disk
nullb100 252:100 0 500M 0 disk
nullb72 252:72 0 500M 0 disk
nullb4 252:4 0 1G 0 disk
nullb34 252:34 0 500M 0 disk
nullb62 252:62 0 500M 0 disk
nullb90 252:90 0 500M 0 disk
nullb24 252:24 0 500M 0 disk
nullb52 252:52 0 500M 0 disk
nullb109 252:109 0 500M 0 disk
nullb80 252:80 0 500M 0 disk
nullb14 252:14 0 500M 0 disk
nullb42 252:42 0 500M 0 disk
nullb70 252:70 0 500M 0 disk
nullb2 252:2 0 1G 0 disk
nullb99 252:99 0 500M 0 disk
nullb32 252:32 0 500M 0 disk
nullb60 252:60 0 500M 0 disk
nullb89 252:89 0 500M 0 disk
nullb22 252:22 0 500M 0 disk
nullb50 252:50 0 500M 0 disk
nullb107 252:107 0 500M 0 disk
nullb79 252:79 0 500M 0 disk
nullb12 252:12 0 500M 0 disk
nullb40 252:40 0 500M 0 disk
nullb69 252:69 0 500M 0 disk
nullb0 252:0 0 1G 0 disk
nullb97 252:97 0 500M 0 disk
nullb30 252:30 0 500M 0 disk
nullb59 252:59 0 500M 0 disk
nullb87 252:87 0 500M 0 disk
nullb20 252:20 0 500M 0 disk
nullb49 252:49 0 500M 0 disk
nullb105 252:105 0 500M 0 disk
nullb77 252:77 0 500M 0 disk
nullb10 252:10 0 500M 0 disk
nullb9 252:9 0 1G 0 disk
nullb39 252:39 0 500M 0 disk
nullb67 252:67 0 500M 0 disk
nullb95 252:95 0 500M 0 disk
nullb29 252:29 0 500M 0 disk
nullb57 252:57 0 500M 0 disk
nullb85 252:85 0 500M 0 disk
nullb19 252:19 0 500M 0 disk
nullb47 252:47 0 500M 0 disk
nullb103 252:103 0 500M 0 disk
nullb75 252:75 0 500M 0 disk
nullb7 252:7 0 1G 0 disk
nullb37 252:37 0 500M 0 disk
nullb65 252:65 0 500M 0 disk
nullb93 252:93 0 500M 0 disk
nullb27 252:27 0 500M 0 disk
nullb55 252:55 0 500M 0 disk
nullb83 252:83 0 500M 0 disk
nullb17 252:17 0 500M 0 disk
nullb45 252:45 0 500M 0 disk
nullb101 252:101 0 500M 0 disk
nullb73 252:73 0 500M 0 disk
nullb5 252:5 0 1G 0 disk
nullb35 252:35 0 500M 0 disk
nullb63 252:63 0 500M 0 disk
nullb91 252:91 0 500M 0 disk
nullb25 252:25 0 500M 0 disk
nullb53 252:53 0 500M 0 disk
nullb81 252:81 0 500M 0 disk
nullb15 252:15 0 500M 0 disk
nullb43 252:43 0 500M 0 disk
nullb71 252:71 0 500M 0 disk
nullb3 252:3 0 1G 0 disk
nullb33 252:33 0 500M 0 disk
nullb61 252:61 0 500M 0 disk
+ echo 'waiting '
waiting
+ echo deleteing devices
deleteing devices
++ seq 0 100
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb0
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb1
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb2
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb3
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb4
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb5
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb6
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb7
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb8
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb9
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb10
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb11
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb12
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb13
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb14
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb15
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb16
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb17
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb18
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb19
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb20
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb21
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb22
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb23
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb24
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb25
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb26
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb27
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb28
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb29
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb30
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb31
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb32
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb33
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb34
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb35
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb36
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb37
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb38
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb39
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb40
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb41
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb42
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb43
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb44
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb45
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb46
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb47
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb48
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb49
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb50
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb51
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb52
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb53
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb54
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb55
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb56
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb57
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb58
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb59
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb60
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb61
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb62
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb63
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb64
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb65
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb66
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb67
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb68
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb69
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb70
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb71
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb72
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb73
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb74
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb75
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb76
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb77
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb78
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb79
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb80
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb81
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb82
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb83
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb84
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb85
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb86
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb87
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb88
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb89
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb90
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb91
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb92
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb93
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb94
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb95
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb96
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb97
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb98
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb99
+ for i in '`seq 0 $NN`'
+ rmdir config/nullb/nullb100
+ modprobe -r null_blk
Terminal 2 :-
# while [ 1 ] ; do modprobe -r null_blk;
if [ $? -eq 0 ]; then break; fi; sleep
1; done
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
modprobe: FATAL: Module null_blk is in use.
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-07-06 2:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <cki.3B19A2362B.9VSYF9B2I1@redhat.com>
2020-07-04 11:37 ` regression with commit "null_blk: add helper for deleting the nullb_list" Yi Zhang
2020-07-04 14:25 ` Jens Axboe
2020-07-06 2:08 ` Chaitanya Kulkarni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).