All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Bruno Prémont" <bonbons-ud5FBsm0p/xEiooADzr8i9i2O/JbrIOy@public.gmane.org>
To: Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
Cc: P J P <ppandit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: 3.12 to 3.13 boot regression bisected - still applies to 3.16
Date: Tue, 5 Aug 2014 14:11:42 +0200	[thread overview]
Message-ID: <20140805141142.437ecb17@pluto> (raw)
In-Reply-To: <20140805135130.2d180b69@pluto>

On Tue, 5 Aug 2014 13:51:30 +0200 Bruno Prémont wrote:

> On Tue, 5 Aug 2014 10:18:48 +0100 Matt Fleming wrote:
> > On Tue, 05 Aug, at 11:13:30AM, Bruno Prémont wrote:
> > > 
> > > I get at least to just before
> > >   status = efi_call_early(exit_boot_services, handle, key);
> > > in eboot.c on line 1310. A efi_printk inserted there is displayed.
> > 
> > This is worth pointing out in case you're unaware, but do you know that
> > it's not valid to call efi_printk() after ExitBootServices()? Doing so
> > will almost certainly cause your machine to fault.
> 
> I am aware that efi_printk() uses boot services!
> 
> 
> Now I tried out loops at many places and have gotten up to line 340 in
> 
>   arch/x86/kernel/head_64.S

oops, bad copy&paste, should have been
  arch/x86/boot/compressed/head_64.S

> System reboots within the following assembler instructions (does not
> reach line 359).
> 
> So efi_main() returns successfully but the assembler code following it
> gets something wrong.
> 
> I'm going to try further to determine which line between 340 and 359 is
> the "bad" one.

arch/x86/boot/compressed/head_64.S
341 /*
342  * Copy the compressed kernel to the end of our buffer
343  * where decompression in place becomes safe.
344  */
345         pushq   %rsi
346         leaq    (_bss-8)(%rip), %rsi
347         leaq    (_bss-8)(%rbx), %rdi
348         movq    $_bss /* - $startup_32 */, %rcx
349         shrq    $3, %rcx
350         std

code gets up to here

351         rep     movsq

this location is never reached but instead system reboots

352         cld
353         popq    %rsi
354 
355 /*      
356  * Jump to the relocated address.
357  */
 


Bruno

WARNING: multiple messages have this Message-ID (diff)
From: "Bruno Prémont" <bonbons@linux-vserver.org>
To: Matt Fleming <matt@console-pimps.org>
Cc: P J P <ppandit@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org
Subject: Re: 3.12 to 3.13 boot regression bisected - still applies to 3.16
Date: Tue, 5 Aug 2014 14:11:42 +0200	[thread overview]
Message-ID: <20140805141142.437ecb17@pluto> (raw)
In-Reply-To: <20140805135130.2d180b69@pluto>

On Tue, 5 Aug 2014 13:51:30 +0200 Bruno Prémont wrote:

> On Tue, 5 Aug 2014 10:18:48 +0100 Matt Fleming wrote:
> > On Tue, 05 Aug, at 11:13:30AM, Bruno Prémont wrote:
> > > 
> > > I get at least to just before
> > >   status = efi_call_early(exit_boot_services, handle, key);
> > > in eboot.c on line 1310. A efi_printk inserted there is displayed.
> > 
> > This is worth pointing out in case you're unaware, but do you know that
> > it's not valid to call efi_printk() after ExitBootServices()? Doing so
> > will almost certainly cause your machine to fault.
> 
> I am aware that efi_printk() uses boot services!
> 
> 
> Now I tried out loops at many places and have gotten up to line 340 in
> 
>   arch/x86/kernel/head_64.S

oops, bad copy&paste, should have been
  arch/x86/boot/compressed/head_64.S

> System reboots within the following assembler instructions (does not
> reach line 359).
> 
> So efi_main() returns successfully but the assembler code following it
> gets something wrong.
> 
> I'm going to try further to determine which line between 340 and 359 is
> the "bad" one.

arch/x86/boot/compressed/head_64.S
341 /*
342  * Copy the compressed kernel to the end of our buffer
343  * where decompression in place becomes safe.
344  */
345         pushq   %rsi
346         leaq    (_bss-8)(%rip), %rsi
347         leaq    (_bss-8)(%rbx), %rdi
348         movq    $_bss /* - $startup_32 */, %rcx
349         shrq    $3, %rcx
350         std

code gets up to here

351         rep     movsq

this location is never reached but instead system reboots

352         cld
353         popq    %rsi
354 
355 /*      
356  * Jump to the relocated address.
357  */
 


Bruno

  reply	other threads:[~2014-08-05 12:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-04  9:34 3.12 to 3.13 boot regression bisected - still applies to 3.16 Bruno Prémont
2014-08-04  9:34 ` Bruno Prémont
2014-08-04 12:27 ` Matt Fleming
2014-08-04 12:27   ` Matt Fleming
     [not found]   ` <20140804122728.GH15082-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-08-04 13:06     ` Bruno Prémont
2014-08-04 13:06       ` Bruno Prémont
2014-08-04 13:54       ` Matt Fleming
2014-08-05  8:02         ` Bruno Prémont
2014-08-05  8:45           ` Matt Fleming
     [not found]             ` <20140805084542.GM15082-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-08-05  9:13               ` Bruno Prémont
2014-08-05  9:13                 ` Bruno Prémont
2014-08-05  9:18                 ` Matt Fleming
     [not found]                   ` <20140805091848.GN15082-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-08-05 11:51                     ` Bruno Prémont
2014-08-05 11:51                       ` Bruno Prémont
2014-08-05 12:11                       ` Bruno Prémont [this message]
2014-08-05 12:11                         ` Bruno Prémont
2014-08-05 12:55                         ` Matt Fleming
2014-08-05 12:55                           ` Matt Fleming
     [not found]                           ` <20140805125548.GP15082-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-08-05 14:21                             ` Bruno Prémont
2014-08-05 14:21                               ` Bruno Prémont
2014-08-05 15:07                               ` Matt Fleming

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=20140805141142.437ecb17@pluto \
    --to=bonbons-ud5fbsm0p/xeiooadzr8i9i2o/jbrioy@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org \
    --cc=ppandit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.