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 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]