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@xxxxxx> 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@xxxxxx> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> (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@xxxxxxx> 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@xxxxxxx> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> 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@xxxxxxx> 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@xxxxxxx> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxx> --- * 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.