Messages in this thread | | | Date | Tue, 9 Nov 2010 13:31:48 -0800 (PST) | From | David Rientjes <> | Subject | Re: [patch] memcg: fix unit mismatch in memcg oom limit calculation |
| |
On Tue, 9 Nov 2010, Greg Thelen wrote:
> Johannes Weiner <hannes@cmpxchg.org> writes: > > > Adding the number of swap pages to the byte limit of a memory control > > group makes no sense. Convert the pages to bytes before adding them. > > > > The only user of this code is the OOM killer, and the way it is used > > means that the error results in a higher OOM badness value. Since the > > cgroup limit is the same for all tasks in the cgroup, the error should > > have no practical impact at the moment. > > > > But let's not wait for future or changing users to trip over it. > > Thanks for the fix. > > > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> > Reviewed-by: Greg Thelen <gthelen@google.com> >
Nice catch, but it's done in the opposite way: the oom killer doesn't use byte limits but page limits. So this needs to be
(res_counter_read_u64(&memcg->res, RES_LIMIT) >> PAGE_SHIFT) + total_swap_pages;
| |