Re: Per iocontext request descriptor limits (Was: Re: RFC: default group_isolation to 1, remove option)

From: Jens Axboe
Date: Fri Mar 04 2011 - 16:34:32 EST


On 2011-03-04 22:31, Vivek Goyal wrote:
> On Fri, Mar 04, 2011 at 12:01:41PM +0100, Jens Axboe wrote:
>> On 2011-03-03 19:03, Vivek Goyal wrote:
>>> On Thu, Mar 03, 2011 at 11:57:17AM -0500, Vivek Goyal wrote:
>>>
>>> [..]
>>>>> For now it's not a complicated effort, I already have a patch for this.
>>>>> If page tracking needs extra complexity, it'll have to remain in the
>>>>> page tracking code.
>>>>
>>>> Great. I am hoping once you get some free time, you will cleanup and post
>>>> that patch.
>>>
>>> Hmmm..., Now I got interested in this stuff. In case you would like to see
>>> your patch to be in and finding it hard to find time to clean it up, I can
>>> do that and repost and also fix any bugs.
>>
>> I did an initial run on the plane:
>>
>> http://git.kernel.dk/?p=linux-2.6-block.git;a=shortlog;h=refs/heads/for-2.6.39/ioc-rq-alloc
>>
>> Not tested at all, so there are likely a few bugs. Congestion is gone,
>> we'll need to consider that. Before the device was either congested or
>> not congested, now the question to ask would be "is the device congested
>> for ME" as the answer will depend on who is asking.
>
>
> Thanks Jens. I was having a quick look and noticed that ioc->count[] state
> is global across queues. I guess what we want is to keep track of ioc
> state per queue (something like cfq_io_context). By maintaining per device
> state in ioc, we can also tell whether a particular ioc is congested or
> not on a specific device.

Indeed, similar to how we setup cfq_io_contexts would be useful there...
Requires a bit of thinking.

I updated the patchset btw, found some silly errors in it. But yes, we
definitely need some better ->count[] tracking.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/