[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200703152016.25703.dada1@cosmosbay.com>
Date: Thu, 15 Mar 2007 20:16:25 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Nick Piggin <nickpiggin@...oo.com.au>,
Ulrich Drepper <drepper@...il.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Ingo Molnar <mingo@...e.hu>
Cc: Andi Kleen <ak@...e.de>,
Ravikiran G Thirumalai <kiran@...lex86.org>,
"Shai Fultheim (Shai@...lex86.org)" <shai@...lex86.org>,
pravin b shelar <pravin.shelar@...softinc.com>,
linux-kernel@...r.kernel.org
Subject: [PATCH 2/3] FUTEX : introduce private hashtables
[PATCH 2/3] FUTEX : introduce private hashtables
This patch introduces a separate hashtable per process to store _PRIVATE
futexes.
This hashtable is dynamically allocated on the first _PRIVATE futex syscall.
If memory cannot be allocated, the process will use the global hashtable.
Using a separate hashtable has the advantage of lowering the contention on the
global hashtable. NUMA should benefits of this separation because the
allocation should respect the mm policy of the process.
Code is using kmalloc()/vmalloc() depending on the size of spinlocks. For
normal setup, size of the private hashtable should be 768 bytes on 32bit
arches, 1536 bytes on 64bit arches.
Private hashtable is freed() when process exits.
Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
---
include/linux/futex.h | 4 +
include/linux/sched.h | 7 ++
kernel/fork.c | 1
kernel/futex.c | 112 ++++++++++++++++++++++++++++++++++++++--
4 files changed, 120 insertions(+), 4 deletions(-)
View attachment "futex_p2.patch" of type "text/plain" (5571 bytes)
Powered by blists - more mailing lists