[ktap] Re: KTAP

  • From: Oded Gabbay <ogabbay@xxxxxxxxxxxxxxx>
  • To: "zhangwei(Jovi)" <jovi.zhangwei@xxxxxxxxxx>
  • Date: Thu, 23 May 2013 14:52:14 +0300

On 23/05/13 13:39, zhangwei(Jovi) wrote:
On 2013/5/23 17:36, Oded Gabbay wrote:
On 23/05/13 12:13, zhangwei(Jovi) wrote:
On 2013/5/23 16:48, Oded Gabbay wrote:
Hi Jovi,

I read today about the ktap release in LWN and tried to give it a go on my 
custom board, which contains a powerpc processor from Freescale called P2020 
(e500v2 core).

I have two comments and a question:

1. I needed to enable CONFIG_RELAY in the kernel configuration, although this 
is not mentioned in the requirements. Maybe you should add it.

Involve ktap mailing list :)

Thanks, you are right, I will add it.

2. I needed to add #include <linux/vmalloc.h> to ktap.c for compilation

which kernel version of the board? currently ktap can support kernel 3.1 or 
later, older kernel need some patch to run ktap.
I haven't compile ktap in powerpc, so might you are right.
My kernel version is 3.4.41.
I now arrived to a situation where I insmod the ktapvm.ko on my board, but when 
I run:
./ktap scripts/syscalls.kp

I get the following error:
open /sys/kernel/debug/ktap/ktapvm failed: No such file or directory

I checked and indeed there is no /sys/kernel/debug/ktap folder (debug folder is 
I guess you are missing mount debugfs?

mount -t debugfs none /sys/kernel/debug/

Also I will add this into ktap doc.
Yes, I was missing the mount. Thanks :)
Note that currently ktap is not stable enough to running in production system, 
but I'm trying to make it more stable :)
I'm aware of that and I'm not putting it in production, but thanks for the 
After I fixed the mount issue, I was able to run the syscalls script but the 
kernel immediately crashed...
I will try to look into it.
This was the message from the kernel:

[cj:/usr/local/ktap] # ./ktap scripts/syscalls.kp
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xf1eb5dcc
Oops: Kernel access of bad area, sig: 11 [#1]
Modules linked in: ktapvm(O) mdio(O) hardware_version(PO) clipresent(PO) 
monotonic(O) restartcause(PO) panic_buffer(O) [last unloaded: ktapvm]
NIP: f1eb5dcc LR: f1eb5d90 CTR: c0265f04
REGS: eedd5c90 TRAP: 0300   Tainted: P           O (3.4.41-dev_ogabbay-105684*)
MSR: 00029000 <CE,EE,ME>  CR: 44000482  XER: 20000000
DEAR: 00000000, ESR: 00000000
TASK = ef0c6820[2097] 'ktap' THREAD: eedd4000 CPU: 1
GPR00: 00000000 eedd5d40 ef0c6820 eedd5d4c f1eb801c 00000016 eedd5d6a 0000003a
GPR08: eedd5d54 00000000 00000000 f1eb801d c0265f04 1002cacc 00000005 00000003
GPR16: 00000001 eede9628 00000001 eede9600 00000000 eee6e640 00000000 00000000
GPR24: 00000000 eedd5d4c f1ec0000 eede9200 ffffffff eede8600 eedd5d4c eedd5db8
NIP [f1eb5dcc] ftrace_on_event_call.clone.6+0xb4/0x1fc [ktapvm]
LR [f1eb5d90] ftrace_on_event_call.clone.6+0x78/0x1fc [ktapvm]
Call Trace:
[eedd5d40] [f1eb0824] kp_tstring_newlstr+0xdc/0x164 [ktapvm] (unreliable)
[eedd5db0] [f1eb5ff4] ktap_lib_probe+0xe0/0x198 [ktapvm]
[eedd5de0] [f1eb2a90] precall+0x1e4/0x318 [ktapvm]
[eedd5e00] [f1eb3244] kp_call+0x680/0x1180 [ktapvm]
[eedd5e60] [f1eaf2c0] ktap_ioctl+0x20c/0x30c [ktapvm]
[eedd5ea0] [c010d4f4] do_vfs_ioctl+0xa0/0x754
[eedd5f10] [c010dc44] sys_ioctl+0x9c/0xa4
[eedd5f40] [c000f3a0] ret_from_syscall+0x0/0x3c
--- Exception: c01 at 0xff1e254
     LR = 0xffb2c0c
Instruction dump:
419e0024 88030000 2f800000 409e0148 88180000 2f800000 409e011c 3b200000
3b000000 3f40f1ec 3ac00000 813a93a0 <83c90000> 7f89f000 419e00c0 3b5a93a0
---[ end trace b87e7dec14e55ffe ]---

cannot lookup ftrace_events in kallsyms
Kernel panic - not syncing: Fatal exception
Rebooting in 5 seconds..
Please pull latest ktap from github, I just figure out I missed function return 
value check.
Then there will have no panic, I assume.
Yes, now there is no panic

But I'm still curious on why your kernel didn't exported "ftrace_events", 
CONFIG_KALLSYMS not enabled?
CONFIG_KALLSYMS is enabled. CONFIG_EVENT_TRACING is also enabled. But, when I do:
grep ftrace_events /proc/kallsyms
I don't get any results.
When I look at kernel/trace/trace_events.c, I don't see that "ftrace_events" is exported...

I thought maybe you would have any idea how to fix this and save me time.

Best regards,
Oded Gabbay
Principal Engineer Advanced Packet Technologies
ADVA Optical Networking Israel Ltd.
P.O. Box 2552
2 Hatidhar St.
Raanana 43665, Israel
Tel: +(972)-9-7750130
Fax: +(972)-9-7462092
Mobile: +(972)-54-6543998
E-mail: ogabbay@xxxxxxxxxxxxxxx <mailto:ogabbay@xxxxxxxxxxxxxxx>
   www.advaoptical.com <http://www.advaoptical.com>
   ADVA Optical Networking SE is a European stock corporation ("Societas 
Europaea") with registered offices at Maerzenquelle 1-3, D-98617 Meiningen, Germany 
* CEO: Brian L. Protiva, Chief Officers: Dr.
Christoph Glingener, Christian Unterberger, Jaswir Singh * Chairman of the 
Supervisory Board: Anthony Maher * AG Jena HRB 508155 * VAT No. DE 175 446 349


Other related posts: