mbox series

[0/2] null_blk: null_alloc_page() cleanup

Message ID 20220222152852.26043-1-kch@nvidia.com (mailing list archive)
Headers show
Series null_blk: null_alloc_page() cleanup | expand

Message

Chaitanya Kulkarni Feb. 22, 2022, 3:28 p.m. UTC
Hi,

This has null_alloc_page() cleanup to remvoe the unwanted function
parameter and remove function goto labels where we can return easily.

Below is the test log of memory backed null_blk with fio verify job and
blktests output.

-ck

Chaitanya Kulkarni (2):
  null_blk: remove hardcoded null_alloc_page() param
  null_blk: null_alloc_page() cleanup

 drivers/block/null_blk/main.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

root@dev linux-block (for-next) # gitlog -2
a87f21820d03 (HEAD -> for-next) Merge branch 'for-next' of git://git.kernel.dk/linux-block into for-next
bc2959102cb9 (origin/for-next) Merge branch 'for-5.18/block' into for-next
root@dev linux-block (for-next) # git am p/null-blk-alloc_page/*patch  ; git am --skip 
Patch is empty.
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Applying: null_blk: remove hardcoded null_alloc_page() param
Applying: null_blk: null_alloc_page() cleanup
root@dev linux-block (for-next) # ./compile_nullb.sh 
+ umount /mnt/nullb0
umount: /mnt/nullb0: not mounted.
+ rmdir 'config/nullb/nullb*'
rmdir: failed to remove 'config/nullb/nullb*': No such file or directory
+ dmesg -c
+ modprobe -r null_blk
+ lsmod
+ grep null_blk
+ git apply wip.diff
++ nproc
+ make -j 48 M=drivers/block modules
  CC [M]  drivers/block/pktcdvd.o
  CC [M]  drivers/block/null_blk/main.o
  LD [M]  drivers/block/null_blk/null_blk.o
  MODPOST drivers/block/Module.symvers
  LD [M]  drivers/block/null_blk/null_blk.ko
  LD [M]  drivers/block/pktcdvd.ko
+ HOST=drivers/block/null_blk/
++ uname -r
+ HOST_DEST=/lib/modules/5.17.0-rc3blk+/kernel/drivers/block/null_blk/
+ cp drivers/block/null_blk//null_blk.ko /lib/modules/5.17.0-rc3blk+/kernel/drivers/block/null_blk//
+ ls -lrth /lib/modules/5.17.0-rc3blk+/kernel/drivers/block/null_blk//null_blk.ko
-rw-r--r--. 1 root root 1.1M Feb 22 06:47 /lib/modules/5.17.0-rc3blk+/kernel/drivers/block/null_blk//null_blk.ko
+ sleep 1
+ git checkout include/scsi/scsi_device.h
Updated 1 path from the index
+ dmesg -c
root@dev linux-block (for-next) # ./nullbtests.sh 3
+ rmdir 'config/nullb/nullb*'
rmdir: failed to remove 'config/nullb/nullb*': No such file or directory
+ NN=3
+ modprobe -r null_blk
+ modprobe null_blk nr_devices=0
+ echo loading devices
loading devices
++ seq 0 3
+ for i in `seq 0 $NN`
+ NULLB_DIR=config/nullb/nullb0
+ mkdir config/nullb/nullb0
+ echo 1
+ echo 4096
+ echo 2048
+ echo 2
+ cat config/nullb/nullb0/queue_mode
2
+ echo 1
++ cat config/nullb/nullb0/index
+ IDX=0
+ echo -n ' 0 '
 0 + sleep .50
+ for i in `seq 0 $NN`
+ NULLB_DIR=config/nullb/nullb1
+ mkdir config/nullb/nullb1
+ echo 1
+ echo 4096
+ echo 2048
+ echo 2
+ cat config/nullb/nullb1/queue_mode
2
+ echo 1
++ cat config/nullb/nullb1/index
+ IDX=1
+ echo -n ' 1 '
 1 + sleep .50
