Re: [PATCH] fs: use kmalloc() to allocate fdmem if possible

Avi Kivity
2010-05-03T09:29:13Z

On 05/03/2010 12:22 PM, Jiri Slaby wrote:
> On 05/03/2010 11:18 AM, Avi Kivity wrote:
>
>> On 05/03/2010 12:03 PM, Jiri Slaby wrote:
>>
>>>>> Because vmalloc is used to allocate virtually contiguous memory. v in
>>>>> vmalloc means virtually.
>>>>>
>>>>>
>>>>>
>>>>>
>>>> A kmalloc()ed page is virtually contiguous, satisfying your requirement.
>>>>
>>>>
>>> But it won't work well for vmalloc_to_{page,pfn} and similar.
>>>
>> Modify vmalloc_to_{page,pfn} accordingly.
>>
> When you get a slub in the middle of page, how?
>

Er, right. So a separate API is needed for users who are interested in
memory, not pages.

>>> Some code
>>> may expect vmalloc result to be in the vmalloc area and page-aligned
>>> (both in position and size).
>>>
>>>
>> Both would be a bug IMO. vmalloc() follows kmalloc() and malloc() which
>> only guarantee natural alignment.
>>
> Nope, from what I understand, vmalloc aligns (uses page allocator). Even
> for purposes of vmalloc_to_*.
>

Correct, my mistake.

--
error compiling committee.c: too many arguments to function