[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200612081752.09749.dada1@cosmosbay.com>
Date: Fri, 8 Dec 2006 17:52:09 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Andrew Morton <akpm@...l.org>
Cc: Andi Kleen <ak@...e.de>, linux-kernel@...r.kernel.org
Subject: [PATCH] group xtime, xtime_lock, wall_to_monotonic, avenrun, calc_load_count fields together in ktimed
This patch introduces a new structure called ktimed (Kernel Time Data), where
some time keeping related variables are put together to share as few cache
lines as possible. This avoid some false sharing, (since linker could put
calc_load_count in a *random* cache line for example)
I also optimized calc_load() to not always call count_active_tasks() :
It should call it only once every 5 seconds (LOAD_FREQ=5*HZ)
Note : x86_64 was using an arch specific placement of __xtime and __xtime_lock
(see arch/x86_64/kernel/vmlinux.lds.S). (vsyscall stuff)
It is now using a specific placement of __ktimed, since xtime and xtime_lock
are now fields from __ktimed.
Note : I failed to move jiffies64 as well in ktimed : too many changes needed
because of jiffies aliasing (and endianess), but it could be done.
Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
---
arch/x86_64/kernel/time.c | 5 ++-
arch/x86_64/kernel/vmlinux.lds.S | 7 +---
arch/x86_64/kernel/vsyscall.c | 1
include/asm-x86_64/vsyscall.h | 13 +++------
include/linux/sched.h | 1
include/linux/time.h | 18 ++++++++++--
kernel/timer.c | 41 ++++++++++++-----------------
7 files changed, 43 insertions(+), 43 deletions(-)
View attachment "xtime_s.patch" of type "text/plain" (6906 bytes)
Powered by blists - more mailing lists