+ for i in `seq 0 $NN`
+ NULLB_DIR=config/nullb/nullb2
+ mkdir config/nullb/nullb2
+ echo 1
+ echo 4096
+ echo 2048
+ echo 2
+ cat config/nullb/nullb2/queue_mode
2
+ echo 1
++ cat config/nullb/nullb2/index
+ IDX=2
+ echo -n ' 2 '
 2 + sleep .50
+ for i in `seq 0 $NN`
+ NULLB_DIR=config/nullb/nullb3
+ mkdir config/nullb/nullb3
+ echo 1
+ echo 4096
+ echo 2048
+ echo 2
+ cat config/nullb/nullb3/queue_mode
2
+ echo 1
++ cat config/nullb/nullb3/index
+ IDX=3
+ echo -n ' 3 '
 3 + sleep .50
+ lsblk
+ grep null
+ sort
nullb0  251:0    0    2G  0 disk 
nullb1  251:1    0    2G  0 disk 
nullb2  251:2    0    2G  0 disk 
nullb3  251:3    0    2G  0 disk 
+ sleep 1
+ dmesg -c
[ 1086.952379] null_blk: module loaded
+ lsblk
+ grep null
nullb0  251:0    0    2G  0 disk 
nullb1  251:1    0    2G  0 disk 
nullb2  251:2    0    2G  0 disk 
nullb3  251:3    0    2G  0 disk 
++ seq 0 3
+ for i in `seq 0 $NN`
+ fio fio/verify.fio --filename=/dev/nullb0
write-and-verify: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.27
Starting 1 process
Jobs: 1 (f=1)
write-and-verify: (groupid=0, jobs=1): err= 0: pid=13415: Tue Feb 22 06:47:54 2022
  read: IOPS=93.8k, BW=366MiB/s (384MB/s)(158MiB/431msec)
    slat (nsec): min=7755, max=30347, avg=8214.90, stdev=1225.66
    clat (usec): min=3, max=202, avg=161.41, stdev= 5.89
     lat (usec): min=11, max=210, avg=169.69, stdev= 5.99
    clat percentiles (usec):
     |  1.00th=[  157],  5.00th=[  157], 10.00th=[  157], 20.00th=[  157],
     | 30.00th=[  159], 40.00th=[  159], 50.00th=[  159], 60.00th=[  159],
     | 70.00th=[  163], 80.00th=[  167], 90.00th=[  172], 95.00th=[  174],
     | 99.00th=[  178], 99.50th=[  180], 99.90th=[  188], 99.95th=[  190],
     | 99.99th=[  202]
  write: IOPS=80.0k, BW=313MiB/s (328MB/s)(250MiB/800msec); 0 zone resets
    slat (usec): min=8, max=447, avg=10.37, stdev= 3.22
    clat (usec): min=3, max=434, avg=188.97, stdev=34.29
     lat (usec): min=12, max=801, avg=199.41, stdev=36.21
    clat percentiles (usec):
     |  1.00th=[  169],  5.00th=[  174], 10.00th=[  174], 20.00th=[  176],
     | 30.00th=[  178], 40.00th=[  180], 50.00th=[  182], 60.00th=[  184],
     | 70.00th=[  188], 80.00th=[  192], 90.00th=[  198], 95.00th=[  204],
     | 99.00th=[  375], 99.50th=[  392], 99.90th=[  404], 99.95th=[  408],
     | 99.99th=[  429]
   bw (  KiB/s): min=201320, max=310680, per=80.00%, avg=256000.00, stdev=77329.20, samples=2
   iops        : min=50330, max=77670, avg=64000.00, stdev=19332.30, samples=2
  lat (usec)   : 4=0.01%, 20=0.01%, 50=0.01%, 100=0.01%, 250=97.53%
  lat (usec)   : 500=2.45%
  cpu          : usr=13.66%, sys=86.26%, ctx=1, majf=0, minf=966
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=40428,64000,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=366MiB/s (384MB/s), 366MiB/s-366MiB/s (384MB/s-384MB/s), io=158MiB (166MB), run=431-431msec
  WRITE: bw=313MiB/s (328MB/s), 313MiB/s-313MiB/s (328MB/s-328MB/s), io=250MiB (262MB), run=800-800msec

