public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@in.ibm.com>
To: Alexander van Heukelum <heukelum@fastmail.fm>,
	Jean Delvare <khali@linux-fr.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	Andi Kleen <ak@suse.de>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: Patch "i386: Relocatable kernel support" causes instant reboot
Date: Fri, 22 Dec 2006 02:14:08 +0530	[thread overview]
Message-ID: <20061221204408.GA7009@in.ibm.com> (raw)
In-Reply-To: <1166723157.29546.281560884@webmail.messagingengine.com>

On Thu, Dec 21, 2006 at 06:45:57PM +0100, Alexander van Heukelum wrote:
> Hi,
> 
> Hmm. taking a peek at the bzImage there...
> 
> 00001d80  41 00 56 45 53 41 00 56  69 64 65 6f 20 61 64 61
> |A.VESA.Video ada|
> 00001d90  70 74 65 72 3a 20 00 00  00 b8 00 00 55 aa 5a 5a  |pter:
> ......U.ZZ|
> 00001da0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
> |................|
> *
> 00001e00  4e 35 13 00 1f 8b 08 00  23 a4 89 45 02 03 b4 fd
> |N5......#..E....|
>           -- -- -- -- ^^ ^^ ^^
> 
> This is the end of the realmode kernel, and it should be followed by the
> 32-bit code that is to be executed at (normally) 0x100000, right? This
> is however not the case here. Where did arch/i386/boot/compressed/head.S
> go then? What is the significance of this value 0x0013354e? It is in
> fact
> exactly the size of the compressed kernel image.
> 
> I have no idea what went wrong, but it went wrong in the build process
> of the bzImage.
> 

Hi Alexander,

Excellent observation. I did an "od -Ax -tx1" on bzImage built by me and
I can see the right startup_32() code bytes at the end of real mode code.

001d20 74 65 72 3a 20 00 00 00 b8 00 00 55 aa 5a 5a 00
001d30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
001e00 fc fa b8 18 00 00 00 8e d8 8e c0 8e e0 8e e8 8e
       ^^^^^^^^^^^
Following is the disassembly of startup_32() in
arch/386/boot/compressed/head.S

00000000 <startup_32>:
   0:   fc                      cld
   1:   fa                      cli
   2:   b8 18 00 00 00          mov    $0x18,%eax

So I can see 0x18b8fafc being rightly placed immediately after real
mode code (setup.S). But that does not seem to be the case with Jean's
bzImage.

The only place where size of compressed kernel (vmlinux.bin.gz) is placed
is piggy.o. Look at arch/i386/boot/compressed/vmlinux.scr. Here we put
the size of vmlinux.bin.gz in .data.compressed section before we put
actual vmlinux.bin.gz in this section.

Does that mean that somehow .data.compressed section was placed before
.text.head section? But that would be contarary to what
arch/i386/boot/compressed/vmlinux.lds instructs to linker.

At the same time I tried to find the pattern 0x18b8fafc in Jean's bzImage
but I can't find that. Does that mean that arch/i386/boot/compressed/head.S
was never compiled  and linked? 

Jean, can you please upload some more files. Should give some more idea
about what happened in your environment.

arch/i386/boot/vmlinux.bin
arch/i386/boot/compressed/piggy.o
arch/i386/boot/compressed/head.o

Thanks
Vivek

  reply	other threads:[~2006-12-22  7:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20061220141808.e4b8c0ea.khali@linux-fr.org>
2006-12-20 14:00 ` Patch "i386: Relocatable kernel support" causes instant reboot Eric W. Biederman
     [not found]   ` <20061220214340.f6b037b1.khali@linux-fr.org>
2006-12-20 22:22     ` Eric W. Biederman
     [not found]       ` <20061221101240.f7e8f107.khali@linux-fr.org>
     [not found]         ` <20061221102232.5a10bece.khali@linux-fr.org>
2006-12-21 10:32           ` Eric W. Biederman
2006-12-21  1:08             ` Vivek Goyal
2006-12-21 12:32               ` Eric W. Biederman
2006-12-21  2:26                 ` Vivek Goyal
2006-12-21  3:54                   ` Vivek Goyal
2006-12-21 13:13               ` Jean Delvare
2006-12-21  3:13                 ` Vivek Goyal
2006-12-21 13:59                   ` Jean Delvare
2006-12-21 17:45                     ` Alexander van Heukelum
2006-12-21 20:44                       ` Vivek Goyal [this message]
2006-12-22  8:08                         ` Jean Delvare
2006-12-22 10:40                           ` Vivek Goyal
2006-12-22 22:22                             ` Jean Delvare
2006-12-22 22:37                               ` Eric W. Biederman
2006-12-26 12:43                             ` Segher Boessenkool
2006-12-26 14:03                               ` Jean Delvare
2006-12-27  4:00                               ` Vivek Goyal
2006-12-27  4:25                                 ` Segher Boessenkool
2007-01-01 21:39                             ` Jean Delvare
2007-01-02  6:11                               ` Vivek Goyal
2007-01-02  9:29                                 ` Jean Delvare
2007-01-02 13:44                                   ` Segher Boessenkool
     [not found]             ` <20061221145401.07bfe408.khali@linux-fr.org>
2006-12-21  3:40               ` Vivek Goyal
2006-12-21 14:22                 ` Jean Delvare
2006-12-21  4:41     ` Vivek Goyal
2006-12-21  8:55       ` Jean Delvare

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=20061221204408.GA7009@in.ibm.com \
    --to=vgoyal@in.ibm.com \
    --cc=ak@suse.de \
    --cc=ebiederm@xmission.com \
    --cc=heukelum@fastmail.fm \
    --cc=khali@linux-fr.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