Comment 80 for bug 1304001

Stefan Bader (smb) wrote :

This looks like to be requiring even more. I found the following patch which supposedly was queued for 3.18 but I cannot find it in upstream git, yet: "xen/balloon: Don't continue ballooning when BP_ECANCELED is encountered".

Commit 3dcf63677d4e ("xen/balloon: cancel ballooning if adding new
memory failed") makes reserve_additional_memory() return BP_ECANCELED
when an error is encountered. This error, however, is ignored by the
caller (balloon_process()) since it is overwritten by subsequent call
to update_schedule(). This results in continuous attempts to add more
memory, all of which are likely to fail again.

We should stop trying to schedule next iteration of ballooning when
the current one has failed.