On 11/30/18 1:00 AM, 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.
>
> 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.
Probably not a lot, if anything. Only for heavily mixed cases I'd
suspect it to make a difference. I can run some tests with it.
And beware that I've seen weird queue priority issues, ala the one
fixed by:
commit 9abd68ef454c824bfd18629033367b4382b5f390 (tag: for-linus-20180511)
Author: Jens Axboe <[email protected]>
Date: Tue May 8 10:25:15 2018 -0600
nvme: add quirk to force medium priority for SQ creation
So we need to be careful with enabling priorities, I suspect. Hopefully
that's a standalone case.
--
Jens Axboe