Messages in this thread | | | Subject | Re: [Xen-devel] [RFC 1/3] xen/balloon: Allow allocating DMA buffers | From | Oleksandr Andrushchenko <> | Date | Mon, 21 May 2018 08:40:30 +0300 |
| |
On 05/19/2018 01:04 AM, Boris Ostrovsky wrote: > On 05/17/2018 04:26 AM, Oleksandr Andrushchenko wrote: >> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> > > A commit message would be useful. Sure, v1 will have it > >> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@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? Sort of. Basically I need to {increase|decrease}_reservation, not actually allocating ballooned pages. Do you think I can simply EXPORT_SYMBOL for {increase|decrease}_reservation? Any other suggestion? > -boris > > Thank you, Oleksandr
| |