Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Frequent kernel panic with compat_linux module



On Wed, Dec 10, 2008 at 10:31:36PM +0000, David Laight wrote:
> On Wed, Dec 10, 2008 at 01:35:26AM +0100, Nicolas Joly wrote:
> > 
> >         l->l_sysent = sy;
> >         error = (*sy->sy_call)(l, uap, rval);
> >     ca2f:       48 89 e2                mov    %rsp,%rdx
> >     ca32:       48 89 ab 08 03 00 00    mov    %rbp,0x308(%rbx)
> >     ca39:       4c 89 e6                mov    %r12,%rsi
> >     ca3c:       48 89 df                mov    %rbx,%rdi
> >     ca3f:       ff 55 08                callq  *0x8(%rbp)
> >         l->l_sysent = NULL;
> >     ca42:       48 c7 83 08 03 00 00    movq   $0x0,0x308(%rbx)     <----
> >     ca49:       00 00 00 00 
> 
> Well, %rbx is supposed to be caller-saved and must have been valid
> at address ca32.  So something must be trashing it!
> 
> Did you work out which system call(s) were active?

Not sure ... most of time, i do not have a full trace.

Stopped in pid 3810.1 (cc1) at  compat_linux:linux_syscall+0x92:        movq    
$0,0x308(%rbx)
db{0}> bt
linux_syscall() at compat_linux:linux_syscall+0x92

But i encountered twice another variant which ended deeper in the
kernel.

kernel: page fault trap, code=0
Stopped in pid 1117.1 (x86_64-pc-linux-) at     netbsd:fork1+0x48d:     movq    
0x100(%rbx),%rdx
db{0}> bt
fork1() at netbsd:fork1+0x48d
sys_fork() at netbsd:sys_fork+0x32
linux_syscall() at compat_linux:linux_syscall+0xa3

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.


Home | Main Index | Thread Index | Old Index