On 10/08/16 23:07, Samuel Thibault wrote:
> Juergen Gross, on Fri 05 Aug 2016 19:36:02 +0200, wrote:
>> +static inline int chk_free_pages(unsigned long needed)
>> +{
>> +return needed > nr_free_pages;
>> +}
>
> The logic looks reversed to me:
>
>> +if ( chk_free_pages(1UL << order) )
>> +
Juergen Gross, on Fri 05 Aug 2016 19:36:02 +0200, wrote:
> +static inline int chk_free_pages(unsigned long needed)
> +{
> +return needed > nr_free_pages;
> +}
The logic looks reversed to me:
> +if ( chk_free_pages(1UL << order) )
> +goto no_memory;
I would have written it
> +
If a memory shortage is detected balloon up.
Be careful to always leave some pages free as ballooning up might need
some memory, too:
- new p2m frames
- page tables for addressing new p2m frame
- new frame for page allocation bitmap
- page table for addressing new page allocation bitmap frame
- p