Re: [PATCH] memcg: use do_div to divide s64 in 32 bit machine.

From: Minchan Kim
Date: Sat Nov 06 2010 - 13:31:22 EST


On Sun, Nov 7, 2010 at 2:19 AM, Greg Thelen <gthelen@xxxxxxxxxx> wrote:
> On Fri, Nov 5, 2010 at 6:03 PM,  <hannes@xxxxxxxxxxx> wrote:
>> On Sat, Nov 06, 2010 at 01:08:53AM +0900, Minchan Kim wrote:
>>> Use do_div to divide s64 value. Otherwise, build would be failed
>>> like Dave Young reported.
>>
>> I thought about that too, but then I asked myself why you would want
>> to represent a number of pages as signed 64bit type, even on 32 bit?
>
> I think the reason that 64 byte type is used for page count in
> memcontrol.c is because the low level res_counter primitives operate
> on 64 bit counters, even on 32 bit machines.
>
>> Isn't the much better fix to get the types right instead?
>>
>
> I agree that consistent types between mem_cgroup_dirty_info() and
> global_dirty_info() is important.  There seems to be a lot of usage of
> s64 for page counts in memcontrol.c, which I think is due to the
> res_counter types.  I think these s64 be switched to unsigned long
> rather to be consistent with the rest of mm code.  It looks like this
> will be a clean patch, except for the lowest level where
> res_counter_read_u64() is used, where some casting may be needed.
>
> I'll post a patch for that change.
>

Agree. I don't mind it.
Thanks, Hannes and Greg.



--
Kind regards,
Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/