Re: Should implementations of ->direct_access be allowed to sleep?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/26/2015 09:32 PM, Dave Chinner wrote:
<>
>> I'm leaning towards the latter.  But I'm not sure what GFP flags to
>> recommend that brd use ... GFP_NOWAIT | __GFP_ZERO, perhaps?
> 
> What, so we get random IO failures under memory pressure?
> 
> I really think we should allow .direct_access to sleep. It means we
> can use existing drivers and it also allows future implementations
> that might require, say, RDMA to be performed to update a page
> before access is granted. i.e. .direct_access is the first hook into
> the persistent device at page fault time....
> 

I agree with Dave. Last I tried (couple years ago) doing any
allocation GFP_NOWAIT on FS IO paths fails really badly in all kind
of surprising ways. The Kernel is built in to that allocation pressure.

I think that ->direct_access should not be any different then
any other block-device access, ie allow to sleep.

With brd a user can make sure not to sleep if he pre-allocates
ie call ->direct_access at least once on a given offset-length.
But I would not like to even do that guaranty. ->direct_access
should be allowed to sleep.
Well written code has many ways to allow sleep yet be very low
latency. (So I do not see what we are missing)

> Cheers,
> Dave.

Thanks
Boaz

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]