Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754414AbYJ3HGx (ORCPT ); Thu, 30 Oct 2008 03:06:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752980AbYJ3HGp (ORCPT ); Thu, 30 Oct 2008 03:06:45 -0400 Received: from serv2.oss.ntt.co.jp ([222.151.198.100]:60609 "EHLO serv2.oss.ntt.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752949AbYJ3HGo (ORCPT ); Thu, 30 Oct 2008 03:06:44 -0400 Subject: [PATCH] memcg: do not recalculate section unnecessarily in init_section_page_cgroup From: Fernando Luis =?ISO-8859-1?Q?V=E1zquez?= Cao To: KAMEZAWA Hiroyuki Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org In-Reply-To: <20081030154532.ad97ec93.kamezawa.hiroyu@jp.fujitsu.com> References: <1225341530.3135.26.camel@sebastian.kern.oss.ntt.co.jp> <20081030154532.ad97ec93.kamezawa.hiroyu@jp.fujitsu.com> Content-Type: text/plain Organization: NTT Open Source Software Center Date: Thu, 30 Oct 2008 16:06:42 +0900 Message-Id: <1225350402.6886.21.camel@sebastian.kern.oss.ntt.co.jp> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1578 Lines: 43 In init_section_page_cgroup() the section a given pfn belongs to is calculated at the top of the function and, despite the fact that the pfn/section correspondence does not change, it is recalculated further down the same function. By computing this just once and reusing that value we save some bytes in the object file and do not waste CPU cycles. Signed-off-by: Fernando Luis Vazquez Cao Reviewed-by: KAMEZAWA Hiroyuki --- diff -urNp linux-2.6.28-rc2-mm1-orig/mm/page_cgroup.c linux-2.6.28-rc2-mm1/mm/page_cgroup.c --- linux-2.6.28-rc2-mm1-orig/mm/page_cgroup.c 2008-10-30 12:49:27.000000000 +0900 +++ linux-2.6.28-rc2-mm1/mm/page_cgroup.c 2008-10-30 12:52:41.000000000 +0900 @@ -99,13 +99,11 @@ struct page_cgroup *lookup_page_cgroup(s int __meminit init_section_page_cgroup(unsigned long pfn) { - struct mem_section *section; + struct mem_section *section = __pfn_to_section(pfn); struct page_cgroup *base, *pc; unsigned long table_size; int nid, index; - section = __pfn_to_section(pfn); - if (section->page_cgroup) return 0; @@ -131,7 +129,6 @@ int __meminit init_section_page_cgroup(u __init_page_cgroup(pc, pfn + index); } - section = __pfn_to_section(pfn); section->page_cgroup = base - pfn; total_usage += table_size; return 0; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/