On Tuesday 22 November 2005 13:38, Blaisorblade wrote:
> > I'll see this crash and raise you.  I just tried vanilla 2.6.15-rc2, and
> > although it booted to a shell it crashed with the first command I ran.
> > (This is my x86 laptop, built under ubuntu with gcc 3.3.5).  Dump and
> > dissassemblies follow.
>
> Ok, below is the likely failure point.
>
> From reading the code, I guess that this register is EIP, and that the
> disassembly is on not relocated code (the last 3 digits match):
>
> 12 - bfffe08d
>
> >  8113080:       55                      push   %ebp
> >  8113081:       89 c5                   mov    %eax,%ebp
> >  8113083:       b8 c0 00 00 00          mov    $0xc0,%eax
> >  8113088:       cd 80                   int    $0x80
> >  811308a:       5d                      pop    %ebp
>
> By memory we have remapped the stack
>
> >  811308b:       89 c7                   mov    %eax,%edi
>
> Ok, this instruction seems the failing one. However, I really wonder why it
> should fail - there is no "normal" reason for the failure, at least for
> what I see.
>
> What makes me think is: the kernel doesn't accept stack faults below $esp -
> 32 - that's called "a bug" by sources. This shouldn't be considered as a
> stack, but who knows.

I'm happy to try any suggested fixes you might have, but haven't made much 
progress on this part myself.

Here's the dump of stub_clone_handler from 2.6.14, which worked for me.  (The 
build environment and .config options are the same.  This is stock 2.6.14 
that doesn't have the LDT patch, but I tried the LDT patch by itself and it 
worked.  Whatever broke this was introduced in -rc1.)

I tried to compare 2.6.14 and 2.6.15-rc1 and they have _no_ similarity at all.  
Despite clone.c being identical.  (The 2.6.15-rc1 version is noticeably more 
bloated...


clone.o:     file format elf32-i386

Disassembly of section .__syscall_stub:

00000000 <stub_clone_handler>:
   0: 83 ec 10              sub    $0x10,%esp
   3: 89 1c 24              mov    %ebx,(%esp)
   6: 89 74 24 04           mov    %esi,0x4(%esp)
   a: 89 7c 24 08           mov    %edi,0x8(%esp)
   e: 89 6c 24 0c           mov    %ebp,0xc(%esp)
  12: b9 fc f7 ff bf        mov    $0xbffff7fc,%ecx
  17: bb 11 84 00 00        mov    $0x8411,%ebx
  1c: b8 78 00 00 00        mov    $0x78,%eax
  21: cd 80                 int    $0x80
  23: 89 c2                 mov    %eax,%edx
  25: 85 d2                 test   %edx,%edx
  27: 75 6a                 jne    93 <stub_clone_handler+0x93>
  29: be 00 00 00 00        mov    $0x0,%esi
  2e: ba 00 00 00 00        mov    $0x0,%edx
  33: b9 00 00 00 00        mov    $0x0,%ecx
  38: bb 00 00 00 00        mov    $0x0,%ebx
  3d: b8 1a 00 00 00        mov    $0x1a,%eax
  42: cd 80                 int    $0x80
  44: 89 c2                 mov    %eax,%edx
  46: 85 d2                 test   %edx,%edx
  48: 75 49                 jne    93 <stub_clone_handler+0x93>
  4a: ba 00 00 00 00        mov    $0x0,%edx
  4f: b9 08 f0 ff bf        mov    $0xbffff008,%ecx
  54: bb 01 00 00 00        mov    $0x1,%ebx
  59: b8 68 00 00 00        mov    $0x68,%eax
  5e: cd 80                 int    $0x80
  60: 89 c2                 mov    %eax,%edx
  62: 85 d2                 test   %edx,%edx
  64: 75 2d                 jne    93 <stub_clone_handler+0x93>
  66: 8b 2d 04 f0 ff bf     mov    0xbffff004,%ebp
  6c: b8 c0 00 00 00        mov    $0xc0,%eax
  71: bb 00 f0 ff bf        mov    $0xbffff000,%ebx
  76: b9 00 10 00 00        mov    $0x1000,%ecx
  7b: ba 03 00 00 00        mov    $0x3,%edx
  80: be 11 00 00 00        mov    $0x11,%esi
  85: 89 ef                 mov    %ebp,%edi
  87: 55                    push   %ebp
  88: 8b 2d 00 f0 ff bf     mov    0xbffff000,%ebp
  8e: cd 80                 int    $0x80
  90: 5d                    pop    %ebp
  91: 89 c2                 mov    %eax,%edx
  93: b8 00 f0 ff bf        mov    $0xbffff000,%eax
  98: 89 50 18              mov    %edx,0x18(%eax)
  9b: cc                    int3   
  9c: 8b 1c 24              mov    (%esp),%ebx
  9f: 8b 74 24 04           mov    0x4(%esp),%esi
  a3: 8b 7c 24 08           mov    0x8(%esp),%edi
  a7: 8b 6c 24 0c           mov    0xc(%esp),%ebp
  ab: 83 c4 10              add    $0x10,%esp
  ae: c3                    ret    


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to