On 11/14/2016 11:05 AM, Christoph Hellwig wrote:
On Mon, Nov 14, 2016 at 11:02:47AM -0700, Jens Axboe wrote:
We need it unless we want unbounded allocations for the biovec. With a
1GB I/O we're at a page size allocation, and with 64MB I/Os that aren't
unheard of we'd be up to a 64 pages or an order 6 allocation which will
take down the VM. We also need to pin down all the user memory while
doing the I/O instead of having throttling on the bio mempool before
doing the get_user_pages.
Just add the iterator and loop for every X pages? We can even put a plug
around it, if we have to.
That's pretty much what my patch does..
It'd be cleaner to loop one level out, and avoid all that 'dio' stuff
instead. And then still retain the separate parts of the sync and async.
There's nothing to share there imho, and it just makes the code harder
to read.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html