| From eda4eabf86fd6806eaabc23fb90dd056fdac037b Mon Sep 17 00:00:00 2001 |
| From: Juergen Gross <jgross@suse.com> |
| Date: Fri, 17 Jan 2020 14:49:31 +0100 |
| Subject: xen/balloon: Support xend-based toolstack take two |
| |
| From: Juergen Gross <jgross@suse.com> |
| |
| commit eda4eabf86fd6806eaabc23fb90dd056fdac037b upstream. |
| |
| Commit 3aa6c19d2f38be ("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 96edd61dcf4436 ("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: 3aa6c19d2f38be ("xen/balloon: Support xend-based toolstack") |
| Signed-off-by: Juergen Gross <jgross@suse.com> |
| Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> |
| Cc: <stable@vger.kernel.org> # 4.13 |
| Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/xen/xen-balloon.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/xen/xen-balloon.c |
| +++ b/drivers/xen/xen-balloon.c |
| @@ -83,7 +83,7 @@ static void watch_target(struct xenbus_w |
| "%llu", &static_max) == 1)) |
| static_max >>= PAGE_SHIFT - 10; |
| else |
| - static_max = new_target; |
| + static_max = balloon_stats.current_pages; |
| |
| target_diff = (xen_pv_domain() || xen_initial_domain()) ? 0 |
| : static_max - balloon_stats.target_pages; |