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] | |
On Tue, Jun 14, 2011 at 11:51:25AM -0400, Frank Ch. Eigler wrote:
> Hi -
>
> rjones wrote:
>
> > [...]
> > 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:
> >
> > [...]
> > 980: 74 4d je 9cf <ext2_try_to_allocate_with_rs
> > v+0x412>
> > 982: 44 29 f9 sub %r15d,%ecx
> > [...]
>
> That doesn't look particularly scary. However, recent versions of the
> kernel have started to attempt manual decoding of the instruction
> stream being kprobe'd in order to verify instruction boundaries. It
> could be that this check is not working correctly.
>
> See kernel arch/x86/kernel/kprobes can_probe(). Unfortunately that
> function is not particularly chatty about its error cases, and it's
> marked __kprobes to prevent itself from being kprobed. (That bit is
> almost certainly unnecessary and counterproductive.)
>
> If this is the problem, I believe a whole series of addresses past a
> given troublemaker would exhibit this failure, on a per-function
> basis. Are the problem probe addresses in sequential sub-sequences?
> Disassembling at the start would be helpful.
Attached is the complete list of warnings. Some of the addresses look
like they could come in sequences, while others not so much.
Disassembling super.c:1391 (pc=.text+0x63c2) through super.c:1429
(pc=.text+0x64da) looks like this:
63a4: 31 c0 xor %eax,%eax
63a6: 4c 8b 7f 18 mov 0x18(%rdi),%r15
63aa: 48 63 f6 movslq %esi,%rsi
63ad: 48 89 95 58 ff ff ff mov %rdx,-0xa8(%rbp)
63b4: 49 89 cc mov %rcx,%r12
63b7: 48 8b b4 f7 88 01 00 mov 0x188(%rdi,%rsi,8),%rsi
63be: 00
63bf: 48 89 fb mov %rdi,%rbx
63c2: 8a 4f 15 mov 0x15(%rdi),%cl
63c5: 48 8b 96 c8 00 00 00 mov 0xc8(%rsi),%rdx
63cc: 48 89 b5 50 ff ff ff mov %rsi,-0xb0(%rbp)
63d3: 49 39 d0 cmp %rdx,%r8
63d6: 0f 8f fe 00 00 00 jg 64da <ext2_quota_read+0x14f>
63dc: 4b 8d 34 20 lea (%r8,%r12,1),%rsi
63e0: 48 89 d0 mov %rdx,%rax
63e3: 4d 89 c6 mov %r8,%r14
63e6: 4c 29 c0 sub %r8,%rax
63e9: 48 39 d6 cmp %rdx,%rsi
63ec: 4c 0f 47 e0 cmova %rax,%r12
63f0: 41 ff cf dec %r15d
63f3: 49 d3 fe sar %cl,%r14
63f6: 45 21 c7 and %r8d,%r15d
63f9: 4d 89 e5 mov %r12,%r13
63fc: e9 c4 00 00 00 jmpq 64c5 <ext2_quota_read+0x13a>
6401: 4c 8b 4b 18 mov 0x18(%rbx),%r9
6405: 48 8b bd 50 ff ff ff mov -0xb0(%rbp),%rdi
640c: 48 8d 95 68 ff ff ff lea -0x98(%rbp),%rdx
6413: 31 c9 xor %ecx,%ecx
6415: 4c 89 f6 mov %r14,%rsi
6418: 48 c7 85 68 ff ff ff movq $0x0,-0x98(%rbp)
641f: 00 00 00 00
6423: 4c 89 4d 88 mov %r9,-0x78(%rbp)
6427: 4c 89 8d 48 ff ff ff mov %r9,-0xb8(%rbp)
642e: e8 00 00 00 00 callq 6433 <ext2_quota_read+0xa8>
642f: R_X86_64_PC32 ext2_get_block-0x4
6433: 85 c0 test %eax,%eax
6435: 4c 8b 8d 48 ff ff ff mov -0xb8(%rbp),%r9
643c: 79 07 jns 6445 <ext2_quota_read+0xba>
643e: 48 98 cltq
6440: e9 95 00 00 00 jmpq 64da <ext2_quota_read+0x14f>
6445: 4d 63 c7 movslq %r15d,%r8
6448: 48 8b 85 68 ff ff ff mov -0x98(%rbp),%rax
644f: 4d 89 ef mov %r13,%r15
6452: 4d 29 c1 sub %r8,%r9
6455: 4d 39 e9 cmp %r13,%r9
6458: 4d 0f 46 f9 cmovbe %r9,%r15
645c: a8 20 test $0x20,%al
645e: 75 10 jne 6470 <ext2_quota_read+0xe5>
6460: 48 8b bd 58 ff ff ff mov -0xa8(%rbp),%rdi
6467: 49 63 cf movslq %r15d,%rcx
646a: 31 c0 xor %eax,%eax
646c: f3 aa rep stos %al,%es:(%rdi)
646e: eb 42 jmp 64b2 <ext2_quota_read+0x127>
6470: 48 8b 53 18 mov 0x18(%rbx),%rdx
6474: 48 8b bb f8 00 00 00 mov 0xf8(%rbx),%rdi
647b: 48 8b 75 80 mov -0x80(%rbp),%rsi
647f: 4c 89 85 48 ff ff ff mov %r8,-0xb8(%rbp)
6486: e8 00 00 00 00 callq 648b <ext2_quota_read+0x100>
6487: R_X86_64_PC32 __bread-0x4
648b: 48 85 c0 test %rax,%rax
648e: 4c 8b 85 48 ff ff ff mov -0xb8(%rbp),%r8
6495: 74 3c je 64d3 <ext2_quota_read+0x148>
6497: 4c 89 c6 mov %r8,%rsi
649a: 48 03 70 28 add 0x28(%rax),%rsi
649e: 49 63 cf movslq %r15d,%rcx
64a1: 48 8b bd 58 ff ff ff mov -0xa8(%rbp),%rdi
64a8: f3 a4 rep movsb %ds:(%rsi),%es:(%rdi)
64aa: 48 89 c7 mov %rax,%rdi
64ad: e8 7c fc ff ff callq 612e <brelse>
64b2: 4d 63 ff movslq %r15d,%r15
64b5: 49 ff c6 inc %r14
64b8: 4c 01 bd 58 ff ff ff add %r15,-0xa8(%rbp)
64bf: 4d 29 fd sub %r15,%r13
64c2: 45 31 ff xor %r15d,%r15d
64c5: 4d 85 ed test %r13,%r13
64c8: 0f 85 33 ff ff ff jne 6401 <ext2_quota_read+0x76>
64ce: 4c 89 e0 mov %r12,%rax
64d1: eb 07 jmp 64da <ext2_quota_read+0x14f>
64d3: 48 c7 c0 fb ff ff ff mov $0xfffffffffffffffb,%rax
64da: 48 81 c4 98 00 00 00 add $0x98,%rsp
64e1: 5b pop %rbx
64e2: 41 5c pop %r12
64e4: 41 5d pop %r13
64e6: 41 5e pop %r14
64e8: 41 5f pop %r15
64ea: 5d pop %rbp
64eb: c3 retq
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
Attachment:
warnings.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |