On Fri, May 01, 2015 at 08:52:37PM +0000, Drokin, Oleg wrote:
On May 1, 2015, at 4:49 PM, Greg Kroah-Hartman wrote:
> On Fri, May 01, 2015 at 08:36:05PM +0000, Simmons, James A. wrote:
>>> We are hopefully going to get rid of OBD_ALLOC_LARGE() as well, though.
>>>
>>> It's simple enough to write a function:
>>>
>>> void *obd_zalloc(size_t size)
>>> {
>>> if (size > 4 * PAGE_CACHE_SIZE)
>>> return vzalloc(size);
>>> else
>>> return kmalloc(size, GFP_NOFS);
>>> }
>>>
>>> Except, huh? Shouldn't we be using GFP_NOFS for the vzalloc() side?
>>> There was some discussion of that GFP_NOFS was a bit buggy back in 2010
>>> (
http://marc.info/?l=linux-mm&m=128942194520631&w=4) but the
current
>>> lustre code doesn't try to pass GFP_NOFS.
>>
>> The version in the upstream client is out of date. The current macro in the
Intel master
>> Branch is:
>
> That's not helpful at all, why do we even have an in-kernel version of
> this code if you don't do your development in the kernel?
>
> Please sync with the kernel tree very soon, or I'm just going to delete
> this whole thing. This is getting _really_ frustrating.
The patch was submitted.
But it depends on a symbol that's not exported.
I was not able to change that.
http://www.spinics.net/lists/linux-mm/msg83997.html
But you were given a hint on how to change that :)
Anyway, I'd recommend switching to what ext4 and xfs does, as you point
out in another email in this thread, it looks a lot better overall.
thanks,
greg k-h