On 04/19/13 12:01, Peter Krempa wrote:
Refactoring done in 19c6ad9ac7e7eb2fd3c8262bff5f087b508ad07f
didn't
correctly take into account the order cgroup limit modification needs to
be done in. This resulted into errors when decreasing the limits.
The operations need to take place in this order:
decrease hard limit
change swap hard limit
or
change swap hard limit
increase hard limit
This patch also fixes the check if the hard_limit is less than
swap_hard_limit to print better error messages. For this purpose I
introduced a helper function virCompareLimitUlong to compare limit
values where value of 0 is equal to unlimited. Additionally the check is
now applied also when the user does not provide all of the tunables
through the API and in that case the currently set values are used.
This patch resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=950478
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_driver.c | 95 ++++++++++++++++++++++++------------------------
src/util/virutil.c | 12 ++++++
src/util/virutil.h | 2 +
4 files changed, 63 insertions(+), 47 deletions(-)
I used the attached script to test setting of the limit both ways.
Peter