On 05/17/2018 04:26 AM, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>


A commit message would be useful.


>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>
>
>       for (i = 0; i < nr_pages; i++) {
> -             page = alloc_page(gfp);
> -             if (page == NULL) {
> -                     nr_pages = i;
> -                     state = BP_EAGAIN;
> -                     break;
> +             if (ext_pages) {
> +                     page = ext_pages[i];
> +             } else {
> +                     page = alloc_page(gfp);
> +                     if (page == NULL) {
> +                             nr_pages = i;
> +                             state = BP_EAGAIN;
> +                             break;
> +                     }
>               }
>               scrub_page(page);
>               list_add(&page->lru, &pages);
> @@ -529,7 +565,7 @@ static enum bp_state decrease_reservation(unsigned long 
> nr_pages, gfp_t gfp)
>       i = 0;
>       list_for_each_entry_safe(page, tmp, &pages, lru) {
>               /* XENMEM_decrease_reservation requires a GFN */
> -             frame_list[i++] = xen_page_to_gfn(page);
> +             frames[i++] = xen_page_to_gfn(page);
>  
>  #ifdef CONFIG_XEN_HAVE_PVMMU
>               /*
> @@ -552,18 +588,22 @@ static enum bp_state decrease_reservation(unsigned long 
> nr_pages, gfp_t gfp)
>  #endif
>               list_del(&page->lru);
>  
> -             balloon_append(page);
> +             if (!ext_pages)
> +                     balloon_append(page);


So what you are proposing is not really ballooning. You are just
piggybacking on existing interfaces, aren't you?

-boris


Reply via email to