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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox