linux-stable/drivers
Jens Axboe 4f5022453a nvme: wire up completion batching for the IRQ path
Trivial to do now, just need our own io_comp_batch on the stack and pass
that in to the usual command completion handling.

I pondered making this dependent on how many entries we had to process,
but even for a single entry there's no discernable difference in
performance or latency. Running a sync workload over io_uring:

t/io_uring -b512 -d1 -s1 -c1 -p0 -F1 -B1 -n2 /dev/nvme1n1 /dev/nvme2n1

yields the below performance before the patch:

IOPS=254820, BW=124MiB/s, IOS/call=1/1, inflight=(1 1)
IOPS=251174, BW=122MiB/s, IOS/call=1/1, inflight=(1 1)
IOPS=250806, BW=122MiB/s, IOS/call=1/1, inflight=(1 1)

and the following after:

IOPS=255972, BW=124MiB/s, IOS/call=1/1, inflight=(1 1)
IOPS=251920, BW=123MiB/s, IOS/call=1/1, inflight=(1 1)
IOPS=251794, BW=122MiB/s, IOS/call=1/1, inflight=(1 1)

which definitely isn't slower, about the same if you factor in a bit of
variance. For peak performance workloads, benchmarking shows a 2%
improvement.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-10-18 14:40:47 -06:00
..
accessibility
acpi ACPI fix for 5.15-rc6 2021-10-16 08:45:46 -07:00
amba
android
ata ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators() 2021-10-14 12:22:47 +09:00
atm
auxdisplay
base Driver core fixes for 5.15-rc6 2021-10-17 17:17:28 -10:00
bcma
block block: add a struct io_comp_batch argument to fops->iopoll() 2021-10-18 14:40:40 -06:00
bluetooth
bus Driver core fixes for 5.15-rc6 2021-10-17 17:17:28 -10:00
cdrom
char
clk clk: qcom: add select QCOM_GDSC for SM6350 2021-10-13 11:44:42 -07:00
clocksource
comedi comedi: Fix memory leak in compat_insnlist() 2021-09-21 17:53:54 +02:00
connector
counter
cpufreq Power management fixes for 5.15-rc2 2021-09-17 12:05:04 -07:00
cpuidle
crypto crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd() 2021-09-24 15:58:41 +08:00
cxl
dax
dca
devfreq
dio
dma
dma-buf
edac EDAC/armada-xp: Fix output of uncorrectable error counter 2021-10-14 11:46:03 +02:00
eisa
extcon
firewire
firmware EFI fixes for v5.15 2021-10-17 17:30:49 -10:00
fpga fpga: ice40-spi: Add SPI device ID table 2021-09-27 14:00:41 -07:00
fsi
gnss
gpio gpio: mockup: Convert to use software nodes 2021-10-06 13:04:04 +02:00
gpu mm: don't include <linux/blk-cgroup.h> in <linux/writeback.h> 2021-10-18 06:17:01 -06:00
greybus
hid HID: amd_sfh: Fix potential NULL pointer dereference 2021-09-27 10:00:43 +02:00
hsi
hv
hwmon hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field 2021-10-02 05:14:11 -07:00
hwspinlock
hwtracing
i2c i2c: mlxcpld: Modify register setting for 400KHz frequency 2021-10-04 21:56:20 +02:00
i3c
idle
iio Staging/IIO driver fixes for 5.15-rc6 2021-10-17 17:10:00 -10:00
infiniband RDMA/hns: Add the check of the CQE size of the user space 2021-09-27 14:49:49 -03:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2021-10-17 16:57:06 -10:00
interconnect
iommu iommu/arm: fix ARM_SMMU_QCOM compilation 2021-10-13 21:28:44 +02:00
ipack ipack: ipoctal: fix module reference leak 2021-09-27 17:38:49 +02:00
irqchip irqchip/gic: Work around broken Renesas integration 2021-09-22 14:44:25 +01:00
isdn isdn: mISDN: Fix sleeping function called from invalid context 2021-10-09 13:42:51 +01:00
leds
macintosh
mailbox
mcb
md block: switch polling to be bio based 2021-10-18 06:17:36 -06:00
media asm-generic: build fixes for v5.15 2021-10-08 11:57:54 -07:00
memory
memstick
message
mfd
misc eeprom: 93xx46: fix MODULE_DEVICE_TABLE 2021-10-15 10:54:02 +02:00
mmc block: move struct request to blk-mq.h 2021-10-18 06:17:02 -06:00
most
mtd mm: don't include <linux/blkdev.h> in <linux/backing-dev.h> 2021-10-18 06:17:01 -06:00
mux
net Networking fixes for 5.15-rc6. 2021-10-14 18:21:39 -04:00
nfc nfc: st-nci: Add SPI ID matching DT compatible 2021-09-23 12:53:06 +01:00
ntb
nubus
nvdimm block: switch polling to be bio based 2021-10-18 06:17:36 -06:00
nvme nvme: wire up completion batching for the IRQ path 2021-10-18 14:40:47 -06:00
nvmem nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells 2021-10-13 15:09:58 +02:00
of fbdev: simplefb: fix Kconfig dependencies 2021-10-06 11:12:28 +02:00
opp
parisc
parport
pci pci-v5.15-fixes-2 2021-10-16 09:00:46 -07:00
pcmcia
perf KVM: arm64: Fix PMU probe ordering 2021-09-20 12:43:34 +01:00
phy
pinctrl asm-generic: build fixes for v5.15 2021-10-08 11:57:54 -07:00
platform platform/x86: int1092: Fix non sequential device mode handling 2021-10-11 16:39:25 +02:00
pnp
power
powercap
pps
ps3
ptp Networking fixes for 5.15-rc5, including fixes from xfrm, bpf, 2021-10-07 09:50:31 -07:00
pwm
rapidio
ras
regulator regulator: max14577: Revert "regulator: max14577: Add proper module aliases strings" 2021-09-17 13:16:38 +01:00
remoteproc
reset
rpmsg
rtc
s390 block: switch polling to be bio based 2021-10-18 06:17:36 -06:00
sbus
scsi block: add a struct io_comp_batch argument to fops->iopoll() 2021-10-18 14:40:40 -06:00
sh
siox
slimbus
soc Driver core fixes for 5.15-rc6 2021-10-17 17:17:28 -10:00
soundwire
spi spi-mux: Fix false-positive lockdep splats 2021-10-14 13:32:19 +01:00
spmi
ssb
staging Staging/IIO driver fixes for 5.15-rc6 2021-10-17 17:10:00 -10:00
target block: move struct request to blk-mq.h 2021-10-18 06:17:02 -06:00
tc
tee tee: optee: Fix missing devices unregister during optee_remove 2021-10-12 13:24:39 +02:00
thermal thermal/drivers/tsens: Fix wrong check for tzd in irq handlers 2021-09-21 15:17:11 +02:00
thunderbolt thunderbolt: build kunit tests without structleak plugin 2021-10-06 17:53:49 -06:00
tty Serial driver fix for 5.15-rc6 2021-10-17 17:06:31 -10:00
uio
usb USB-serial fixes for 5.15-rc6 2021-10-15 15:04:02 +02:00
vdpa
vfio vfio/pci: add missing identifier name in argument of function prototype 2021-09-23 14:12:36 -06:00
vhost virtio,vdpa: fixes 2021-10-17 18:17:19 -10:00
video video: fbdev: gbefb: Only instantiate device when built for IP32 2021-10-06 11:12:28 +02:00
virt
virtio virtio: write back F_VERSION_1 before validate 2021-10-13 08:35:36 -04:00
visorbus
vlynq
vme
w1
watchdog watchdog/sb_watchdog: fix compilation problem due to COMPILE_TEST 2021-09-27 11:57:19 -07:00
xen xen: branch for v5.15-rc5 2021-10-08 12:55:23 -07:00
zorro
Kconfig firmware: include drivers/firmware/Kconfig unconditionally 2021-10-07 16:51:26 +02:00
Makefile