All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pratyush Anand <panand@redhat.com>
To: Geoff Levand <geoff@infradead.org>
Cc: Kyle McMartin <kmcmarti@redhat.com>,
	Takahiro Akashi <takahiro.akashi@linaro.org>,
	kexec@lists.infradead.org, Vivek Goyal <vgoyal@redhat.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: arm64 kexec hang
Date: Sat, 28 Mar 2015 02:41:53 +0530	[thread overview]
Message-ID: <5515C799.8010600@redhat.com> (raw)
In-Reply-To: <1427477015.27739.30.camel@infradead.org>

Hi Geoff,

On Friday 27 March 2015 10:53 PM, Geoff Levand wrote:
> Hi Pratyush,
>
> On Wed, 2015-03-25 at 15:55 +0530, Pratyush Anand wrote:
>> So with following changes kexec load seems to complete without any
>> error. However, kexec reboot does not work yet, Nothing after bye
>> message :( (1st kernel booted with maxcpus=1)
>
> 'Bye!' doesn't mean much, other than the first kernel has
> almost shutdown.  I recommend for debugging you either define
> ARM64_DEBUG_PORT for the kexec-tools build, or have a suitable
> earlyprintk= on the kernel command line.  See the read_sink()
> routine in kexec-arm64.c.
>

Well, I was already using earlycon and it did not print anything after 
*Bye*.

I got OCD-H and is able to track the flow atleast and to see when it dies.

So, it all goes like machine_kexec ->..... -> arm64_kexec_kimage_start 
-> purgatory_start -> purgatory -> printf ... -> putchar

Here it dies (goes to el2_sync_invalid) as arm64_sink does not seem to 
be correct. arm64_sink is (-1) 0xffffffffffffffff. I also tried by just 
returning from printf without doing anything, still it goes to 
el2_sync_invalid (may be from some other location).

I will try to see tomorrow why arm64_sink is wrong and why did not it 
work if printf was null.

just for info: is_hyp_mode_available is true in my case.

~Pratyush


> Either of these will output something like this from the
> purgatory code:
>
>    I'm in purgatory
>    purgatory: kernel_entry: 0000000080080000
>    purgatory: dtb:          0000000080760000
>
> Another option is to add my 'debugging: early putc' patch,
> build the kernel with ARM64_DEBUG_PORT defined for your
>   board.  This will output 'stext' when the second
> stage kernel is entered
>
> The kexec --lite option will bypass purgatory and should just
> show 'stext'.
>
> -Geoff
>
>
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: panand@redhat.com (Pratyush Anand)
To: linux-arm-kernel@lists.infradead.org
Subject: arm64 kexec hang
Date: Sat, 28 Mar 2015 02:41:53 +0530	[thread overview]
Message-ID: <5515C799.8010600@redhat.com> (raw)
In-Reply-To: <1427477015.27739.30.camel@infradead.org>

Hi Geoff,

On Friday 27 March 2015 10:53 PM, Geoff Levand wrote:
> Hi Pratyush,
>
> On Wed, 2015-03-25 at 15:55 +0530, Pratyush Anand wrote:
>> So with following changes kexec load seems to complete without any
>> error. However, kexec reboot does not work yet, Nothing after bye
>> message :( (1st kernel booted with maxcpus=1)
>
> 'Bye!' doesn't mean much, other than the first kernel has
> almost shutdown.  I recommend for debugging you either define
> ARM64_DEBUG_PORT for the kexec-tools build, or have a suitable
> earlyprintk= on the kernel command line.  See the read_sink()
> routine in kexec-arm64.c.
>

Well, I was already using earlycon and it did not print anything after 
*Bye*.

I got OCD-H and is able to track the flow atleast and to see when it dies.

So, it all goes like machine_kexec ->..... -> arm64_kexec_kimage_start 
-> purgatory_start -> purgatory -> printf ... -> putchar

Here it dies (goes to el2_sync_invalid) as arm64_sink does not seem to 
be correct. arm64_sink is (-1) 0xffffffffffffffff. I also tried by just 
returning from printf without doing anything, still it goes to 
el2_sync_invalid (may be from some other location).

I will try to see tomorrow why arm64_sink is wrong and why did not it 
work if printf was null.

just for info: is_hyp_mode_available is true in my case.

~Pratyush


> Either of these will output something like this from the
> purgatory code:
>
>    I'm in purgatory
>    purgatory: kernel_entry: 0000000080080000
>    purgatory: dtb:          0000000080760000
>
> Another option is to add my 'debugging: early putc' patch,
> build the kernel with ARM64_DEBUG_PORT defined for your
>   board.  This will output 'stext' when the second
> stage kernel is entered
>
> The kexec --lite option will bypass purgatory and should just
> show 'stext'.
>
> -Geoff
>
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>

  reply	other threads:[~2015-03-27 21:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-27 17:23 arm64 kexec hang Geoff Levand
2015-03-27 21:11 ` Pratyush Anand [this message]
2015-03-27 21:11   ` Pratyush Anand
2015-03-30 12:26   ` Pratyush Anand
2015-03-30 12:26     ` Pratyush Anand
2015-03-30 14:38     ` Pratyush Anand
2015-03-30 14:38       ` Pratyush Anand
2015-03-30 15:25       ` Pratyush Anand
2015-03-30 15:25         ` Pratyush Anand
2015-03-30 16:40         ` Geoff Levand
2015-03-30 16:40           ` Geoff Levand

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=5515C799.8010600@redhat.com \
    --to=panand@redhat.com \
    --cc=geoff@infradead.org \
    --cc=kexec@lists.infradead.org \
    --cc=kmcmarti@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=takahiro.akashi@linaro.org \
    --cc=vgoyal@redhat.com \
    /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.