[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 
empty).
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 
warning.
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]
PREEMPT SMP NR_CPUS=2 P2020 FSP150
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...

Thanks.
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>
*Let's ADVANCE*
   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: