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: > > On Thu, Nov 29, 2018 at 08:12:58PM +0100, Christoph Hellwig wrote: > > > +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.