On Mon, 4 Oct 2010 12:16:42 +0530, Balbir Singh <balbir(a)linux.vnet.ibm.com> wrote:
* Nikunj A. Dadhania <nikunj(a)linux.vnet.ibm.com> [2010-09-28
15:26:30]:
<snip>
> + /* Extract other memory tunables */
> + if (virXPathULong("string(./memtune/hard_limit)", ctxt,
> + &def->mem.hard_limit) < 0)
> + def->mem.hard_limit = 0;
> +
> + if (virXPathULong("string(./memtune/soft_limit[1])", ctxt,
> + &def->mem.soft_limit) < 0)
> + def->mem.soft_limit = 0;
> +
> + if (virXPathULong("string(./memtune/min_guarantee[1])", ctxt,
> + &def->mem.min_guarantee) < 0)
> + def->mem.min_guarantee = 0;
> +
> + if (virXPathULong("string(./memtune/swap_hard_limit[1])", ctxt,
> + &def->mem.swap_hard_limit) < 0)
> + def->mem.swap_hard_limit = 0;
> +
Quick question, does 0 represent invalid values?
If configuration file does not
provide any value, we set this to 0, we
do not call the lower layer calls in this case.
I'd presume you'd
want to use something like -1. We support unsigned long long for the
values to be set (64 bit signed), unlimited translates to 2^63 - 1, is
ULong sufficient to represent that value?
The unit here is KB, so we can have till
2^42 bytes. So to answer you
question, no it does not represent 64 bit signed. I guess this should not be
an issue to support if needed.
I understand that in case of cgroup unlimited is (-1), but again that
would be cgroup specific at this level. I need to think of some way to address
this independent of the lower layer.
> + unsigned long hard_limit;
> + unsigned long soft_limit;
> + unsigned long min_guarantee;
> + unsigned long swap_hard_limit;
The hard_limit, soft_limit, swap_hard_limit are s64 and the value is
in bytes. What is the unit supported in this implementation?
KB
Thanks for reviewing.
Regard
Nikunj