Skip to contentSkip to conversation

Where is op_model_mipsxx.c ?

DISCUSSION David Daney 4 participants 7 messages Oct 5, 2005 – Oct 26, 2005 MIPS

lore
Share & tools
lore
#0 lore raw

I noticed this in the Makefile for the OProfile directory for mips:

oprofile-$(CONFIG_CPU_MIPS32_R1) += op_model_mipsxx.o

The file op_model_mipsxx.c does not seem to exist. Which implies to me that someone was working on making it work for MIPS32, but didn't quite finish.

I want to start hacking on OProfile for a MIPS32 based system and thought it might make a nice starting point.

If the missing file exists would its author mind making it available to me?

Thanks,
David Daney

#1 lore raw
Quoted 4 lines · David Daney

I noticed this in the Makefile for the OProfile directory for mips:

oprofile-$(CONFIG_CPU_MIPS32_R1) += op_model_mipsxx.o

Quoted 8 lines

The file op_model_mipsxx.c does not seem to exist. Which implies to me that someone was working on making it work for MIPS32, but didn't quite finish.

I want to start hacking on OProfile for a MIPS32 based system and thought it might make a nice starting point.

If the missing file exists would its author mind making it available to me?

I've got oprofile support for MIPS32 / MIPS64 style counters in the queue. It still needs some debugging to become actually useful but anyway, I'm going to check those patches into git in a few minutes.

Ralf

#2 lore raw

Hi

Quoted 3 lines

I've got oprofile support for MIPS32 / MIPS64 style counters in the queue. It still needs some debugging to become actually useful but anyway, I'm going to check those patches into git in a few minutes.

Can these be used on the AMD AU1200 core?
(I don't see Register 25 on Coprocessor 0)

If OProfile cannot be used, what can I use to profile the kernel?

BR,
Matej

#3 lore raw
Quoted 8 lines · Matej Kupljen

Hi

Quoted 3 lines

I've got oprofile support for MIPS32 / MIPS64 style counters in the queue. It still needs some debugging to become actually useful but anyway, I'm going to check those patches into git in a few minutes.

Quoted 5 lines

Can these be used on the AMD AU1200 core?
(I don't see Register 25 on Coprocessor 0)

If OProfile cannot be used, what can I use to profile the kernel?

If there are no performance counters, OProfile can still use the system timer to take samples each clock tick. This is the way I am using it.

To use it in this manner you have to hack up the code a bit so that the return value of oprofile_arch_init() (in oprofile/common.c) is -ENODEV.

David Daney.

#4 lore raw

Hi

Quoted 2 lines

If there are no performance counters, OProfile can still use the system timer to take samples each clock tick. This is the way I am using it.

Thanks for the info.

Quoted 2 lines

To use it in this manner you have to hack up the code a bit so that the return value of oprofile_arch_init() (in oprofile/common.c) is -ENODEV.

I'll try that and let you know the results.

I want to use the profiler, because the network performance of dbau1200 is very poor (with 2.6.14-rc2 and smc91x driver I get around 12Mbit/s!).

I check the traffic of netperf with ethereal and I see quite a lot of duplicated packets (see the attached file with a few packets). I think think this is also the reason that NFS is so slow.

BR,
Matej

No.     Time        Source                Destination           Protocol Info
     50 5.759336    172.18.1.53           172.18.1.57           TCP      37994 > 32772 [ACK] Seq=28961 Ack=1 Win=5840 Len=1448 TSV=111254184 TSER=2217426
     51 5.759342    172.18.1.53           172.18.1.57           TCP      37994 > 32772 [ACK] Seq=30409 Ack=1 Win=5840 Len=1448 TSV=111254184 TSER=2217426
     52 5.761884    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#1] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217427 TSER=111254176 SLE=17377 SRE=18825
     53 5.761894    172.18.1.53           172.18.1.57           TCP      37994 > 32772 [ACK] Seq=31857 Ack=1 Win=5840 Len=1448 TSV=111254186 TSER=2217427
     54 5.762052    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#2] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217429 TSER=111254176 SLE=17377 SRE=20273
     55 5.762063    172.18.1.53           172.18.1.57           TCP      [TCP Retransmission] 37994 > 32772 [ACK] Seq=14481 Ack=1 Win=5840 Len=1448 TSV=111254186 TSER=2217429
     56 5.762214    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#3] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217429 TSER=111254176 SLE=17377 SRE=21721
     57 5.762223    172.18.1.53           172.18.1.57           TCP      [TCP Retransmission] 37994 > 32772 [ACK] Seq=15929 Ack=1 Win=5840 Len=1448 TSV=111254187 TSER=2217429
     58 5.764745    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#4] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217432 TSER=111254176 SLE=17377 SRE=23169
     59 5.764754    172.18.1.53           172.18.1.57           TCP      37994 > 32772 [ACK] Seq=33305 Ack=1 Win=5840 Len=1448 TSV=111254189 TSER=2217432
     60 5.764911    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#5] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217432 TSER=111254176 SLE=26065 SRE=27513 SLE=17377 SRE=23169
     61 5.765074    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#6] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217432 TSER=111254176 SLE=26065 SRE=28961 SLE=17377 SRE=23169
     62 5.765083    172.18.1.53           172.18.1.57           TCP      [TCP Retransmission] 37994 > 32772 [PSH, ACK] Seq=23169 Ack=1 Win=5840 Len=1448 TSV=111254189 TSER=2217432
     63 5.766842    172.18.1.57           172.18.1.53           TCP      [TCP Dup ACK 49#7] 32772 > 37994 [ACK] Seq=1 Ack=14481 Win=34752 Len=0 TSV=2217434 TSER=111254176 SLE=26065 SRE=30409 SLE=17377 SRE=23169
#5 lore raw
In reply to Matej Kupljen
Quoted 8 lines · Matej Kupljen
Quoted 3 lines

I've got oprofile support for MIPS32 / MIPS64 style counters in the queue. It still needs some debugging to become actually useful but anyway, I'm going to check those patches into git in a few minutes.

Can these be used on the AMD AU1200 core?
(I don't see Register 25 on Coprocessor 0)

If OProfile cannot be used, what can I use to profile the kernel?

You can still use oprofile in timer interrupt mode then.

Ralf

#6 lore raw
In reply to David Daney

I created an op_model file for the r5K core in a MIPS32 kernel. details are at
http://oss.pioneer-pra.com/oprofile/

I have not had a chance to test it on a real 2.6 kernel yet, it was back-ported from 2.6.11 into 2.4.25.

Mike

Quoted 28 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of David Daney
Sent: Tuesday, October 04, 2005 9:11 PM
To: [email protected]
Subject: Where is op_model_mipsxx.c ?

I noticed this in the Makefile for the OProfile directory for mips:

oprofile-$(CONFIG_CPU_MIPS32_R1) += op_model_mipsxx.o

The file op_model_mipsxx.c does not seem to exist. Which implies to me
that someone was working on making it work for MIPS32, but didn't quite
finish.

I want to start hacking on OProfile for a MIPS32 based system and thought it might make a nice starting point.

If the missing file exists would its author mind making it available to me?

Thanks,
David Daney