Jeremy Fitzhardinge
2009-Aug-14 22:44 UTC
[Xen-devel] Crash when booting 32-bit kernel with pvgrub
I''m trying to boot a 32-bit PV guest on a 64-bit xen+dom0 system, and it crashes as soon as I select a kernel: Booting ''Fedora (2.6.27.19-170.2.35.fc10.i686.PAE)'' root (hd0,0) Error ENOENT when reading the backend path device/vkbd/0/backend Page fault at linear address 0x1c, eip 0x4b6ee, regs 0xb4ff7c, sp 0xb4fff0, our_sp 0xb4ff50, code 2 Thread: kbdfront EIP: 4b6ee, EFLAGS 10002. EBX: 746f6f72 ECX: 00000013 EDX: 00000000 ESI: 00b3fe98 EDI: 00000001 EBP: 00b4ffb0 EAX: 00000000 DS: c2c2e021 ES: e021 orig_eax: ffffffff, eip: 0004b6ee CS: 1e019 EFLAGS: 00010002 esp: 00b4fff0 ss: 37eb base is 0xb4ffb0 caller is 0x37eb base is 0xb4fff0 caller is 0x31ad b4ffe0: c2 c2 c2 c2 8f 37 00 00 90 05 00 00 40 20 00 98 b4fff0: 00 00 00 00 ad 31 00 00 94 fe b3 00 00 00 00 00 b50000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b50010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b4ffa0: ff ff ff ff ee b6 04 00 19 e0 01 00 02 00 01 00 b4ffb0: f0 ff b4 00 eb 37 00 00 00 00 00 00 01 00 00 00 b4ffc0: c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 b4ffd0: c2 c2 c2 c2 c2 c2 c2 00 c2 c2 c2 c2 c2 c2 c2 c2 4b6d0: e5 8b 45 08 c7 40 1c 00 00 00 00 c7 40 20 00 00 4b6e0: 00 00 83 60 18 fe 5d c3 55 89 e5 8b 45 08 c7 40 4b6f0: 1c 00 00 00 00 c7 40 20 00 00 00 00 83 48 18 01 4b700: 5d c3 55 89 e5 53 83 ec 14 a1 e0 e1 94 00 8b 58 Pagetable walk from virt 1c, base 9d7000: L3 = 0000000032520027 (0x9d8000) [offset = 0] L2 = 000000003251e067 (0x9da000) [offset = 0] L1 = 0000000000000000 [offset = 0] Any clues? Thanks, J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Christian Tramnitz
2009-Aug-16 20:20 UTC
[Xen-devel] Re: Crash when booting 32-bit kernel with pvgrub
Not sure if this is the actual cause of the problem but since you didn''t mention it explicitly: Did you build a separate 32bit pvgrub? pvgrub does not support 32bit/64bit switching so if you need to change architectures you need to compile another version of it... Best regards, Christian Jeremy Fitzhardinge wrote:> I''m trying to boot a 32-bit PV guest on a 64-bit xen+dom0 system, and it > crashes as soon as I select a kernel: > > > Booting ''Fedora (2.6.27.19-170.2.35.fc10.i686.PAE)'' > > root (hd0,0) > Error ENOENT when reading the backend path device/vkbd/0/backend > Page fault at linear address 0x1c, eip 0x4b6ee, regs 0xb4ff7c, sp 0xb4fff0, our_sp 0xb4ff50, code 2 > Thread: kbdfront > EIP: 4b6ee, EFLAGS 10002. > EBX: 746f6f72 ECX: 00000013 EDX: 00000000 > ESI: 00b3fe98 EDI: 00000001 EBP: 00b4ffb0 EAX: 00000000 > DS: c2c2e021 ES: e021 orig_eax: ffffffff, eip: 0004b6ee > CS: 1e019 EFLAGS: 00010002 esp: 00b4fff0 ss: 37eb > base is 0xb4ffb0 caller is 0x37eb > base is 0xb4fff0 caller is 0x31ad > > b4ffe0: c2 c2 c2 c2 8f 37 00 00 90 05 00 00 40 20 00 98 > b4fff0: 00 00 00 00 ad 31 00 00 94 fe b3 00 00 00 00 00 > b50000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > b50010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > b4ffa0: ff ff ff ff ee b6 04 00 19 e0 01 00 02 00 01 00 > b4ffb0: f0 ff b4 00 eb 37 00 00 00 00 00 00 01 00 00 00 > b4ffc0: c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 > b4ffd0: c2 c2 c2 c2 c2 c2 c2 00 c2 c2 c2 c2 c2 c2 c2 c2 > > 4b6d0: e5 8b 45 08 c7 40 1c 00 00 00 00 c7 40 20 00 00 > 4b6e0: 00 00 83 60 18 fe 5d c3 55 89 e5 8b 45 08 c7 40 > 4b6f0: 1c 00 00 00 00 c7 40 20 00 00 00 00 83 48 18 01 > 4b700: 5d c3 55 89 e5 53 83 ec 14 a1 e0 e1 94 00 8b 58 > Pagetable walk from virt 1c, base 9d7000: > L3 = 0000000032520027 (0x9d8000) [offset = 0] > L2 = 000000003251e067 (0x9da000) [offset = 0] > L1 = 0000000000000000 [offset = 0] > > > Any clues? > > Thanks, > J_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Aug-17 00:45 UTC
Re: [Xen-devel] Re: Crash when booting 32-bit kernel with pvgrub
On 08/16/09 13:20, Christian Tramnitz wrote:> Not sure if this is the actual cause of the problem but since you > didn''t mention it explicitly: Did you build a separate 32bit pvgrub? > pvgrub does not support 32bit/64bit switching so if you need to change > architectures you need to compile another version of it...It''s using kernel = "/usr/lib/xen/boot/pv-grub-x86_32.gz" which I''m presuming is correct. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Samuel Thibault
2009-Aug-17 12:46 UTC
[Xen-devel] Re: Crash when booting 32-bit kernel with pvgrub
Jeremy Fitzhardinge, le Fri 14 Aug 2009 15:44:49 -0700, a écrit :> I''m trying to boot a 32-bit PV guest on a 64-bit xen+dom0 system, and it > crashes as soon as I select a kernel: > > > Booting ''Fedora (2.6.27.19-170.2.35.fc10.i686.PAE)'' > > root (hd0,0) > Error ENOENT when reading the backend path device/vkbd/0/backendI guess you do not have pvfb enable?> Page fault at linear address 0x1c, eip 0x4b6ee, regs 0xb4ff7c, sp 0xb4fff0, our_sp 0xb4ff50, code 2 > Thread: kbdfrontOops, dev->backend isn''t allocated at this point and dev isn''t zeroed, here is a patch. Samuel Zero kbdfront and fbfront dev structures to fix free_kbdfront() and free_fbfront() on error. Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org> diff -r 41b2c4e4f674 extras/mini-os/fbfront.c --- a/extras/mini-os/fbfront.c Wed Jul 29 09:20:46 2009 +0100 +++ b/extras/mini-os/fbfront.c Mon Aug 17 14:45:43 2009 +0200 @@ -80,6 +80,7 @@ printk("******************* KBDFRONT for %s **********\n\n\n", nodename); dev = malloc(sizeof(*dev)); + memset(dev, 0, sizeof(*dev)); dev->nodename = strdup(nodename); #ifdef HAVE_LIBC dev->fd = -1; @@ -403,6 +404,7 @@ printk("******************* FBFRONT for %s **********\n\n\n", nodename); dev = malloc(sizeof(*dev)); + memset(dev, 0, sizeof(*dev)); dev->nodename = strdup(nodename); #ifdef HAVE_LIBC dev->fd = -1; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jeremy Fitzhardinge
2009-Sep-04 22:08 UTC
[Xen-devel] Re: Crash when booting 32-bit kernel with pvgrub
On 08/17/09 05:46, Samuel Thibault wrote:> Jeremy Fitzhardinge, le Fri 14 Aug 2009 15:44:49 -0700, a écrit : > >> I''m trying to boot a 32-bit PV guest on a 64-bit xen+dom0 system, and it >> crashes as soon as I select a kernel: >> >> >> Booting ''Fedora (2.6.27.19-170.2.35.fc10.i686.PAE)'' >> >> root (hd0,0) >> Error ENOENT when reading the backend path device/vkbd/0/backend >> > I guess you do not have pvfb enable? >No.>> Page fault at linear address 0x1c, eip 0x4b6ee, regs 0xb4ff7c, sp 0xb4fff0, our_sp 0xb4ff50, code 2 >> Thread: kbdfront >> > Oops, dev->backend isn''t allocated at this point and dev isn''t zeroed, > here is a patch. >Unfortunately this didn''t solve the problem for me; it looks unchanged with the patch applied. J> Samuel > > > Zero kbdfront and fbfront dev structures to fix free_kbdfront() and > free_fbfront() on error. > > Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org> > > diff -r 41b2c4e4f674 extras/mini-os/fbfront.c > --- a/extras/mini-os/fbfront.c Wed Jul 29 09:20:46 2009 +0100 > +++ b/extras/mini-os/fbfront.c Mon Aug 17 14:45:43 2009 +0200 > @@ -80,6 +80,7 @@ > printk("******************* KBDFRONT for %s **********\n\n\n", nodename); > > dev = malloc(sizeof(*dev)); > + memset(dev, 0, sizeof(*dev)); > dev->nodename = strdup(nodename); > #ifdef HAVE_LIBC > dev->fd = -1; > @@ -403,6 +404,7 @@ > printk("******************* FBFRONT for %s **********\n\n\n", nodename); > > dev = malloc(sizeof(*dev)); > + memset(dev, 0, sizeof(*dev)); > dev->nodename = strdup(nodename); > #ifdef HAVE_LIBC > dev->fd = -1; > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel