This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Pointing systemtap to an out of tree kernel module


Hello list,

I'm doing a little experiment with systemtap, where I'm trying to do remote cross-system-tapping. Meaning on my laptop I have a cross-compiler, my kernel and and module in some path which isn't related to the kernel directory. And I'd like to create a script which allows me to gather information on the custom module. But I don't see any way to specify to systemtap where it should look for my kernel module (and debug symbols).

And I'm just trying to glue something to probe module("common").function("*"). Now suppose my module lives in /home/e/module how would I tell systemtap that that might be an interesting place to look for it ?

e@lap:/tmp$ stap -vvvv -r /home/e/linux-3.3/ -a powerpc -B CROSS_COMPILE=powerpc-e500v2-linux-gnuspe- --remote=ssh://root@1.2.3.4 bla.stp
Located kernel source tree (COPYING) at '/home/e/linux-3.3/'
Systemtap translator/driver (version 1.7/0.152 Debian version 1.7-1+b1 (sid))
Copyright (C) 2005-2012 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS
Created temporary directory "/tmp/stap68cup9"
Running ssh -q root@1.2.3.4 /bin/bash -c 'cmd=`type -P stapsh || exit 127` && exec "$cmd" -v -v'
sh: /bin/bash: not found
Spawn waitpid result (0x7f00): 127
Running ssh -q -o ControlPath=/tmp/stap68cup9/ssh_remote_control_1 root@1.2.3.4 -f -N -M
Password:
Spawn waitpid result (0x0): 0
Created ssh control master at "/tmp/stap68cup9/ssh_remote_control_1"
Running ssh -q -o ControlPath=/tmp/stap68cup9/ssh_remote_control_1 root@1.2.3.4 -t uname -rm
Spawn waitpid result (0x0): 0
Session arch: powerpc release: 3.3.0
Parsed kernel "/home/e/linux-3.3//.config", containing 504 tuples
Parsed kernel /home/e/linux-3.3//Module.symvers, which contained 0 vmlinux exports
Searched: " /usr/share/systemtap/tapset/powerpc/*.stp ", found: 4, processed: 4
Searched: " /usr/share/systemtap/tapset/*.stp ", found: 77, processed: 77
Searched: " /usr/share/systemtap/tapset/powerpc/*.stp ", found: 4, processed: 0
Searched: " /usr/share/systemtap/tapset/*.stp ", found: 77, processed: 0
Pass 1: parsed user script and 81 library script(s) using 21620virt/13372res/2288shr kb, in 70usr/10sys/83real ms.
blacklist regexps:
blfn: ^(atomic_notifier_call_chain|default_do_nmi|__die|die_nmi|do_debug|do_general_protection|do_int3|do_IRQ|do_page_fault|do_sparc64_fault|do_trap|dummy_nmi_callback|flush_icache_range|ia64_bad_break|ia64_do_page_fault|ia64_fault|io_check_error|mem_parity_error|nmi_watchdog_tick|notifier_call_chain|oops_begin|oops_end|program_check_exception|single_step_exception|sync_regs|unhandled_fault|unknown_nmi_error|xen_[gs]et_debugreg|xen_irq_.*|xen_.*_fl_direct.*|check_events|xen_adjust_exception_frame|xen_iret.*|xen_sysret64.*|test_ti_thread_flag.*|inat_get_opcode_attribute|system_call_after_swapgs|.*raw_.*_lock.*|.*raw_.*_unlock.*|.*raw_.*_trylock.*|.*read_lock.*|.*read_unlock.*|.*read_trylock.*|.*write_lock.*|.*write_unlock.*|.*write_trylock.*|.*write_seqlock.*|.*write_sequnlock.*|.*spin_lock.*|.*spin_unlock.*|.*spin_trylock.*|.*spin_is_locked.*|rwsem_.*lock.*|.*mutex_.*lock.*|raw_.*|atomic_.*|atomic64_.*|get_bh|put_bh|.*apic.*|.*APIC.*|.*softirq.*|.*IRQ.*|.*_intr.*|__delay|.*kernel_text.*|get
_current|current_.*|.*exception_tables.*|.*setup_rt_frame.*|.*preempt_count.*|preempt_schedule|special_mapping_.*|.*_pte_.*)$
blfn_ret: ^(do_exit|sys_exit|sys_exit_group)$
blfile: ^(kernel/kprobes\.c|arch/.*/kernel/kprobes\.c|.*/include/asm/io\.h|.*/include/asm/io_64\.h|.*/include/asm/bitops\.h|drivers/ide/ide-iops\.c|arch/.*/kernel/paravirt\.c|.*/include/asm/paravirt\.h|fs/seq_file\.c)$
blsection: ^(\.init\.|\.exit\.|\.devinit\.|\.devexit\.|\.cpuinit\.|\.cpuexit\.|\.meminit\.|\.memexit\.)
dwarf_builder::build for common
parse '*', func '*'
semantic error: no match while resolving probe point module("common").function("*").call
dwarf_builder::build for common
parse '*', func '*'
semantic error: no match while resolving probe point module("common").function("*").return
deleting module_cache
Pass 2: analyzed script: 1 probe(s), 7 function(s), 0 embed(s), 0 global(s) using 56116virt/14268res/2604shr kb, in 10usr/110sys/116real ms.
Pass 2: analysis failed. Try again with another '--vp 01' option.




Any pointers welcome, but please keep me in cc since I'm not on the list.

thanks
E.

--
Elie De Brauwer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]