Re: [Devel] [-mm PATCH 1/9] Memory controller resource counters (v6)

Balbir Singh
2007-08-20T09:05:44Z

Alexey Dobriyan wrote:
> On Fri, Aug 17, 2007 at 02:12:38PM +0530, Balbir Singh wrote:
>> --- /dev/null
>> +++ linux-2.6.23-rc2-mm2-balbir/kernel/res_counter.c
>> +void res_counter_init(struct res_counter *counter)
>> +{
>> + spin_lock_init(&counter->lock);
>> + counter->limit = (unsigned long)LONG_MAX;
>
> why cast?
>

These patches come from Pavel. They add to readability since
limit is unsigned long.

>> +int res_counter_charge_locked(struct res_counter *counter, unsigned long val)
>> +{
>> + if (counter->usage > (counter->limit - val)) {
>
> () aren't needed.
>

it makes the code more readable

>> + if (WARN_ON(counter->usage < val))
>> + val = counter->usage;
>
> explicit if and WARN_ON(1) is clearer. I should send a patch banning such
> type of usage soon.
>

We had a WARN_ON(1) before, but we changed it in v2 or v3 based on review
comments from Dave. I think WARN_ON(cond) is more readable than
WARN_ON(1) for the same reason as BUG_ON(cond) vs BUG_ON(1)

>> + buf = kmalloc(nbytes + 1, GFP_KERNEL);
>
> please, switch to fixed buffer, allocating memory depending on size
> told by userspace will beat later. Ditto for other proc writing
> functions.
>

I agree with you in part, but the size of user input is not fixed.
Setting a fixed limit seems artificial, I'll see how this can be improved.

Thanks for the detailed review comments,