[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Problem re-alloc'ing after freeing domheap pages



I am trying (in Xen) to repeatedly allocate and free
domheap pages belonging to a pv domain.  However,
once a page is freed, it doesn't seem to be
allocatable again.  In pseudo-code:

free_up_some_pages_using_ballooning()
count = 0;
while (1) {
  if ((p = alloc_domheap_pages(d,0,0)) == NULL)
    break;
  /* save p someplace */
  count++;
}
for all saved p's {
  free_domheap_pages(p,0);
}
while (count--) {
  if ((p = alloc_domheap_pages(d,0,0)) == NULL)
    FAIL!!
}

This fails for all alloc's in the second while loop.

Is there something else I need to do when I allocate
or free a non-anonymous domheap page?  (Note this seems
to work fine for anonymous domheap pages.)

Do I maybe need to also do list_del(&p->list)?  Or
get_page()/put_page() or something like that?

Thanks,
Dan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.