Commit eda4eabf authored by Juergen Gross's avatar Juergen Gross Committed by Boris Ostrovsky

xen/balloon: Support xend-based toolstack take two

Commit 3aa6c19d ("xen/balloon: Support xend-based toolstack")
tried to fix a regression with running on rather ancient Xen versions.
Unfortunately the fix was based on the assumption that xend would
just use another Xenstore node, but in reality only some downstream
versions of xend are doing that. The upstream xend does not write
that Xenstore node at all, so the problem must be fixed in another
way.

The easiest way to achieve that is to fall back to the behavior
before commit 96edd61d ("xen/balloon: don't online new memory
initially") in case the static memory maximum can't be read.

This is achieved by setting static_max to the current number of
memory pages known by the system resulting in target_diff becoming
zero.

Fixes: 3aa6c19d ("xen/balloon: Support xend-based toolstack")
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: <stable@vger.kernel.org> # 4.13
Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
parent 476878e4
...@@ -94,7 +94,7 @@ static void watch_target(struct xenbus_watch *watch, ...@@ -94,7 +94,7 @@ static void watch_target(struct xenbus_watch *watch,
"%llu", &static_max) == 1)) "%llu", &static_max) == 1))
static_max >>= PAGE_SHIFT - 10; static_max >>= PAGE_SHIFT - 10;
else else
static_max = new_target; static_max = balloon_stats.current_pages;
target_diff = (xen_pv_domain() || xen_initial_domain()) ? 0 target_diff = (xen_pv_domain() || xen_initial_domain()) ? 0
: static_max - balloon_stats.target_pages; : static_max - balloon_stats.target_pages;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment