Hello All,

OK, I've discovered a mechanism of the issue.
It is  because of `d->max_pages = ~0U;` in a `construct_dom0()`.
When I do vcpu-pin, libxl updates memory nodes in xenstore for Dom0. Then 
kernel watch sees those changes and trying to set new target for ballon, but 
the target becomes extremely high, and baloon sucks all the pages.

In my kernel (4.14) in `watch_target()` function there is a code:

        target_diff = xen_pv_domain() ? 0
                : static_max - balloon_stats.target_pages;

Here we have `xen_pv_domain()` equal to zero, so `target_diff` big. Then, few 
lines below:

        balloon_set_new_target(new_target - target_diff);

`balloon_set_new_target()` receives a value wrapped over 64bit what kills the 
system.

Now I'm looking for an appropriate kernel patch for the kernel, to fix that. 
Any suggestions?

--
Sincerely,
Andrii Anisov.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to