Re: [PATCH 01/13] block: move queues types to the block layer
From: Keith Busch <hidden>
Date: 2018-11-30 14:43:16
Also in:
linux-nvme
On Fri, Nov 30, 2018 at 12:00:13AM -0800, Christoph Hellwig wrote:
On Thu, Nov 29, 2018 at 01:19:14PM -0700, Keith Busch wrote:quoted
On Thu, Nov 29, 2018 at 08:12:58PM +0100, Christoph Hellwig wrote:quoted
+enum hctx_type { + HCTX_TYPE_DEFAULT, /* all I/O not otherwise accounted for */ + HCTX_TYPE_READ, /* just for READ I/O */ + HCTX_TYPE_POLL, /* polled I/O of any kind */ + + HCTX_MAX_TYPES, };Well, there goes my plan to use this with Weighted-Round-Robin NVMe IO queues!Wo between what do you even want to round robin? If it is between reads and writes that's easy. If we want priority reads or writes (separate from polling) that's also still fairly easily.
I was considering the IOPRIO_PRIO_CLASS. There are four of them, which may roughly correspond to the four NVMe IO queues weights. Maybe even through HIPRI flagged IOs with the RT class.
Btw, one thing I wanted to try once I get hold of the right hardware is to mark the poll queues as priority queues and see if that makes any differents in poll IOPS/latency.
I doubt it will make much difference in IOPS, but should improve latency on hipri IOs at the expense of normal IO since hipri will be fetched ahead during command arbitrarion.