From patchwork Mon Dec 6 16:43:35 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 74393 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 85AF7B7043 for ; Tue, 7 Dec 2010 03:43:45 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752676Ab0LFQnl (ORCPT ); Mon, 6 Dec 2010 11:43:41 -0500 Received: from vpn.id2.novell.com ([195.33.99.129]:48400 "EHLO vpn.id2.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752052Ab0LFQnk convert rfc822-to-8bit (ORCPT ); Mon, 6 Dec 2010 11:43:40 -0500 Received: from EMEA1-MTA by vpn.id2.novell.com with Novell_GroupWise; Mon, 06 Dec 2010 17:14:01 +0000 Message-Id: <4CFD20C70200007800026284@vpn.id2.novell.com> X-Mailer: Novell GroupWise Internet Agent 8.0.1 Date: Mon, 06 Dec 2010 16:43:35 +0000 From: "Jan Beulich" To: Cc: Subject: [PATCH] use total_highpages when calculating lowmem-only allocation sizes (netlink) Mime-Version: 1.0 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For those (large) table allocations that come only from lowmem, the total amount of memory shouldn't really matter. Signed-off-by: Jan Beulich --- net/netlink/af_netlink.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- linux-2.6.37-rc4/net/netlink/af_netlink.c +++ 2.6.37-rc4-use-totalhigh_pages/net/netlink/af_netlink.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -2127,10 +2128,11 @@ static int __init netlink_proto_init(voi if (!nl_table) goto panic; - if (totalram_pages >= (128 * 1024)) - limit = totalram_pages >> (21 - PAGE_SHIFT); + limit = totalram_pages - totalhigh_pages; + if (limit >= (128 * 1024)) + limit >>= 21 - PAGE_SHIFT; else - limit = totalram_pages >> (23 - PAGE_SHIFT); + limit >>= 23 - PAGE_SHIFT; order = get_bitmask_order(limit) - 1 + PAGE_SHIFT; limit = (1UL << order) / sizeof(struct hlist_head);