From: Kris V. H. <ae...@al...> - 2004-11-16 22:02:09
|
On Tue, Nov 16, 2004 at 10:44:29PM +0100, Blaisorblade wrote: > On Tuesday 16 November 2004 22:11, Kris Van Hees wrote: > > Has anyone else experienced trouble with running a UML kernel 2.4.26 that > > was compiled with GCC 3.3.4? My instances ran perfectly fine (compiled) > > with GCC 2.94 > 2.95.4 I guess (I think GCC 2.94 does not exist, but you may be correct, so I > just ask). > > but when I upgraded my GCC and recompiled everything, > > suddenly they started giving me trouble, ranging from tracing thread > > crashes to kernel mode panics. > Which GCC 3.3.4 and which UML? Everything is running on a debian (stable) system, 3.0r3, so the older GCC is actually 2.95.4 (sorry for the typo in my original message), and the new one (installed from testing because I need it for Xen) is GCC 3.3.4. I am using the stock 2.4.26 kernel, and UML patch uml-patch-2.4.26-3.bz2, along with UML tools uml_utilities_20040406.tar.bz2. Here is the end of the console: Initializing stdio console driver Netdevice 0 : TUN/TAP backend - NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 2048 bind 4096) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. VFS: Mounted root (ext2 filesystem) readonly. Mounted devfs on /dev INIT: version 2.84 booting And here is the backtrace from gdb: (gdb) bt #0 panic ( fmt=0xa009af99 "ó¥t\f\017·\006\203Æ\002f\211\a\203Ç\002öÂ\001t\005\017¶\006\210\a\213E\f\213@L\205Àt\006\215CX\211CL\213\034$\213t$\004\213|$\b\211ì]Ã\215´&") at panic.c:58 #1 0xa0090ab2 in segv () at trap_kern.c:149 #2 0xa0090f05 in segv_handler (sig=11, regs=0x0) at trap_user.c:74 #3 0xa0095251 in sig_handler_common_tt (sig=11, sc_ptr=0xa08ff498) at trap_user.c:43 #4 0xa0091001 in sig_handler (sig=0, sc= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 2694020392, esi = 2, ebp = 2693789564, esp = 2693789552, ebx = 2694020392, edx = 716, ecx = 179, eax = 2694020392, trapno = 14, err = 4, eip = 2684989337, cs = 35, __csh = 0, eflags = 66118, esp_at_signal = 2693789552, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 134285824, cr2 = 2}) at trap_user.c:108 #5 <signal handler called> #6 0xa009af99 in sc_to_sc (to_ptr=0xa0937d28, from_ptr=0x11) at sigcontext.c:26 #7 0xa0093153 in copy_thread_tt (nr=0, clone_flags=2694020392, sp=0, stack_top=0, p=0xa0934000, regs=0x0) at process_kern.c:305 Given that from_ptr is being reported as 0x11 in the arguments to sc_to_sc() I am assuming that the argument actually got overwritten by something else (most likely the signal number). The point of failure is where the kernel is trying to start 'init', as can be seen from this: (gdb) frame 7 #7 0xa0093153 in copy_thread_tt (nr=0, clone_flags=2694020392, sp=0, stack_top=0, p=0xa0934000, regs=0x0) at process_kern.c:305 305 UPT_SC(¤t->thread.regs.regs)); (gdb) print p.comm $4 = "init\0er\0\0\0\0\0\0\0\0" > UML 2.4.26-3 should be safe from this, older ones may not. > Also, for instance, Gcc 3.3.2 from Mandrake 10.0 Official is not able to > compile any UML 2.4 (no problem for UML/2.6), but like for Linux, even for > GCC some vendor ship patched versions, and the problem will probably lie in > the patch (since I've been using GCC 3.3.4 from Slackware to compile with > success UML 2.4). > > Please let me know your results. > -- > Paolo Giarrusso, aka Blaisorblade > Linux registered user n. 292729 -- Never underestimate a Mage with: - the Intelligence to cast Magic Missile, - the Constitution to survive the first hit, and - the Dexterity to run fast enough to avoid being hit a second time. |