[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200610091647.55184.dada1@cosmosbay.com>
Date: Mon, 9 Oct 2006 16:47:55 +0200
From: Eric Dumazet <dada1@...mosbay.com>
To: Andrew Morton <akpm@...l.org>
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] Try to avoid a pessimistic vmalloc() recursion
__vmalloc_area_node() is a litle bit pessimist when allocating space for
storing struct page pointers.
When allocating more than 4 MB on ia32, or 2 MB on x86_64,
__vmalloc_area_node() has to allocate more than PAGE_SIZE bytes to store
pointers to page structs. This means that two TLB translations are needed to
access data.
This patch tries a kmalloc() call, then only if this first attempt failed, a
vmalloc() is performed. (Later, at vfree() time we chose kfree() or vfree()
with a test on flags & VM_VPAGES : no change is needed)
Most of the time, the first kmalloc() should be OK, so we reduce TLB usage.
Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
View attachment "vmalloc.patch" of type "text/plain" (703 bytes)
Powered by blists - more mailing lists