From: Martin Peschke <mp3@de.ibm.com>
To: linux-kernel@vger.kernel.org, akpm@osdl.org, ak@suse.de,
hch@infradead.org, arjan@infradead.org, James.Smart@Emulex.Com,
James.Bottomley@SteelEye.com
Subject: [RFC] [Patch 7/8] statistics infrastructure - exploitation prerequisite
Date: Tue, 16 May 2006 19:47:15 +0200 [thread overview]
Message-ID: <446A1023.6020108@de.ibm.com> (raw)
need sched_clock for latency statistics
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
---
alpha/kernel/time.c | 1 +
arm/kernel/time.c | 1 +
arm/mach-omap1/time.c | 1 +
arm/mach-realview/core.c | 1 +
arm/mach-sa1100/generic.c | 1 +
arm/mach-versatile/core.c | 1 +
arm/plat-omap/timer32k.c | 1 +
arm26/kernel/time.c | 1 +
cris/kernel/time.c | 1 +
frv/kernel/time.c | 1 +
h8300/kernel/time.c | 3 ++-
i386/kernel/timers/timer_tsc.c | 1 +
m32r/kernel/time.c | 1 +
m68k/kernel/time.c | 2 +-
m68knommu/kernel/time.c | 4 +++-
mips/kernel/time.c | 1 +
parisc/kernel/time.c | 1 +
powerpc/kernel/time.c | 1 +
ppc/kernel/time.c | 1 +
s390/kernel/time.c | 1 +
sh/kernel/time.c | 1 +
sh64/kernel/time.c | 2 +-
sparc/kernel/time.c | 1 +
sparc64/kernel/time.c | 1 +
um/kernel/time_kern.c | 1 +
v850/kernel/time.c | 1 +
x86_64/kernel/time.c | 1 +
xtensa/kernel/time.c | 1 +
28 files changed, 31 insertions(+), 4 deletions(-)
diff -Nurp a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c
--- a/arch/alpha/kernel/time.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/alpha/kernel/time.c 2006-05-15 17:36:14.000000000 +0200
@@ -101,6 +101,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
diff -Nurp a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
--- a/arch/arm/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/arm/kernel/time.c 2006-05-15 17:36:51.000000000 +0200
@@ -84,6 +84,7 @@ unsigned long long __attribute__((weak))
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static unsigned long next_rtc_update;
diff -Nurp a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
--- a/arch/arm/mach-omap1/time.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/arm/mach-omap1/time.c 2006-05-15 17:37:24.000000000 +0200
@@ -220,6 +220,7 @@ unsigned long long sched_clock(void)
return cycles_2_ns(ticks64);
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
* ---------------------------------------------------------------------------
diff -Nurp a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
--- a/arch/arm/mach-realview/core.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/arm/mach-realview/core.c 2006-05-15 17:38:47.000000000 +0200
@@ -62,6 +62,7 @@ unsigned long long sched_clock(void)
return v;
}
+EXPORT_SYMBOL_GPL(sched_clock);
#define REALVIEW_FLASHCTRL (__io_address(REALVIEW_SYS_BASE) +
REALVIEW_SYS_FLASH_OFFSET)
diff -Nurp a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
--- a/arch/arm/mach-sa1100/generic.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/arm/mach-sa1100/generic.c 2006-05-15 17:39:43.000000000 +0200
@@ -131,6 +131,7 @@ unsigned long long sched_clock(void)
return v;
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
* Default power-off for SA1100
diff -Nurp a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
--- a/arch/arm/mach-versatile/core.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/arm/mach-versatile/core.c 2006-05-15 17:40:17.000000000 +0200
@@ -239,6 +239,7 @@ unsigned long long sched_clock(void)
return v;
}
+EXPORT_SYMBOL_GPL(sched_clock);
#define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) +
VERSATILE_SYS_FLASH_OFFSET)
diff -Nurp a/arch/arm/plat-omap/timer32k.c b/arch/arm/plat-omap/timer32k.c
--- a/arch/arm/plat-omap/timer32k.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/arm/plat-omap/timer32k.c 2006-05-15 17:41:02.000000000 +0200
@@ -188,6 +188,7 @@ unsigned long long sched_clock(void)
{
return omap_32k_ticks_to_nsecs(omap_32k_sync_timer_read());
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
* Timer interrupt for 32KHz timer. When dynamic tick is enabled, this
diff -Nurp a/arch/arm26/kernel/time.c b/arch/arm26/kernel/time.c
--- a/arch/arm26/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/arm26/kernel/time.c 2006-05-15 17:41:39.000000000 +0200
@@ -99,6 +99,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static unsigned long next_rtc_update;
diff -Nurp a/arch/cris/kernel/time.c b/arch/cris/kernel/time.c
--- a/arch/cris/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/cris/kernel/time.c 2006-05-15 17:42:25.000000000 +0200
@@ -231,6 +231,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static int
__init init_udelay(void)
diff -Nurp a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c
--- a/arch/frv/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/frv/kernel/time.c 2006-05-15 17:42:56.000000000 +0200
@@ -230,3 +230,4 @@ unsigned long long sched_clock(void)
{
return jiffies_64 * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/h8300/kernel/time.c b/arch/h8300/kernel/time.c
--- a/arch/h8300/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/h8300/kernel/time.c 2006-05-15 17:43:40.000000000 +0200
@@ -123,5 +123,6 @@ EXPORT_SYMBOL(do_settimeofday);
unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
-
}
+
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/i386/kernel/timers/timer_tsc.c
b/arch/i386/kernel/timers/timer_tsc.c
--- a/arch/i386/kernel/timers/timer_tsc.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/i386/kernel/timers/timer_tsc.c 2006-05-15 17:44:11.000000000 +0200
@@ -167,6 +167,7 @@ unsigned long long sched_clock(void)
/* return the value in ns */
return cycles_2_ns(this_offset);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static void delay_tsc(unsigned long loops)
{
diff -Nurp a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c
--- a/arch/m32r/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/m32r/kernel/time.c 2006-05-15 17:44:58.000000000 +0200
@@ -304,3 +304,4 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/m68k/kernel/time.c b/arch/m68k/kernel/time.c
--- a/arch/m68k/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/m68k/kernel/time.c 2006-05-15 17:45:29.000000000 +0200
@@ -177,4 +177,4 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies*(1000000000/HZ);
}
-
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/m68knommu/kernel/time.c b/arch/m68knommu/kernel/time.c
--- a/arch/m68knommu/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/m68knommu/kernel/time.c 2006-05-15 17:46:26.000000000 +0200
@@ -180,6 +180,8 @@ int do_settimeofday(struct timespec *tv)
return 0;
}
+EXPORT_SYMBOL(do_settimeofday);
+
/*
* Scheduler clock - returns current time in nanosec units.
*/
@@ -188,4 +190,4 @@ unsigned long long sched_clock(void)
return (unsigned long long)jiffies * (1000000000 / HZ);
}
-EXPORT_SYMBOL(do_settimeofday);
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
--- a/arch/mips/kernel/time.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/mips/kernel/time.c 2006-05-15 17:47:00.000000000 +0200
@@ -778,3 +778,4 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies*(1000000000/HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c
--- a/arch/parisc/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/parisc/kernel/time.c 2006-05-15 17:47:34.000000000 +0200
@@ -211,6 +211,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
void __init time_init(void)
diff -Nurp a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
--- a/arch/powerpc/kernel/time.c 2006-05-15 12:42:07.000000000 +0200
+++ b/arch/powerpc/kernel/time.c 2006-05-15 17:48:03.000000000 +0200
@@ -781,6 +781,7 @@ unsigned long long sched_clock(void)
return get_rtc();
return mulhdu(get_tb(), tb_to_ns_scale) << tb_to_ns_shift;
}
+EXPORT_SYMBOL_GPL(sched_clock);
int do_settimeofday(struct timespec *tv)
{
diff -Nurp a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c
--- a/arch/ppc/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/ppc/kernel/time.c 2006-05-15 17:48:38.000000000 +0200
@@ -445,3 +445,4 @@ unsigned long long sched_clock(void)
}
return tb;
}
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
--- a/arch/s390/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/s390/kernel/time.c 2006-05-15 17:49:11.000000000 +0200
@@ -63,6 +63,7 @@ unsigned long long sched_clock(void)
{
return ((get_clock() - jiffies_timer_cc) * 125) >> 9;
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
* Monotonic_clock - returns # of nanoseconds passed since time_init()
diff -Nurp a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c
--- a/arch/sh/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/sh/kernel/time.c 2006-05-15 17:49:42.000000000 +0200
@@ -44,6 +44,7 @@ unsigned long long __attribute__ ((weak)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
void do_gettimeofday(struct timeval *tv)
{
diff -Nurp a/arch/sh64/kernel/time.c b/arch/sh64/kernel/time.c
--- a/arch/sh64/kernel/time.c 2006-05-15 12:42:08.000000000 +0200
+++ b/arch/sh64/kernel/time.c 2006-05-15 17:50:09.000000000 +0200
@@ -598,4 +598,4 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
-
+EXPORT_SYMBOL_GPL(sched_clock);
diff -Nurp a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
--- a/arch/sparc/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/sparc/kernel/time.c 2006-05-15 17:50:42.000000000 +0200
@@ -466,6 +466,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
/* Ok, my cute asm atomicity trick doesn't work anymore.
* There are just too many variables that need to be protected
diff -Nurp a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
--- a/arch/sparc64/kernel/time.c 2006-05-15 12:42:08.000000000 +0200
+++ b/arch/sparc64/kernel/time.c 2006-05-15 17:51:19.000000000 +0200
@@ -1135,6 +1135,7 @@ unsigned long long sched_clock(void)
return (ticks * timer_ticks_per_nsec_quotient)
>> SPARC64_NSEC_PER_CYC_SHIFT;
}
+EXPORT_SYMBOL_GPL(sched_clock);
static int set_rtc_mmss(unsigned long nowtime)
{
diff -Nurp a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c
--- a/arch/um/kernel/time_kern.c 2006-05-15 12:42:08.000000000 +0200
+++ b/arch/um/kernel/time_kern.c 2006-05-15 17:51:46.000000000 +0200
@@ -34,6 +34,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies_64 * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
/* Changed at early boot */
int timer_irq_inited = 0;
diff -Nurp a/arch/v850/kernel/time.c b/arch/v850/kernel/time.c
--- a/arch/v850/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/v850/kernel/time.c 2006-05-15 17:52:11.000000000 +0200
@@ -35,6 +35,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
/*
* timer_interrupt() needs to keep up the real-time clock,
diff -Nurp a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c
--- a/arch/x86_64/kernel/time.c 2006-05-15 12:42:08.000000000 +0200
+++ b/arch/x86_64/kernel/time.c 2006-05-15 17:52:39.000000000 +0200
@@ -501,6 +501,7 @@ unsigned long long sched_clock(void)
rdtscll(a);
return cycles_2_ns(a);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static unsigned long get_cmos_time(void)
{
diff -Nurp a/arch/xtensa/kernel/time.c b/arch/xtensa/kernel/time.c
--- a/arch/xtensa/kernel/time.c 2006-03-20 06:53:29.000000000 +0100
+++ b/arch/xtensa/kernel/time.c 2006-05-15 17:53:03.000000000 +0200
@@ -49,6 +49,7 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+EXPORT_SYMBOL_GPL(sched_clock);
static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
static struct irqaction timer_irqaction = {
next reply other threads:[~2006-05-16 17:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-16 17:47 Martin Peschke [this message]
2006-05-16 18:28 ` [RFC] [Patch 7/8] statistics infrastructure - exploitation prerequisite Andrew Morton
2006-05-16 22:36 ` Martin Peschke
2006-05-16 23:03 ` Arnd Bergmann
2006-05-17 1:23 ` Peter Chubb
2006-05-17 1:27 ` Andi Kleen
2006-05-17 1:43 ` Peter Chubb
2006-05-17 2:24 ` Christoph Lameter
2006-05-17 1:13 ` Peter Chubb
2006-05-17 2:32 ` Nick Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=446A1023.6020108@de.ibm.com \
--to=mp3@de.ibm.com \
--cc=James.Bottomley@SteelEye.com \
--cc=James.Smart@Emulex.Com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=arjan@infradead.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.