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]

Re: registration error (rc -84) and -DSTP_OVERLOAD_THRESHOLD


On Tue, Jun 14, 2011 at 10:09:43AM -0400, Frank Ch. Eigler wrote:
> Hi -
> 
> On Tue, Jun 14, 2011 at 03:08:12PM +0100, Richard W.M. Jones wrote:
> > On Tue, Jun 14, 2011 at 09:53:56AM -0400, Frank Ch. Eigler wrote:
> > > Look for the pc=.text+0xdbe offset field in there.  That'd be area
> > > to sic objdump onto:
> > 
> > What would I objdump?  /proc/kcore??  Can you show me an example
> > command line?
> 
> % objdump -drS /lib/modules/`uname -r`/kernel/fs/ext2/ext2.ko

Oh I see.

stap after phase 2 shows this for one of the problematic probes:

module("ext2").statement("ext2_try_to_allocate_with_rsv@fs/ext2/balloc.c:1162") /* pc=.text+0x982 */ /* <- module("ext2").statement("*@*.c:*") */

and here is the disassembled code around that place in the module:

     972:       e8 00 00 00 00          callq  977 <ext2_try_to_allocate_with_rs
v+0x3ba>
                        973: R_X86_64_PC32      _raw_spin_trylock-0x4
     977:       85 c0                   test   %eax,%eax
     979:       48 8b 8d 50 ff ff ff    mov    -0xb0(%rbp),%rcx
     980:       74 4d                   je     9cf <ext2_try_to_allocate_with_rs
v+0x412>
     982:       44 29 f9                sub    %r15d,%ecx
     985:       48 89 df                mov    %rbx,%rdi
     988:       41 89 cf                mov    %ecx,%r15d
     98b:       e8 00 00 00 00          callq  990 <ext2_try_to_allocate_with_rsv+0x3d3>
                        98c: R_X86_64_PC32      rb_next-0x4
     990:       48 85 c0                test   %rax,%rax
     993:       4d 63 ff                movslq %r15d,%r15
     996:       48 8b 95 58 ff ff ff    mov    -0xa8(%rbp),%rdx
     99d:       75 06                   jne    9a5 <ext2_try_to_allocate_with_rsv+0x3e8>
     99f:       4c 01 7b 28             add    %r15,0x28(%rbx)

Here's another one picked at random:

module("ext2").statement("ext2_readdir@fs/ext2/dir.c:342") /* pc=.text+0x198f */ /* <- module("ext2").statement("*@*.c:*") */

    197e:       e9 8f 00 00 00          jmpq   1a12 <ext2_readdir+0x28c>
    1983:       45 8b 04 24             mov    (%r12),%r8d
    1987:       45 85 c0                test   %r8d,%r8d
    198a:       74 47                   je     19d3 <ext2_readdir+0x24d>
    198c:       45 31 c9                xor    %r9d,%r9d
    198f:       4d 85 ff                test   %r15,%r15
    1992:       74 10                   je     19a4 <ext2_readdir+0x21e>
    1994:       41 8a 44 24 07          mov    0x7(%r12),%al
    1999:       3c 07                   cmp    $0x7,%al
    199b:       77 07                   ja     19a4 <ext2_readdir+0x21e>
    199d:       0f b6 c0                movzbl %al,%eax
    19a0:       45 8a 0c 07             mov    (%r15,%rax,1),%r9b

HTH, Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/


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