Disk stats (read/write):
  nullb0: ios=27074/64000, merge=0/0, ticks=42/177, in_queue=219, util=91.51%
+ for i in `seq 0 $NN`
+ fio fio/verify.fio --filename=/dev/nullb1
write-and-verify: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.27
Starting 1 process
Jobs: 1 (f=1)
write-and-verify: (groupid=0, jobs=1): err= 0: pid=13418: Tue Feb 22 06:47:55 2022
  read: IOPS=90.4k, BW=353MiB/s (370MB/s)(158MiB/448msec)
    slat (nsec): min=7664, max=36409, avg=8462.57, stdev=1693.70
    clat (usec): min=3, max=307, avg=167.50, stdev=12.40
     lat (usec): min=17, max=322, avg=176.03, stdev=12.82
    clat percentiles (usec):
     |  1.00th=[  157],  5.00th=[  159], 10.00th=[  161], 20.00th=[  161],
     | 30.00th=[  163], 40.00th=[  163], 50.00th=[  163], 60.00th=[  165],
     | 70.00th=[  169], 80.00th=[  174], 90.00th=[  178], 95.00th=[  182],
     | 99.00th=[  233], 99.50th=[  258], 99.90th=[  289], 99.95th=[  293],
     | 99.99th=[  302]
  write: IOPS=76.9k, BW=300MiB/s (315MB/s)(250MiB/832msec); 0 zone resets
    slat (usec): min=7, max=681, avg=10.81, stdev= 4.43
    clat (usec): min=3, max=1057, avg=196.71, stdev=50.00
     lat (usec): min=12, max=1080, avg=207.59, stdev=52.64
    clat percentiles (usec):
     |  1.00th=[  172],  5.00th=[  174], 10.00th=[  174], 20.00th=[  176],
     | 30.00th=[  178], 40.00th=[  180], 50.00th=[  182], 60.00th=[  184],
     | 70.00th=[  188], 80.00th=[  192], 90.00th=[  212], 95.00th=[  351],
     | 99.00th=[  388], 99.50th=[  396], 99.90th=[  537], 99.95th=[  578],
     | 99.99th=[  971]
   bw (  KiB/s): min=220328, max=291672, per=83.20%, avg=256000.00, stdev=50447.83, samples=2
   iops        : min=55082, max=72918, avg=64000.00, stdev=12611.96, samples=2
  lat (usec)   : 4=0.01%, 20=0.01%, 50=0.01%, 100=0.01%, 250=94.16%
  lat (usec)   : 500=5.73%, 750=0.07%, 1000=0.01%
  lat (msec)   : 2=0.01%
  cpu          : usr=14.86%, sys=85.14%, ctx=3, majf=0, minf=967
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=40495,64000,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=353MiB/s (370MB/s), 353MiB/s-353MiB/s (370MB/s-370MB/s), io=158MiB (166MB), run=448-448msec
  WRITE: bw=300MiB/s (315MB/s), 300MiB/s-300MiB/s (315MB/s-315MB/s), io=250MiB (262MB), run=832-832msec

Disk stats (read/write):
  nullb1: ios=27149/64000, merge=0/0, ticks=45/185, in_queue=231, util=91.81%
