[PATCH] memcg: do not expose uninitialized mem_cgroup_per_node to world

Igor Mammedov imammedo at redhat.com
Wed Jul 27 02:30:08 PDT 2011


On 07/27/2011 09:58 AM, Michal Hocko wrote:
> On Tue 26-07-11 14:17:54, Andrew Morton wrote:
>> On Fri, 10 Jun 2011 18:57:40 +0200
>> Igor Mammedov<imammedo at redhat.com>  wrote:
>>
>>> On 06/08/2011 11:09 PM, Andrew Morton wrote:
>>>> The original patch:
>>>>
>>>> --- a/mm/memcontrol.c
>>>> +++ b/mm/memcontrol.c
>>>> @@ -4707,7 +4707,6 @@ static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *mem, int node)
>>>>    	if (!pn)
>>>>    		return 1;
>>>>
>>>> -	mem->info.nodeinfo[node] = pn;
>>>>    	for (zone = 0; zone<   MAX_NR_ZONES; zone++) {
>>>>    		mz =&pn->zoneinfo[zone];
>>>>    		for_each_lru(l)
>>>> @@ -4716,6 +4715,7 @@ static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *mem, int node)
>>>>    		mz->on_tree = false;
>>>>    		mz->mem = mem;
>>>>    	}
>>>> +	mem->info.nodeinfo[node] = pn;
>>>>    	return 0;
>>>>    }
>>>>
>>>> looks like a really good idea.  But it needs a new changelog and I'd be
>>>> a bit reluctant to merge it as it appears that the aptch removes our
>>>> only known way of reproducing a bug.
>>>>
>>>> So for now I think I'll queue the patch up unchangelogged so the issue
>>>> doesn't get forgotten about.
>>>>
>>> Problem was in rhel's xen hv.
>>> It was missing fix for imul emulation.
>>> Details here
>>> http://lists.xensource.com/archives/html/xen-devel/2011-06/msg00801.html
>>> Thanks to Tim Deegan and everyone who was involved in the discussion.
>>
>> I really don't want to trawl through a lengthy xen bug report
>
> The bug turned out to be Xen specific and this patch just hidden the bug
> in Xen.

The problem was in incorrect imul instruction emulation in xen and as
consequence incorrect attempt to initialize list at invalid memory location.

>
>> and write your changelog for you.
>>
>> We still have no changelog for this patch.  Please send one.
>
> Appart from a better programming style is there any other reason for
> taking it?  If applied it might hide potential bugs when somebody is
> touching data too early.
>

If it ever happens and somebody is touching data too early, it would be
a bit easier to diagnose a problem when dereferencing NULL at
mem->info.nodeinfo[node] than wondering at partly initialized
mem_cgroup_per_zone. Aside from that it is purely cosmetic change.

Here is proposed change log:

Subject: Cleanup: memcg: Expose only initialized mem_cgroup_per_node to world

If somebody is touching data too early, it might be easier to diagnose
a problem when dereferencing NULL at mem->info.nodeinfo[node] than
trying to understand why mem_cgroup_per_zone is [un|partly]initialized.


Michal will you agree with such commit message?

-- 
Thanks,
  Igor


More information about the Containers mailing list