* [PATCH 0/1] null_blk: replace ida_simple_xxx()
@ 2022-03-09 22:02 Chaitanya Kulkarni
2022-03-09 22:02 ` [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx() Chaitanya Kulkarni
0 siblings, 1 reply; 7+ messages in thread
From: Chaitanya Kulkarni @ 2022-03-09 22:02 UTC (permalink / raw)
To: linux-block; +Cc: axboe, kch, damien.lemoal, ming.lei, shinichiro.kawasaki
Hi,
Like various places in kernel replace deprecated ida_simple_get() and
ida_simple_remove() with ida_alloc() and ida_free().
Below is the testlog for blktests block category and fio verify job with
null_blk memory backed devices.
-ck
Chaitanya Kulkarni (1):
null-blk: replace deprecated ida_simple_xxx()
drivers/block/null_blk/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
blktests (master) # ./check block
block/001 (stress device hotplugging) [passed]
runtime 107.074s ... 42.733s
block/002 (remove a device while running blktrace) [passed]
runtime 1.852s ... 0.894s
block/006 (run null-blk in blocking mode) [passed]
read iops 376026 ... 9181926
runtime 176.328s ... 8.794s
block/009 (check page-cache coherency after BLKDISCARD) [passed]
runtime 0.970s ... 0.516s
block/010 (run I/O on null_blk with shared and non-shared tags) [passed]
Individual tags read iops 448657 ... 8516353
runtime 315.200s ... 18.082s
Shared tags read iops 450129 ... 8680489
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.210s ... 7.069s
block/017 (do I/O and check the inflight counter) [passed]
runtime 1.851s ... 1.681s
block/018 (do I/O and check iostats times) [passed]
runtime 5.321s ... 5.100s
block/020 (run null-blk on different schedulers with only one hardware tag) [passed]
runtime 31.852s ... 30.984s
block/021 (read/write nr_requests on null-blk with different schedulers) [passed]
runtime 4.031s ... 3.932s
block/022 (Test hang caused by freeze/unfreeze sequence) [passed]
runtime 30.211s ... 30.113s
block/023 (do I/O on all null_blk queue modes) [passed]
runtime 0.629s ... 0.198s
block/024 (do I/O faster than a jiffy and check iostats times) [passed]
runtime 3.046s ... 2.685s
block/025 (do a huge discard with 4k sector size) [passed]
runtime 4.397s ... 3.796s
block/027 (stress device hotplugging with running fio jobs and different schedulers) [passed]
runtime 21.039s ... 17.985s
block/028 (do I/O on scsi_debug with DIF/DIX enabled) [passed]
runtime 57.230s ... 8.563s
block/029 (trigger blk_mq_update_nr_hw_queues()) [passed]
runtime 30.535s ... 30.287s
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.529s ... 30.272s
linux-block (for-next) # git am 0001-null-blk-replace-deprecated-ida_simple_xxx.patch
Applying: null-blk: replace deprecated ida_simple_xxx()
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
++ nproc
+ make -j 48 M=drivers/block modules
CC [M] drivers/block/null_blk/main.o
LD [M] drivers/block/null_blk/null_blk.o
MODPOST drivers/block/Module.symvers
CC [M] drivers/block/brd.mod.o
CC [M] drivers/block/drbd/drbd.mod.o
CC [M] drivers/block/floppy.mod.o
CC [M] drivers/block/loop.mod.o
CC [M] drivers/block/mtip32xx/mtip32xx.mod.o
CC [M] drivers/block/nbd.mod.o
CC [M] drivers/block/null_blk/null_blk.mod.o
CC [M] drivers/block/pktcdvd.mod.o
CC [M] drivers/block/rbd.mod.o
CC [M] drivers/block/sx8.mod.o
CC [M] drivers/block/virtio_blk.mod.o
CC [M] drivers/block/xen-blkback/xen-blkback.mod.o
CC [M] drivers/block/xen-blkfront.mod.o
CC [M] drivers/block/zram/zram.mod.o
LD [M] drivers/block/drbd/drbd.ko
LD [M] drivers/block/brd.ko
LD [M] drivers/block/mtip32xx/mtip32xx.ko
LD [M] drivers/block/nbd.ko
LD [M] drivers/block/virtio_blk.ko
LD [M] drivers/block/pktcdvd.ko
LD [M] drivers/block/xen-blkfront.ko
LD [M] drivers/block/rbd.ko
LD [M] drivers/block/xen-blkback/xen-blkback.ko
LD [M] drivers/block/zram/zram.ko
LD [M] drivers/block/loop.ko
LD [M] drivers/block/null_blk/null_blk.ko
LD [M] drivers/block/floppy.ko
LD [M] drivers/block/sx8.ko
+ HOST=drivers/block/null_blk/
++ uname -r
+ HOST_DEST=/lib/modules/5.17.0-rc7blk+/kernel/drivers/block/null_blk/
+ cp drivers/block/null_blk//null_blk.ko /lib/modules/5.17.0-rc7blk+/kernel/drivers/block/null_blk//
+ ls -lrth /lib/modules/5.17.0-rc7blk+/kernel/drivers/block/null_blk//null_blk.ko
-rw-r--r--. 1 root root 1.1M Mar 9 13:25 /lib/modules/5.17.0-rc7blk+/kernel/drivers/block/null_blk//null_blk.ko
+ sleep 1
+ dmesg -c
linux-block (for-next) # ./nullbtests.sh 4
+ rmdir 'config/nullb/nullb*'
rmdir: failed to remove 'config/nullb/nullb*': No such file or directory
+ NN=4
+ modprobe -r null_blk
+ modprobe null_blk nr_devices=0
+ echo loading devices
loading devices
++ seq 0 4
+ 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
+ for i in `seq 0 $NN`
+ NULLB_DIR=config/nullb/nullb4
+ mkdir config/nullb/nullb4
+ echo 1
+ echo 4096
+ echo 2048
+ echo 2
+ cat config/nullb/nullb4/queue_mode
2
+ echo 1
++ cat config/nullb/nullb4/index
+ IDX=4
+ echo -n ' 4 '
4 + 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
nullb4 251:4 0 2G 0 disk
+ sleep 1
+ dmesg -c
[ 62.827976] null_blk: loading out-of-tree module taints kernel.
[ 62.828048] null_blk: module verification failed: signature and/or required key missing - tainting kernel
[ 62.833367] 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
nullb4 251:4 0 2G 0 disk
++ seq 0 4
+ 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
write-and-verify: (groupid=0, jobs=1): err= 0: pid=2862: Wed Mar 9 13:25:49 2022
read: IOPS=445k, BW=1737MiB/s (1822MB/s)(158MiB/91msec)
slat (nsec): min=1062, max=12223, avg=1349.08, stdev=315.29
clat (nsec): min=932, max=46237, avg=33631.24, stdev=1793.19
lat (nsec): min=2265, max=47981, avg=35022.15, stdev=1838.86
clat percentiles (nsec):
| 1.00th=[32128], 5.00th=[32384], 10.00th=[32384], 20.00th=[32640],
| 30.00th=[33024], 40.00th=[33024], 50.00th=[33024], 60.00th=[33536],
| 70.00th=[33536], 80.00th=[34048], 90.00th=[35072], 95.00th=[38144],
| 99.00th=[40704], 99.50th=[41728], 99.90th=[44800], 99.95th=[45824],
| 99.99th=[45824]
write: IOPS=268k, BW=1046MiB/s (1097MB/s)(250MiB/239msec); 0 zone resets
slat (nsec): min=2214, max=42160, avg=3124.73, stdev=1051.23
clat (nsec): min=771, max=116021, avg=56206.26, stdev=14239.21
lat (usec): min=3, max=131, avg=59.39, stdev=15.00
clat percentiles (usec):
| 1.00th=[ 47], 5.00th=[ 47], 10.00th=[ 48], 20.00th=[ 49],
| 30.00th=[ 49], 40.00th=[ 50], 50.00th=[ 50], 60.00th=[ 51],
| 70.00th=[ 52], 80.00th=[ 58], 90.00th=[ 88], 95.00th=[ 91],
| 99.00th=[ 100], 99.50th=[ 103], 99.90th=[ 109], 99.95th=[ 110],
| 99.99th=[ 115]
lat (nsec) : 1000=0.01%
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=68.57%, 100=30.79%
lat (usec) : 250=0.63%
cpu : usr=48.02%, sys=51.67%, ctx=0, 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=40470,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=1737MiB/s (1822MB/s), 1737MiB/s-1737MiB/s (1822MB/s-1822MB/s), io=158MiB (166MB), run=91-91msec
WRITE: bw=1046MiB/s (1097MB/s), 1046MiB/s-1046MiB/s (1097MB/s-1097MB/s), io=250MiB (262MB), run=239-239msec
Disk stats (read/write):
nullb0: ios=0/35688, merge=0/0, ticks=0/30, in_queue=30, util=58.85%
+ 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
write-and-verify: (groupid=0, jobs=1): err= 0: pid=2865: Wed Mar 9 13:25:50 2022
read: IOPS=455k, BW=1776MiB/s (1862MB/s)(158MiB/89msec)
slat (nsec): min=1052, max=14828, avg=1334.48, stdev=311.47
clat (nsec): min=932, max=46809, avg=33151.56, stdev=1804.86
lat (nsec): min=2225, max=48121, avg=34528.03, stdev=1852.32
clat percentiles (nsec):
| 1.00th=[31616], 5.00th=[31616], 10.00th=[31872], 20.00th=[32128],
| 30.00th=[32384], 40.00th=[32384], 50.00th=[32640], 60.00th=[33024],
| 70.00th=[33024], 80.00th=[33536], 90.00th=[35072], 95.00th=[37632],
| 99.00th=[40192], 99.50th=[40704], 99.90th=[43776], 99.95th=[44800],
| 99.99th=[46848]
write: IOPS=275k, BW=1073MiB/s (1125MB/s)(250MiB/233msec); 0 zone resets
slat (nsec): min=2114, max=43754, avg=3045.27, stdev=1031.67
clat (nsec): min=721, max=126910, avg=54771.05, stdev=14107.80
lat (usec): min=3, max=132, avg=57.87, stdev=14.86
clat percentiles (usec):
| 1.00th=[ 45], 5.00th=[ 46], 10.00th=[ 47], 20.00th=[ 48],
| 30.00th=[ 48], 40.00th=[ 49], 50.00th=[ 49], 60.00th=[ 50],
| 70.00th=[ 51], 80.00th=[ 56], 90.00th=[ 87], 95.00th=[ 91],
| 99.00th=[ 99], 99.50th=[ 102], 99.90th=[ 110], 99.95th=[ 112],
| 99.99th=[ 124]
lat (nsec) : 750=0.01%, 1000=0.01%
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=77.56%, 100=21.97%
lat (usec) : 250=0.46%
cpu : usr=48.60%, sys=51.40%, ctx=0, 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=40465,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=1776MiB/s (1862MB/s), 1776MiB/s-1776MiB/s (1862MB/s-1862MB/s), io=158MiB (166MB), run=89-89msec
WRITE: bw=1073MiB/s (1125MB/s), 1073MiB/s-1073MiB/s (1125MB/s-1125MB/s), io=250MiB (262MB), run=233-233msec
Disk stats (read/write):
nullb1: ios=0/38401, merge=0/0, ticks=0/31, in_queue=31, util=60.08%
+ 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
write-and-verify: (groupid=0, jobs=1): err= 0: pid=2868: Wed Mar 9 13:25:50 2022
read: IOPS=426k, BW=1663MiB/s (1744MB/s)(158MiB/95msec)
slat (nsec): min=1082, max=11932, avg=1424.57, stdev=381.94
clat (nsec): min=952, max=73750, avg=35268.03, stdev=2448.22
lat (nsec): min=2254, max=75514, avg=36739.98, stdev=2516.34
clat percentiles (nsec):
| 1.00th=[33024], 5.00th=[33536], 10.00th=[33536], 20.00th=[34048],
| 30.00th=[34048], 40.00th=[34560], 50.00th=[34560], 60.00th=[35072],
| 70.00th=[35072], 80.00th=[35584], 90.00th=[37120], 95.00th=[40192],
| 99.00th=[45312], 99.50th=[50432], 99.90th=[57600], 99.95th=[61184],
| 99.99th=[71168]
write: IOPS=259k, BW=1012MiB/s (1061MB/s)(250MiB/247msec); 0 zone resets
slat (nsec): min=2214, max=32622, avg=3230.35, stdev=1091.64
clat (nsec): min=621, max=126089, avg=57938.70, stdev=14139.18
lat (usec): min=3, max=131, avg=61.23, stdev=14.89
clat percentiles (usec):
| 1.00th=[ 47], 5.00th=[ 49], 10.00th=[ 50], 20.00th=[ 50],
| 30.00th=[ 51], 40.00th=[ 52], 50.00th=[ 52], 60.00th=[ 53],
| 70.00th=[ 55], 80.00th=[ 60], 90.00th=[ 89], 95.00th=[ 92],
| 99.00th=[ 103], 99.50th=[ 106], 99.90th=[ 116], 99.95th=[ 121],
| 99.99th=[ 126]
lat (nsec) : 750=0.01%, 1000=0.01%
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=50.54%, 100=48.53%
lat (usec) : 250=0.92%
cpu : usr=45.59%, sys=54.12%, 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=40444,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=1663MiB/s (1744MB/s), 1663MiB/s-1663MiB/s (1744MB/s-1744MB/s), io=158MiB (166MB), run=95-95msec
WRITE: bw=1012MiB/s (1061MB/s), 1012MiB/s-1012MiB/s (1061MB/s-1061MB/s), io=250MiB (262MB), run=247-247msec
Disk stats (read/write):
nullb2: ios=0/35202, merge=0/0, ticks=0/31, in_queue=31, util=59.59%
+ 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
write-and-verify: (groupid=0, jobs=1): err= 0: pid=2871: Wed Mar 9 13:25:51 2022
read: IOPS=454k, BW=1774MiB/s (1860MB/s)(158MiB/89msec)
slat (nsec): min=1052, max=18965, avg=1330.48, stdev=327.51
clat (nsec): min=932, max=50977, avg=33145.60, stdev=1853.80
lat (nsec): min=2466, max=52239, avg=34517.16, stdev=1902.39
clat percentiles (nsec):
| 1.00th=[31360], 5.00th=[31616], 10.00th=[31872], 20.00th=[32128],
| 30.00th=[32384], 40.00th=[32384], 50.00th=[32640], 60.00th=[33024],
| 70.00th=[33024], 80.00th=[33536], 90.00th=[35072], 95.00th=[37632],
| 99.00th=[40192], 99.50th=[41216], 99.90th=[45312], 99.95th=[46848],
| 99.99th=[50944]
write: IOPS=271k, BW=1059MiB/s (1111MB/s)(250MiB/236msec); 0 zone resets
slat (nsec): min=2154, max=25269, avg=3073.42, stdev=1039.66
clat (nsec): min=672, max=125849, avg=55367.59, stdev=14444.12
lat (usec): min=3, max=130, avg=58.50, stdev=15.21
clat percentiles (usec):
| 1.00th=[ 45], 5.00th=[ 46], 10.00th=[ 47], 20.00th=[ 48],
| 30.00th=[ 48], 40.00th=[ 49], 50.00th=[ 50], 60.00th=[ 50],
| 70.00th=[ 52], 80.00th=[ 57], 90.00th=[ 87], 95.00th=[ 91],
| 99.00th=[ 100], 99.50th=[ 102], 99.90th=[ 109], 99.95th=[ 112],
| 99.99th=[ 122]
lat (nsec) : 750=0.01%, 1000=0.01%
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=76.05%, 100=23.34%
lat (usec) : 250=0.60%
cpu : usr=47.84%, sys=51.85%, ctx=1, majf=0, minf=965
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=40416,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=1774MiB/s (1860MB/s), 1774MiB/s-1774MiB/s (1860MB/s-1860MB/s), io=158MiB (166MB), run=89-89msec
WRITE: bw=1059MiB/s (1111MB/s), 1059MiB/s-1059MiB/s (1111MB/s-1111MB/s), io=250MiB (262MB), run=236-236msec
Disk stats (read/write):
nullb3: ios=0/35934, merge=0/0, ticks=0/29, in_queue=29, util=59.09%
+ for i in `seq 0 $NN`
+ fio fio/verify.fio --filename=/dev/nullb4
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
write-and-verify: (groupid=0, jobs=1): err= 0: pid=2876: Wed Mar 9 13:25:51 2022
read: IOPS=444k, BW=1733MiB/s (1817MB/s)(158MiB/91msec)
slat (nsec): min=1062, max=10130, avg=1342.86, stdev=297.90
clat (nsec): min=952, max=51177, avg=33670.92, stdev=1803.05
lat (nsec): min=2214, max=52590, avg=35055.68, stdev=1845.21
clat percentiles (nsec):
| 1.00th=[31872], 5.00th=[32128], 10.00th=[32384], 20.00th=[32640],
| 30.00th=[33024], 40.00th=[33024], 50.00th=[33024], 60.00th=[33536],
| 70.00th=[33536], 80.00th=[34048], 90.00th=[35072], 95.00th=[38144],
| 99.00th=[40704], 99.50th=[41728], 99.90th=[44288], 99.95th=[46336],
| 99.99th=[47872]
write: IOPS=268k, BW=1046MiB/s (1097MB/s)(250MiB/239msec); 0 zone resets
slat (nsec): min=2174, max=36739, avg=3118.08, stdev=1032.84
clat (nsec): min=681, max=114448, avg=56228.67, stdev=14207.31
lat (usec): min=3, max=129, avg=59.40, stdev=14.96
clat percentiles (usec):
| 1.00th=[ 47], 5.00th=[ 48], 10.00th=[ 48], 20.00th=[ 49],
| 30.00th=[ 49], 40.00th=[ 50], 50.00th=[ 50], 60.00th=[ 51],
| 70.00th=[ 52], 80.00th=[ 57], 90.00th=[ 88], 95.00th=[ 91],
| 99.00th=[ 101], 99.50th=[ 103], 99.90th=[ 109], 99.95th=[ 111],
| 99.99th=[ 113]
lat (nsec) : 750=0.01%, 1000=0.01%
lat (usec) : 4=0.01%, 10=0.01%, 20=0.01%, 50=67.98%, 100=31.30%
lat (usec) : 250=0.70%
cpu : usr=46.81%, sys=52.89%, ctx=0, majf=0, minf=963
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=40366,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=1733MiB/s (1817MB/s), 1733MiB/s-1733MiB/s (1817MB/s-1817MB/s), io=158MiB (165MB), run=91-91msec
WRITE: bw=1046MiB/s (1097MB/s), 1046MiB/s-1046MiB/s (1097MB/s-1097MB/s), io=250MiB (262MB), run=239-239msec
Disk stats (read/write):
nullb4: ios=0/36626, merge=0/0, ticks=0/31, in_queue=31, util=59.51%
--
2.29.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-09 22:02 [PATCH 0/1] null_blk: replace ida_simple_xxx() Chaitanya Kulkarni
@ 2022-03-09 22:02 ` Chaitanya Kulkarni
2022-03-09 23:38 ` Damien Le Moal
0 siblings, 1 reply; 7+ messages in thread
From: Chaitanya Kulkarni @ 2022-03-09 22:02 UTC (permalink / raw)
To: linux-block; +Cc: axboe, kch, damien.lemoal, ming.lei, shinichiro.kawasaki
Like various places in kernel replace deprecated ida_simple_get() and
ida_simple_remove with ida_alloc() and ida_free().
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
---
drivers/block/null_blk/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 05b1120e6623..e077be800606 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -1724,7 +1724,7 @@ static void null_del_dev(struct nullb *nullb)
dev = nullb->dev;
- ida_simple_remove(&nullb_indexes, nullb->index);
+ ida_free(&nullb_indexes, nullb->index);
list_del_init(&nullb->list);
@@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
mutex_lock(&lock);
- nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
+ nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
dev->index = nullb->index;
mutex_unlock(&lock);
--
2.29.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-09 22:02 ` [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx() Chaitanya Kulkarni
@ 2022-03-09 23:38 ` Damien Le Moal
2022-03-10 1:57 ` Chaitanya Kulkarni
0 siblings, 1 reply; 7+ messages in thread
From: Damien Le Moal @ 2022-03-09 23:38 UTC (permalink / raw)
To: Chaitanya Kulkarni, linux-block
Cc: axboe, damien.lemoal, ming.lei, shinichiro.kawasaki
On 3/10/22 07:02, Chaitanya Kulkarni wrote:
> Like various places in kernel replace deprecated ida_simple_get() and
> ida_simple_remove with ida_alloc() and ida_free().
>
> Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
> ---
> drivers/block/null_blk/main.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
> index 05b1120e6623..e077be800606 100644
> --- a/drivers/block/null_blk/main.c
> +++ b/drivers/block/null_blk/main.c
> @@ -1724,7 +1724,7 @@ static void null_del_dev(struct nullb *nullb)
>
> dev = nullb->dev;
>
> - ida_simple_remove(&nullb_indexes, nullb->index);
> + ida_free(&nullb_indexes, nullb->index);
>
> list_del_init(&nullb->list);
>
> @@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
>
> mutex_lock(&lock);
> - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
> + nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
Do we need error check here ? Not entirely sure if ida_free() tolerates
being passed a failed ida_alloc() nullb_indexes... A quick look at
ida_free() does not show anything obvious, so it may be worth checking
in detail.
> dev->index = nullb->index;
> mutex_unlock(&lock);
>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-09 23:38 ` Damien Le Moal
@ 2022-03-10 1:57 ` Chaitanya Kulkarni
2022-03-10 2:02 ` Chaitanya Kulkarni
0 siblings, 1 reply; 7+ messages in thread
From: Chaitanya Kulkarni @ 2022-03-10 1:57 UTC (permalink / raw)
To: Damien Le Moal
Cc: axboe, damien.lemoal, Chaitanya Kulkarni, ming.lei,
shinichiro.kawasaki, linux-block
On 3/9/22 15:38, Damien Le Moal wrote:
> On 3/10/22 07:02, Chaitanya Kulkarni wrote:
[..]
>> @@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
>> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
>>
>> mutex_lock(&lock);
>> - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
>> + nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
>
> Do we need error check here ? Not entirely sure if ida_free() tolerates
> being passed a failed ida_alloc() nullb_indexes... A quick look at
> ida_free() does not show anything obvious, so it may be worth checking
> in detail.
>
Good point, but original code doesn't have error checking, this patch
eventually ends up calling same function what original code was doing.
Since this is just a replacement patch should we add a 2nd patch on the
top of this for error handling ? or you prefer to have it in the same
one ?
-ck
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-10 1:57 ` Chaitanya Kulkarni
@ 2022-03-10 2:02 ` Chaitanya Kulkarni
2022-03-10 2:15 ` Damien Le Moal
0 siblings, 1 reply; 7+ messages in thread
From: Chaitanya Kulkarni @ 2022-03-10 2:02 UTC (permalink / raw)
To: Damien Le Moal
Cc: axboe, damien.lemoal, Chaitanya Kulkarni, ming.lei,
shinichiro.kawasaki, linux-block
On 3/9/22 17:57, Chaitanya Kulkarni wrote:
> On 3/9/22 15:38, Damien Le Moal wrote:
>> On 3/10/22 07:02, Chaitanya Kulkarni wrote:
>
> [..]
>
>>> @@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
>>> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
>>> mutex_lock(&lock);
>>> - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
>>> + nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
>>
>> Do we need error check here ? Not entirely sure if ida_free() tolerates
>> being passed a failed ida_alloc() nullb_indexes... A quick look at
>> ida_free() does not show anything obvious, so it may be worth checking
>> in detail.
>>
>
> Good point, but original code doesn't have error checking, this patch
> eventually ends up calling same function what original code was doing.
>
> Since this is just a replacement patch should we add a 2nd patch on the
> top of this for error handling ? or you prefer to have it in the same
> one ?
>
> -ck
>
Also nullb->index is defined as unsigned int [1] so in order to add
error handling we need to change the type of variable, so I think it
makes to make it a separate patch than removing deprecated API, lmk.
-ck
[1]
109 struct nullb {
110 struct nullb_device *dev;
111 struct list_head list;
*112 unsigned int index;*
113 struct request_queue *q;
114 struct gendisk *disk;
115 struct blk_mq_tag_set *tag_set;
116 struct blk_mq_tag_set __tag_set;
117 unsigned int queue_depth;
118 atomic_long_t cur_bytes;
119 struct hrtimer bw_timer;
120 unsigned long cache_flush_pos;
121 spinlock_t lock;
122
123 struct nullb_queue *queues;
124 unsigned int nr_queues;
125 char disk_name[DISK_NAME_LEN];
126 };
127
128 blk_status_t null_handle_discard(struct nullb_device *dev, sector_t
sector,
129 sector_t nr_sectors);
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-10 2:02 ` Chaitanya Kulkarni
@ 2022-03-10 2:15 ` Damien Le Moal
2022-03-14 23:19 ` Chaitanya Kulkarni
0 siblings, 1 reply; 7+ messages in thread
From: Damien Le Moal @ 2022-03-10 2:15 UTC (permalink / raw)
To: Chaitanya Kulkarni; +Cc: axboe, ming.lei, shinichiro.kawasaki, linux-block
On 3/10/22 11:02, Chaitanya Kulkarni wrote:
> On 3/9/22 17:57, Chaitanya Kulkarni wrote:
>> On 3/9/22 15:38, Damien Le Moal wrote:
>>> On 3/10/22 07:02, Chaitanya Kulkarni wrote:
>>
>> [..]
>>
>>>> @@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
>>>> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
>>>> mutex_lock(&lock);
>>>> - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
>>>> + nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
>>>
>>> Do we need error check here ? Not entirely sure if ida_free() tolerates
>>> being passed a failed ida_alloc() nullb_indexes... A quick look at
>>> ida_free() does not show anything obvious, so it may be worth checking
>>> in detail.
>>>
>>
>> Good point, but original code doesn't have error checking, this patch
>> eventually ends up calling same function what original code was doing.
>>
>> Since this is just a replacement patch should we add a 2nd patch on the
>> top of this for error handling ? or you prefer to have it in the same
>> one ?
>>
>> -ck
>>
>
> Also nullb->index is defined as unsigned int [1] so in order to add
> error handling we need to change the type of variable, so I think it
> makes to make it a separate patch than removing deprecated API, lmk.
One patch to add the missing error check and change the index type, with
cc stable for backport, and a second patch to switch to the new api on
top of the fix, without cc stable. No ?
>
> -ck
>
> [1]
> 109 struct nullb {
> 110 struct nullb_device *dev;
> 111 struct list_head list;
> *112 unsigned int index;*
> 113 struct request_queue *q;
> 114 struct gendisk *disk;
> 115 struct blk_mq_tag_set *tag_set;
> 116 struct blk_mq_tag_set __tag_set;
> 117 unsigned int queue_depth;
> 118 atomic_long_t cur_bytes;
> 119 struct hrtimer bw_timer;
> 120 unsigned long cache_flush_pos;
> 121 spinlock_t lock;
> 122
> 123 struct nullb_queue *queues;
> 124 unsigned int nr_queues;
> 125 char disk_name[DISK_NAME_LEN];
> 126 };
> 127
> 128 blk_status_t null_handle_discard(struct nullb_device *dev, sector_t
> sector,
> 129 sector_t nr_sectors);
>
>
>
--
Damien Le Moal
Western Digital Research
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx()
2022-03-10 2:15 ` Damien Le Moal
@ 2022-03-14 23:19 ` Chaitanya Kulkarni
0 siblings, 0 replies; 7+ messages in thread
From: Chaitanya Kulkarni @ 2022-03-14 23:19 UTC (permalink / raw)
To: Damien Le Moal; +Cc: axboe, ming.lei, shinichiro.kawasaki, linux-block
On 3/9/22 18:15, Damien Le Moal wrote:
> On 3/10/22 11:02, Chaitanya Kulkarni wrote:
>> On 3/9/22 17:57, Chaitanya Kulkarni wrote:
>>> On 3/9/22 15:38, Damien Le Moal wrote:
>>>> On 3/10/22 07:02, Chaitanya Kulkarni wrote:
>>>
>>> [..]
>>>
>>>>> @@ -2044,7 +2044,7 @@ static int null_add_dev(struct nullb_device *dev)
>>>>> blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
>>>>> mutex_lock(&lock);
>>>>> - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
>>>>> + nullb->index = ida_alloc(&nullb_indexes, GFP_KERNEL);
>>>>
>>>> Do we need error check here ? Not entirely sure if ida_free() tolerates
>>>> being passed a failed ida_alloc() nullb_indexes... A quick look at
>>>> ida_free() does not show anything obvious, so it may be worth checking
>>>> in detail.
>>>>
>>>
>>> Good point, but original code doesn't have error checking, this patch
>>> eventually ends up calling same function what original code was doing.
>>>
>>> Since this is just a replacement patch should we add a 2nd patch on the
>>> top of this for error handling ? or you prefer to have it in the same
>>> one ?
>>>
>>> -ck
>>>
>>
>> Also nullb->index is defined as unsigned int [1] so in order to add
>> error handling we need to change the type of variable, so I think it
>> makes to make it a separate patch than removing deprecated API, lmk.
>
> One patch to add the missing error check and change the index type, with
> cc stable for backport, and a second patch to switch to the new api on
> top of the fix, without cc stable. No ?
>
yes, will send out V2 soon.
-ck
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-03-14 23:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-09 22:02 [PATCH 0/1] null_blk: replace ida_simple_xxx() Chaitanya Kulkarni
2022-03-09 22:02 ` [PATCH 1/1] null-blk: replace deprecated ida_simple_xxx() Chaitanya Kulkarni
2022-03-09 23:38 ` Damien Le Moal
2022-03-10 1:57 ` Chaitanya Kulkarni
2022-03-10 2:02 ` Chaitanya Kulkarni
2022-03-10 2:15 ` Damien Le Moal
2022-03-14 23:19 ` Chaitanya Kulkarni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.