From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Juergen Gross' <jgross@suse.com>,
Andrew Cooper <Andrew.Cooper3@citrix.com>,
Jan Beulich <JBeulich@suse.com>
Cc: "xen-devel (xen-devel@lists.xenproject.org)"
<xen-devel@lists.xenproject.org>,
"Julien Grall (julien.grall@arm.com)" <julien.grall@arm.com>,
'Boris Ostrovsky' <boris.ostrovsky@oracle.com>
Subject: Re: debian stretch dom0 + xen 4.9 fails to boot
Date: Wed, 7 Jun 2017 12:02:34 +0000 [thread overview]
Message-ID: <610c8eac0ccf4758a9fd95b482936ce6@AMSPEX02CL03.citrite.net> (raw)
In-Reply-To: <45c46864-0826-2370-5e5d-0f27f41ef845@suse.com>
> -----Original Message-----
> From: Juergen Gross [mailto:jgross@suse.com]
> Sent: 07 June 2017 12:57
> To: Paul Durrant <Paul.Durrant@citrix.com>; Andrew Cooper
> <Andrew.Cooper3@citrix.com>; Jan Beulich <JBeulich@suse.com>
> Cc: xen-devel (xen-devel@lists.xenproject.org) <xen-
> devel@lists.xenproject.org>; Julien Grall (julien.grall@arm.com)
> <julien.grall@arm.com>; 'Boris Ostrovsky' <boris.ostrovsky@oracle.com>
> Subject: Re: [Xen-devel] debian stretch dom0 + xen 4.9 fails to boot
>
> On 07/06/17 13:06, Paul Durrant wrote:
> >> -----Original Message-----
> >> From: Xen-devel [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of
> >> Paul Durrant
> >> Sent: 07 June 2017 11:37
> >> To: Andrew Cooper <Andrew.Cooper3@citrix.com>; 'Juergen Gross'
> >> <jgross@suse.com>; Jan Beulich <JBeulich@suse.com>
> >> Cc: xen-devel (xen-devel@lists.xenproject.org) <xen-
> >> devel@lists.xenproject.org>; Julien Grall (julien.grall@arm.com)
> >> <julien.grall@arm.com>; 'Boris Ostrovsky' <boris.ostrovsky@oracle.com>
> >> Subject: Re: [Xen-devel] debian stretch dom0 + xen 4.9 fails to boot
> >>
> >>> -----Original Message-----
> >> [snip]
> >>>>>
> >>>>> TBH: I really can't see what is wrong with that patch. The only change
> >>>>> which should be able to break something seems to be the reduction
> of
> >>> the
> >>>>> wakeup stack size to 3kB, but this shouldn't affect booting the system
> >>>>> at all...
> >>>>>
> >>>> Yeah, my next test is going to be increasing the size of the wakeup
> stack
> >>> again, but there is really nothing obviously wrong with the patch.
> >>>
> >>> My gut feeling is that there is some path through boot (tickled by these
> >>> two machines) which is clobbering the wrong piece of memory, which
> was
> >>> previously safe and is now not, because of the rearrangements here.
> >>>
> >>> Debugging these machines is very tricky, because they have no serial or
> >>> IMPI whatsoever.
> >>>
> >>
> >> It does appear to be a layout issue. If I modify the code to just set
> >> wakeup_stack to wakeup_stack_start + PAGE_SIZE, so it has the full 4k
> then I
> >> still get the problem. However if I then move that code block that includes
> >> wakeup.S and move it to the end of trampoline.S so that wakup code and
> >> stack are once again located at the end then the problem goes away.
> >>
> >
> > It appears that it is just the code that needs to go at the end. The following
> patch is sufficient to avoid the problem. This may be preferable to a full
> reversion...
>
> I believe this is wrong. You risk the wakeup_stack extending into wakeup
> code and the main reason of the patch is gone, as now the permanent
> trampoline no longer is on a single page.
>
I must be misunderstanding something then. The stack grows down from wakeup_stack towards wakeup_stack_start doesn't it? So why would there be an issue with the stack overwriting wakeup code?
Paul
>
> Juergen
>
> >
> > Paul
> >
> > diff --git a/xen/arch/x86/boot/trampoline.S
> b/xen/arch/x86/boot/trampoline.S
> > index 4d640f3fcd..7709a782f9 100644
> > --- a/xen/arch/x86/boot/trampoline.S
> > +++ b/xen/arch/x86/boot/trampoline.S
> > @@ -156,7 +156,7 @@ start64:
> > movabs $__high_start,%rax
> > jmpq *%rax
> >
> > -#include "wakeup.S"
> > +ENTRY(wakeup_stack_start)
> >
> > /* The first page of trampoline is permanent, the rest boot-time only. */
> > /* Reuse the boot trampoline on the 1st trampoline page as stack for
> wakeup. */
> > @@ -280,3 +280,4 @@ rm_idt: .word 256*4-1, 0, 0
> > #include "mem.S"
> > #include "edd.S"
> > #include "video.S"
> > +#include "wakeup.S"
> > diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
> > index f9632eef95..d4824b55d5 100644
> > --- a/xen/arch/x86/boot/wakeup.S
> > +++ b/xen/arch/x86/boot/wakeup.S
> > @@ -173,5 +173,3 @@ bogus_saved_magic:
> > movw $0x0e00 + 'S', 0xb8014
> > jmp bogus_saved_magic
> >
> > -/* Stack for wakeup: rest of first trampoline page. */
> > -ENTRY(wakeup_stack_start)
> >
> >> Paul
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@lists.xen.org
> >> https://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-06-07 12:03 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-06 14:32 debian stretch dom0 + xen 4.9 fails to boot Paul Durrant
2017-06-06 15:11 ` Jan Beulich
2017-06-06 15:51 ` Paul Durrant
2017-06-06 16:28 ` Paul Durrant
2017-06-06 17:00 ` Boris Ostrovsky
2017-06-07 8:07 ` Jan Beulich
2017-06-07 8:09 ` Paul Durrant
2017-06-07 8:19 ` Paul Durrant
2017-06-07 14:05 ` Boris Ostrovsky
2017-06-07 8:07 ` Paul Durrant
2017-06-07 8:27 ` Jan Beulich
[not found] ` <5937D4FF02000078001602F6@suse.com>
2017-06-07 9:03 ` Juergen Gross
2017-06-07 9:05 ` Paul Durrant
2017-06-07 9:09 ` Andrew Cooper
2017-06-07 10:36 ` Paul Durrant
2017-06-07 11:06 ` Paul Durrant
2017-06-07 11:57 ` Juergen Gross
2017-06-07 12:02 ` Paul Durrant [this message]
2017-06-07 12:13 ` Juergen Gross
2017-06-07 12:19 ` Jan Beulich
2017-06-07 12:26 ` Paul Durrant
2017-06-07 12:34 ` Jan Beulich
2017-06-07 11:50 ` Jan Beulich
2017-06-07 11:55 ` Paul Durrant
2017-06-07 12:00 ` Jan Beulich
2017-06-07 12:46 ` Paul Durrant
2017-06-07 12:55 ` Jan Beulich
2017-06-07 15:06 ` Paul Durrant
2017-06-07 15:33 ` Jan Beulich
2017-06-07 15:40 ` Paul Durrant
2017-06-07 15:52 ` Jan Beulich
2017-06-08 12:42 ` Paul Durrant
2017-06-08 12:46 ` Juergen Gross
2017-06-08 13:18 ` Jan Beulich
2017-06-08 13:24 ` Paul Durrant
2017-06-09 12:19 ` Paul Durrant
2017-06-09 13:05 ` Jan Beulich
2017-06-09 13:52 ` Boris Ostrovsky
2017-06-09 15:14 ` Paul Durrant
2017-06-09 15:41 ` Jan Beulich
2017-06-09 15:47 ` Paul Durrant
2017-06-09 15:58 ` Jan Beulich
2017-06-12 8:14 ` Paul Durrant
2017-06-12 10:40 ` Jan Beulich
2017-06-12 10:44 ` Paul Durrant
2017-06-12 10:53 ` Paul Durrant
2017-06-12 11:12 ` Jan Beulich
2017-06-12 12:05 ` Paul Durrant
2017-06-12 12:25 ` Paul Durrant
2017-06-12 13:54 ` Jan Beulich
2017-06-12 14:28 ` Paul Durrant
2017-06-12 14:43 ` Paul Durrant
2017-06-12 15:03 ` Paul Durrant
2017-06-12 15:07 ` Jan Beulich
2017-06-12 15:21 ` Paul Durrant
2017-06-06 17:40 ` Julien Grall
2017-06-07 8:05 ` Paul Durrant
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=610c8eac0ccf4758a9fd95b482936ce6@AMSPEX02CL03.citrite.net \
--to=paul.durrant@citrix.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=jgross@suse.com \
--cc=julien.grall@arm.com \
--cc=xen-devel@lists.xenproject.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;
as well as URLs for NNTP newsgroup(s).