Spdk/lib
Evgeniy Kochetov b46cfdb6c9 bdev/qos: Process whole QoS queue on every Qos poll
We have to process whole QoS queue on each QoS poll. It may contain
IOs that still have quota or not affected by QoS rules at all. If we
stop on the first queued IO, all IOs will be limited by the minimum
QoS rule even if they're not affected by this rule.

Here is an example and simple test. We have a NVMf target with Null
bdev and QoS configured with read bandwidth limited to 10 MB/s and
write bandwidth limited to 100 MB/s. First we start nvme_perf with
only write IOs and we see that reported bandwidth is 100 MB/s. Then we
start another instance of nvme_perf with only read IOs. We see that
reported read bandwidth is 10 MB/s but we also see that write
bandwidth also drops to 10 MB/s.

Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I1edf09d038e65f873deef19ecb0f4bf9725a5ca5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13767
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-07-26 08:33:45 +00:00
..
accel check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
bdev bdev/qos: Process whole QoS queue on every Qos poll 2022-07-26 08:33:45 +00:00
blob blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC 2022-06-28 17:55:43 +00:00
blobfs blobfs: rename tree.h to cache_tree.h 2022-07-21 07:03:26 +00:00
conf Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
dma check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
env_dpdk check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
env_ocf check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
event lib/event: do not set default scheduling period during init 2022-06-20 09:56:09 +00:00
ftl FTL: Add FTL bdev module 2022-07-25 07:19:29 +00:00
idxd idxd: rename internal header file to idxd_internal.h 2022-07-21 07:03:26 +00:00
init Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ioat check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
iscsi check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
json check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
jsonrpc check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
log Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
lvol blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC 2022-06-28 17:55:43 +00:00
nbd check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
notify Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme nvme/rdma: Create poller and CQ on demand 2022-07-22 07:27:22 +00:00
nvmf nvmf: check interleaved metadata size when adding NS 2022-07-19 12:31:59 +00:00
rdma Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
reduce check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
rocksdb Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
rpc Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scsi check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
sock sock: Add ktls and tls_version to spdk_sock_impl_opts 2022-07-22 06:41:39 +00:00
thread thread: let spdk_thread_create() accept const spdk_cpuset* 2022-06-24 07:22:53 +00:00
trace Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
trace_parser Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ut_mock Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
util util: Extract a common lib between iovs and buf. 2022-06-20 10:01:15 +00:00
vfio_user lib/vfio_user: change the calculation of bar_addr 2022-06-15 08:10:32 +00:00
vhost vhost/rpc: return errno from virtio_blk_create_transport 2022-07-11 07:41:22 +00:00
virtio virtio: rename header to vhost_user_internal.h 2022-07-21 07:03:26 +00:00
vmd vmd: rename internal header file to vmd_internal.h 2022-07-21 07:03:26 +00:00
Makefile ftl: core structure 2022-07-11 07:23:58 +00:00