+ for i in `seq 0 $NN`
+ fio fio/verify.fio --filename=/dev/nullb2
write-and-verify: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.27
Starting 1 process
Jobs: 1 (f=1)
write-and-verify: (groupid=0, jobs=1): err= 0: pid=13428: Tue Feb 22 06:47:57 2022
  read: IOPS=94.3k, BW=368MiB/s (386MB/s)(158MiB/429msec)
    slat (nsec): min=7705, max=37021, avg=8173.44, stdev=1307.59
    clat (usec): min=3, max=223, avg=160.64, stdev= 6.55
     lat (usec): min=11, max=231, avg=168.87, stdev= 6.70
    clat percentiles (usec):
     |  1.00th=[  155],  5.00th=[  157], 10.00th=[  157], 20.00th=[  157],
     | 30.00th=[  157], 40.00th=[  157], 50.00th=[  157], 60.00th=[  159],
     | 70.00th=[  161], 80.00th=[  167], 90.00th=[  172], 95.00th=[  174],
     | 99.00th=[  180], 99.50th=[  186], 99.90th=[  208], 99.95th=[  210],
     | 99.99th=[  219]
  write: IOPS=80.5k, BW=314MiB/s (330MB/s)(250MiB/795msec); 0 zone resets
    slat (nsec): min=8055, max=92325, avg=10308.42, stdev=2763.18
    clat (usec): min=3, max=430, avg=187.82, stdev=34.03
     lat (usec): min=13, max=454, avg=198.19, stdev=35.85
    clat percentiles (usec):
     |  1.00th=[  169],  5.00th=[  172], 10.00th=[  174], 20.00th=[  176],
     | 30.00th=[  176], 40.00th=[  178], 50.00th=[  180], 60.00th=[  182],
     | 70.00th=[  186], 80.00th=[  190], 90.00th=[  196], 95.00th=[  206],
     | 99.00th=[  371], 99.50th=[  383], 99.90th=[  404], 99.95th=[  416],
     | 99.99th=[  424]
   bw (  KiB/s): min=199456, max=312544, per=79.50%, avg=256000.00, stdev=79965.29, samples=2
   iops        : min=49864, max=78136, avg=64000.00, stdev=19991.32, samples=2
  lat (usec)   : 4=0.01%, 20=0.01%, 50=0.01%, 100=0.01%, 250=97.45%
  lat (usec)   : 500=2.53%
  cpu          : usr=15.04%, sys=84.79%, ctx=1, majf=0, minf=966
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=40451,64000,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=368MiB/s (386MB/s), 368MiB/s-368MiB/s (386MB/s-386MB/s), io=158MiB (166MB), run=429-429msec
  WRITE: bw=314MiB/s (330MB/s), 314MiB/s-314MiB/s (330MB/s-330MB/s), io=250MiB (262MB), run=795-795msec

Disk stats (read/write):
  nullb2: ios=29364/64000, merge=0/0, ticks=45/174, in_queue=220, util=91.64%
+ for i in `seq 0 $NN`
+ fio fio/verify.fio --filename=/dev/nullb3
write-and-verify: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.27
Starting 1 process
Jobs: 1 (f=1)
write-and-verify: (groupid=0, jobs=1): err= 0: pid=13431: Tue Feb 22 06:47:58 2022
  read: IOPS=96.2k, BW=376MiB/s (394MB/s)(158MiB/421msec)
    slat (nsec): min=7393, max=52019, avg=7988.62, stdev=1575.15
    clat (usec): min=3, max=264, avg=157.17, stdev=10.48
     lat (usec): min=11, max=280, avg=165.22, stdev=10.81
    clat percentiles (usec):
     |  1.00th=[  151],  5.00th=[  151], 10.00th=[  151], 20.00th=[  153],
     | 30.00th=[  153], 40.00th=[  153], 50.00th=[  153], 60.00th=[  155],
     | 70.00th=[  157], 80.00th=[  163], 90.00th=[  167], 95.00th=[  169],
     | 99.00th=[  208], 99.50th=[  231], 99.90th=[  251], 99.95th=[  255],
     | 99.99th=[  265]
  write: IOPS=81.8k, BW=320MiB/s (335MB/s)(250MiB/782msec); 0 zone resets
    slat (usec): min=7, max=201, avg=10.15, stdev= 3.28
    clat (usec): min=3, max=689, avg=184.88, stdev=37.38
     lat (usec): min=13, max=699, avg=195.10, stdev=39.33
    clat percentiles (usec):
     |  1.00th=[  163],  5.00th=[  167], 10.00th=[  167], 20.00th=[  169],
     | 30.00th=[  172], 40.00th=[  174], 50.00th=[  176], 60.00th=[  178],
     | 70.00th=[  182], 80.00th=[  186], 90.00th=[  194], 95.00th=[  258],
     | 99.00th=[  375], 99.50th=[  383], 99.90th=[  404], 99.95th=[  412],
     | 99.99th=[  586]
   bw (  KiB/s): min=193824, max=318176, per=78.20%, avg=256000.00, stdev=87930.14, samples=2
   iops        : min=48456, max=79544, avg=64000.00, stdev=21982.54, samples=2
  lat (usec)   : 4=0.01%, 20=0.01%, 50=0.01%, 100=0.01%, 250=96.78%
  lat (usec)   : 500=3.19%, 750=0.01%
  cpu          : usr=15.56%, sys=84.19%, ctx=0, majf=0, minf=968
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=40513,64000,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16

Run status group 0 (all jobs):
   READ: bw=376MiB/s (394MB/s), 376MiB/s-376MiB/s (394MB/s-394MB/s), io=158MiB (166MB), run=421-421msec
  WRITE: bw=320MiB/s (335MB/s), 320MiB/s-320MiB/s (335MB/s-335MB/s), io=250MiB (262MB), run=782-782msec

Disk stats (read/write):
  nullb3: ios=27496/64000, merge=0/0, ticks=42/172, in_queue=215, util=91.45%
+ echo deleteing devices
deleteing devices
++ seq 0 3
+ 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
+ modprobe -r null_blk
root@dev linux-block (for-next) # cdblktests 
root@dev blktests (master) # ./check block
block/001 (stress device hotplugging)                        [passed]
    runtime  94.285s  ...  107.074s
block/002 (remove a device while running blktrace)           [passed]
    runtime  1.836s  ...  1.852s
block/006 (run null-blk in blocking mode)                    [passed]
    read iops  334390    ...  376026
    runtime    197.045s  ...  176.328s
block/009 (check page-cache coherency after BLKDISCARD)      [passed]
    runtime  0.960s  ...  0.970s
block/010 (run I/O on null_blk with shared and non-shared tags) [passed]
    Individual tags read iops    ...  448657
    runtime                      ...  315.200s
    Shared tags read iops        ...  450129
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) [passed]
    runtime  7.206s  ...  7.210s
block/017 (do I/O and check the inflight counter)            [passed]
    runtime  1.847s  ...  1.851s
block/018 (do I/O and check iostats times)                   [passed]
    runtime  5.322s  ...  5.321s
block/020 (run null-blk on different schedulers with only one hardware tag) [passed]
    runtime  31.856s  ...  31.852s
block/021 (read/write nr_requests on null-blk with different schedulers) [passed]
    runtime  4.096s  ...  4.031s
block/022 (Test hang caused by freeze/unfreeze sequence)     [passed]
    runtime  30.270s  ...  30.211s
block/023 (do I/O on all null_blk queue modes)               [passed]
    runtime  0.630s  ...  0.629s
block/024 (do I/O faster than a jiffy and check iostats times) [passed]
    runtime  3.042s  ...  3.046s
block/025 (do a huge discard with 4k sector size)            [passed]
    runtime  4.369s  ...  4.397s
block/027 (stress device hotplugging with running fio jobs and different schedulers) [passed]
    runtime  21.158s  ...  21.039s
block/028 (do I/O on scsi_debug with DIF/DIX enabled)        [passed]
    runtime  57.059s  ...  57.230s
block/029 (trigger blk_mq_update_nr_hw_queues())             [passed]
    runtime  30.511s  ...  30.535s
block/030 (trigger the blk_mq_realloc_hw_ctxs() error path)  [not run]
    null_blk module does not have parameter init_hctx
block/031 (do IO on null-blk with a host tag set)            [passed]
    runtime  30.537s  ...  30.529s
root@dev blktests (master) #

Comments

Jens Axboe Feb. 22, 2022, 8 p.m. UTC | #1
On Tue, 22 Feb 2022 07:28:50 -0800, Chaitanya Kulkarni wrote:
> This has null_alloc_page() cleanup to remvoe the unwanted function
> parameter and remove function goto labels where we can return easily.
> 
> Below is the test log of memory backed null_blk with fio verify job and
> blktests output.
> 
> -ck
> 
> [...]

Applied, thanks!

[1/2] null_blk: remove hardcoded null_alloc_page() param
      commit: 4a330a241a41e4f2a9d752dea41be70803a66a94
[2/2] null_blk: null_alloc_page() cleanup
      commit: 2ff4ec783f4c635289384398d14b241f21bce269

Best regards,