From: "H. Peter Anvin" <hpa@zytor.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.22-rc1-mm1: boot failure under qemu
Date: Wed, 16 May 2007 08:46:42 -0700 [thread overview]
Message-ID: <464B2762.7040508@zytor.com> (raw)
In-Reply-To: <464ABF7C.1000307@goop.org>
Jeremy Fitzhardinge wrote:
> rax 000000004050ffff rbx 0000000000009000 rcx 0000000000000000 rdx 0000000000007b00
> rsi 000000000001fc05 rdi 0000000000040000 rsp 0000000000008f9a rbp 0000000000008100
> r8 0000000000000000 r9 0000000000000000 r10 0000000000000000 r11 0000000000000000
> r12 0000000000000000 r13 0000000000000000 r14 0000000000000000 r15 0000000000000000
> rip 0000000000001062 rflags 00033046
> cs 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
> ds 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
> es 8100 (00081000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
> ss 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
> fs 9900 (00099000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
> gs 9000 (00090000/0000ffff p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0)
>
> else
> while (num != 0)
> tmp[i++] = digits[do_div(num, base)];
> 1050: 66 89 f0 mov %esi,%eax
> 1053: 66 31 d2 xor %edx,%edx
> 1056: 66 f7 f5 div %ebp
> 1059: 66 89 c6 mov %eax,%esi
> 105c: 67 66 8b 44 24 28 addr32 mov 0x28(%esp),%eax
> 1062: 67 8a 14 10 addr32 mov (%eax,%edx,1),%dl
> 1066: 67 66 8b 44 24 2c addr32 mov 0x2c(%esp),%eax
> 106c: 67 88 54 04 3e addr32 mov %dl,0x3e(%esp,%eax,1)
>
>
> 0x1062 is in number (/home/jeremy/hg/xen/paravirt/linux/arch/i386/boot/printf.c:109).
> 104 i = 0;
> 105 if (num == 0)
> 106 tmp[i++] = '0';
> 107 else
> 108 while (num != 0)
> 109 tmp[i++] = digits[do_div(num, base)];
> 110 if (i > precision)
> 111 precision = i;
> 112 size -= precision;
> 113 if (!(type & (ZEROPAD + LEFT)))
>
>
> I haven't tried booting on real hardware, but this is a definite
> regression from the old setup code.
>
Hmmm...
There are a number of highly odd things about your dump, in particular,
%es == 0x8100 at this point, which means the constraint %cs == %ds ==
%es == %ss has been violated in this code; this should only happen
locally inside an assembly routine or asm() statement. Another bizarre
thing is that %ebp, which apparently is supposed to contain the base at
this point, is *also* set to 0x8100.
Finally, the total zincher is the flags -- VM RF IOPL=3. In real mode.
That's nuttier than Dick Cheney.
I have been using Qemu (as well as Bochs) to develop and test the code,
so obviously it Works For Me[TM]. Please describe the entry conditions
in more detail; in particular, what did you use to load the kernel?
Also, could you send me your .config and simulation image?
-hpa
next prev parent reply other threads:[~2007-05-16 15:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-16 8:23 2.6.22-rc1-mm1: boot failure under qemu Jeremy Fitzhardinge
2007-05-16 15:46 ` H. Peter Anvin [this message]
2007-05-16 16:30 ` Jeremy Fitzhardinge
2007-05-16 17:59 ` H. Peter Anvin
2007-05-16 18:24 ` Jeremy Fitzhardinge
2007-05-16 18:52 ` Nish Aravamudan
2007-05-16 19:07 ` H. Peter Anvin
2007-05-17 0:47 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=464B2762.7040508@zytor.com \
--to=hpa@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox