Re: Approaches to making io_submit not block

Daniel Ehrenberg
2011-08-31T21:00:29Z

On Wed, Aug 31, 2011 at 10:08 AM, Andi Kleen <andi@firstfloor.org> wrote:
> Christoph Hellwig <hch@infradead.org> writes:
>>
>> I'll get it polished up and send it out for RFC once Dave sends out
>> the updated allocation workqueue patch.  With this he moves all
>> allocator calls in XFS into a workqueue.  My direct I/O patch uses that
>> fact to use that workqueue for the allocator call
>
> Is that really a good direction? The problem when you push operations
> from multiple threads all into a single resource (per cpu workqueue)
> is that the CPU scheduler loses control over that because they
> are all mixed up.
>
> So if one guy submits a lot and another very little the "a lot" guy
> can overwhelm the queue for the very little guy.
>
> We also have similar problems with the IO schedulers, which also
> rely on process context to make fairness decisions. If you remove
> the process context they do badly.
>
> -Andi
>
> --
> ak@linux.intel.com -- Speaking for myself only
>

This objection would seem to point to the benefits of doing something
like Suparna's patches, with a wait queue per task, no? This preserves
the current regime where each thread calling io_submit ends up
submitting things in parallel.

Dan