Skip to contentSkip to conversation

linux-2.6.0-test6 error during linking

DISCUSSION Paolo Dovera 4 participants 7 messages Sep 28, 2003 – Sep 29, 2003 Alpha port

lore
Share & tools
lore
#0 lore raw

Hello,
I successfully compiled all linux-2.6.0-testx before test6 on RH7.2
Alpha APX platform

Applied patch-2.6.0-test6 I receive the following error:

[root@alpha linux-2.6.0-test6]# make
make[1]: `arch/alpha/kernel/asm-offsets.s' is up to date.

CHK     include/linux/compile.h
GEN     .version
CHK     include/linux/compile.h
UPD     include/linux/compile.h
CC      init/version.o
LD      init/built-in.o
LD      .tmp_vmlinux1

kernel/built-in.o(.text+0x480): In function `try_to_wake_up':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x484): In function try_to_wake_up':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x140c): In function schedule':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x1410): In function schedule':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x5068): In function copy_process':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x506c): more undefined references to sched_clock' follow
make: *** [.tmp_vmlinux1] Error 1

Do you have some suggestions?

Bye

#1 lore raw
Quoted 6 lines · Paolo Dovera

Applied patch-2.6.0-test6 I receive the following error:

kernel/built-in.o(.text+0x5068): In function `copy_process':
: undefined reference to sched_clock' kernel/built-in.o(.text+0x506c): more undefined references to sched_clock' follow

sched_clock is not implemented yet for Alpha. It is supposed to return a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle counter, but it wraps every few seconds, which has to be taken care of.

Signature · 1 line
	Falk
#2 lore raw
Quoted 6 lines · Falk Hueffner
Quoted 5 lines · Paolo Dovera

Applied patch-2.6.0-test6 I receive the following error:

kernel/built-in.o(.text+0x5068): In function `copy_process':
: undefined reference to `sched_clock'

Quoted 8 lines
Quoted 2 lines

kernel/built-in.o(.text+0x506c): more undefined references to `sched_clock' follow

sched_clock is not implemented yet for Alpha. It is supposed to return a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle counter, but it wraps every few seconds, which has to be taken care of.

Can post here a patch based on arm ?

I am courious to see it !

Eventualy post it on linux kernel list or to Richard Henderson ?

Thx a lot !

#3 lore raw
Quoted 9 lines · Balint Cristian
Quoted 6 lines · Falk Hueffner

sched_clock is not implemented yet for Alpha. It is supposed to return a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle counter, but it wraps every few seconds, which has to be taken care of.

Can post here a patch based on arm ?

Well, just copy the function:

alpha/kernel/time.c 2003-09-28 13:39:58.000000000 +0200 renamed from alpha/kernel/time.c~ 2003-09-28 02:50:20.000000000 +0200 +9 -0
@@ -570,3 +570,12 @@
 
        return retval;
 }
+
+/*
+ * Scheduler clock - returns current time in nanosec units.
+ * Should probably take rpcc into account for improved resolution
+ */
+unsigned long long sched_clock(void)
+{
+       return (unsigned long long) jiffies * (1000000000 / HZ);
+}

I've not tested this, it should work, but probably scheduling behaviour will not be as good as it could be, although HZ being 1000 (or larger) on Alpha should help.

Quoted 1 line

Eventualy post it on linux kernel list or to Richard Henderson ?

Not without testing it, and I have no time for that currently.

Signature · 1 line
	Falk
#4 lore raw
Quoted 10 lines · Falk Hueffner
Quoted 9 lines · Balint Cristian
Quoted 6 lines · Falk Hueffner

sched_clock is not implemented yet for Alpha. It is supposed to return a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle counter, but it wraps every few seconds, which has to be taken care of.

Can post here a patch based on arm ?

Thx a lot !

I test it today on an miata machine, i tell the result on that list.

Quoted 26 lines

Well, just copy the function:

alpha/kernel/time.c 2003-09-28 13:39:58.000000000 +0200 renamed from alpha/kernel/time.c~ 2003-09-28 02:50:20.000000000 +0200 +9 -0
@@ -570,3 +570,12 @@
 
        return retval;
 }
+
+/*
+ * Scheduler clock - returns current time in nanosec units.
+ * Should probably take rpcc into account for improved resolution
+ */
+unsigned long long sched_clock(void)
+{
+       return (unsigned long long) jiffies * (1000000000 / HZ);
+}

I've not tested this, it should work, but probably scheduling behaviour will not be as good as it could be, although HZ being 1000 (or larger) on Alpha should help.

Quoted 1 line

Eventualy post it on linux kernel list or to Richard Henderson ?

Not without testing it, and I have no time for that currently.

#5 lore raw
In reply to Falk Hueffner

Thanks^2 to you!
It works fine
I'm trying 2.6.0-test6 on Tsunami Alpha platform

Ciao,
Paolo

Quoted 50 lines · Falk Hueffner
Quoted 11 lines · Balint Cristian
Quoted 8 lines · Falk Hueffner

sched_clock is not implemented yet for Alpha. It is supposed to return a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle counter, but it wraps every few seconds, which has to be taken care of.

Quoted 3 lines

Can post here a patch based on arm ?

Well, just copy the function:

alpha/kernel/time.c 2003-09-28 13:39:58.000000000 +0200 renamed from alpha/kernel/time.c~ 2003-09-28 02:50:20.000000000 +0200 +9 -0
@@ -570,3 +570,12 @@
 
       return retval;
 }
+
+/*
+ * Scheduler clock - returns current time in nanosec units.
+ * Should probably take rpcc into account for improved resolution
+ */
+unsigned long long sched_clock(void)
+{
+       return (unsigned long long) jiffies * (1000000000 / HZ);
+}

I've not tested this, it should work, but probably scheduling behaviour will not be as good as it could be, although HZ being 1000 (or larger) on Alpha should help.

Quoted 3 lines

Eventualy post it on linux kernel list or to Richard Henderson ?

Not without testing it, and I have no time for that currently.

#6 lore raw
In reply to Balint Cristian
Quoted 18 lines · Falk Hueffner
Quoted 10 lines
Quoted 7 lines · Paolo Dovera

Applied patch-2.6.0-test6 I receive the following error:

kernel/built-in.o(.text+0x5068): In function `copy_process':
: undefined reference to `sched_clock'

kernel/built-in.o(.text+0x506c): more undefined references to `sched_clock' follow

sched_clock is not implemented yet for Alpha. It is

supposed to return

Quoted 3 lines

a high resolution timer. As workaround, you could just copy the implementation from ARM, which simply returns the value based on jiffies. Ideally, one would take into account the cycle

counter, but

Quoted 1 line

it wraps every few seconds, which has to be taken care of.

Quoted 7 lines

Can post here a patch based on arm ?

I am courious to see it !

Eventualy post it on linux kernel list or to Richard Henderson ?

Thx a lot !

Please take a look at the LKML. I had the same problem with -test6 and viro already posted a workaround!

Best,
Oliver