Subject: Re: [vserver] opteron server dies with vserver patch.
From: Pawel Sikora <pluto@pld-linux.org>
Date: Tue, 09 Aug 2011 17:59:20 +0200

On Tuesday 09 of August 2011 14:56:57 Herbert Poetzl wrote:
> On Tue, Aug 09, 2011 at 01:35:13PM +0200, Pawel Sikora wrote:
> > fresh logs from another lock: 
> > http://pluto.agmk.net/kernel/opteron.lock-01.txt
> 
> could you do the address check for the Code: lines
> for that one too and mark the <xx> for me?

first pattern with mark <5b> is located in vmlinux file at 0x6341a3.
text section starts in file at 0x200000 with logical adress ffffffff81000000,
so if i caclulate correctly the code is:

ffffffff81434174:       66 66 66 2e 0f 1f 84    data32 data32 nopw %cs:0x0(%rax,%rax,1)
ffffffff8143417b:       00 00 00 00 00
ffffffff81434180 <down_read>:
ffffffff81434180:       55                      push   %rbp
ffffffff81434181:       48 89 e5                mov    %rsp,%rbp
ffffffff81434184:       53                      push   %rbx
ffffffff81434185:       48 89 fb                mov    %rdi,%rbx
ffffffff81434188:       48 83 ec 08             sub    $0x8,%rsp
ffffffff8143418c:       e8 3f ed ff ff          callq  ffffffff81432ed0 <_cond_resched>
ffffffff81434191:       48 89 d8                mov    %rbx,%rax
ffffffff81434194:       f0 48 ff 00             lock incq (%rax)
ffffffff81434198:       79 05                   jns    ffffffff8143419f <down_read+0x1f>
ffffffff8143419a:       e8 c1 bc e0 ff          callq  ffffffff8123fe60 <call_rwsem_down_read_failed>
ffffffff8143419f:       48 83 c4 08             add    $0x8,%rsp
ffffffff814341a3:       5b                      pop    %rbx               <===== HERE
ffffffff814341a4:       c9                      leaveq
ffffffff814341a5:       c3                      retq

second pattern with mark <4c> is located at 0x43482a:

ffffffff81234790 <find_next_bit>:
(...)
ffffffff812347fc:       48 f7 c7 c0 ff ff ff    test   $0xffffffffffffffc0,%rdi
ffffffff81234803:       75 e3                   jne    ffffffff812347e8 <find_next_bit+0x58>
ffffffff81234805:       48 85 ff                test   %rdi,%rdi
ffffffff81234808:       4c 89 c8                mov    %r9,%rax
ffffffff8123480b:       74 20                   je     ffffffff8123482d <find_next_bit+0x9d>
ffffffff8123480d:       49 8b 00                mov    (%r8),%rax
ffffffff81234810:       b9 40 00 00 00          mov    $0x40,%ecx
ffffffff81234815:       48 c7 c2 ff ff ff ff    mov    $0xffffffffffffffff,%rdx
ffffffff8123481c:       29 f9                   sub    %edi,%ecx
ffffffff8123481e:       48 d3 ea                shr    %cl,%rdx
ffffffff81234821:       48 21 d0                and    %rdx,%rax
ffffffff81234824:       74 0a                   je     ffffffff81234830 <find_next_bit+0xa0>
ffffffff81234826:       48 0f bc c0             bsf    %rax,%rax
ffffffff8123482a:       4c 01 c8                add    %r9,%rax           <====== HERE
ffffffff8123482d:       c9                      leaveq
ffffffff8123482e:       c3                      retq

code:
fb 4c 89 65 e0 4c 89 7d f8 49 89 d5 85 f6 74 2a 41 0f b6 10 45 89 cc 89 f0 4d 89 c7
44 38 ca 74 0f eb 2d 0f 1f 40 00 49 83 c7 01
is located at 0x331db1:

ffffffff81131d90 <check_bytes_and_report>:
ffffffff81131d90:       55                      push   %rbp
ffffffff81131d91:       b8 01 00 00 00          mov    $0x1,%eax
ffffffff81131d96:       48 89 e5                mov    %rsp,%rbp
ffffffff81131d99:       48 83 ec 50             sub    $0x50,%rsp
ffffffff81131d9d:       4c 89 75 f0             mov    %r14,-0x10(%rbp)
ffffffff81131da1:       49 89 f6                mov    %rsi,%r14
ffffffff81131da4:       8b 75 10                mov    0x10(%rbp),%esi
ffffffff81131da7:       48 89 5d d8             mov    %rbx,-0x28(%rbp)
ffffffff81131dab:       4c 89 6d e8             mov    %r13,-0x18(%rbp)
ffffffff81131daf:       48 89 fb                mov    %rdi,%rbx                   
 <==== FROM HERE 0xfb
ffffffff81131db2:       4c 89 65 e0             mov    %r12,-0x20(%rbp)
ffffffff81131db6:       4c 89 7d f8             mov    %r15,-0x8(%rbp)
ffffffff81131dba:       49 89 d5                mov    %rdx,%r13
ffffffff81131dbd:       85 f6                   test   %esi,%esi
ffffffff81131dbf:       74 2a                   je     ffffffff81131deb <check_bytes_and_report+0x5b>
ffffffff81131dc1:       41 0f b6 10             movzbl (%r8),%edx
ffffffff81131dc5:       45 89 cc                mov    %r9d,%r12d
ffffffff81131dc8:       89 f0                   mov    %esi,%eax
ffffffff81131dca:       4d 89 c7                mov    %r8,%r15
ffffffff81131dcd:       44 38 ca                cmp    %r9b,%dl
ffffffff81131dd0:       74 0f                   je     ffffffff81131de1 <check_bytes_and_report+0x51>
ffffffff81131dd2:       eb 2d                   jmp    ffffffff81131e01 <check_bytes_and_report+0x71>
ffffffff81131dd4:       0f 1f 40 00             nopl   0x0(%rax)
ffffffff81131dd8:       49 83 c7 01             add    $0x1,%r15

but i can't find in vmlinux this pattern:
00 00 66 66 66 66 90 65 48 8b 04 25 c8 b5 00 00 83 a0 3c e0 ff ff fb 0f ae f0 48 8b
80 38 e0 ff ff a8 08 0f 85 17 01 00 00 fb f4
maybe it comes from some loaded module?