xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Stefano Stabellini <sstabellini@kernel.org>
To: Julien Grall <julien.grall@arm.com>
Cc: Iain Hunter <drhunter95@gmail.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Hunyue Yau <hy-gsoc@hy-research.com>,
	Denis Obrezkov <denisobrezkov@gmail.com>
Subject: Re: [Xen-devel] How to boot domU and dom0 from a device tree
Date: Fri, 14 Jun 2019 13:53:00 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.21.1906141343510.2072@sstabellini-ThinkPad-T480s> (raw)
In-Reply-To: <dca4af7b-6591-cb01-8e75-32438097f65a@arm.com>

On Wed, 12 Jun 2019, Julien Grall wrote:
> (Moving from xen-users to xen-devel).
> 
> On 11/06/2019 23:18, Stefano Stabellini wrote:
> > I managed to reproduced the issue, and I know how to get past it.  Try
> > using the raw kernel Image (arch/arm64/boot/Image) instead of Image.gz
> > for dom0 and domU. That fixed it for me.
> > 
> > Julien, I didn't manage to figure out what the issue is exactly, but it
> > looks like Image.gz loading is broken at the moment.
> 
> Do you mean Image.gz is broken from DomU? Because per the log provided by
> Denis, this is working perfectly for Dom0 as we don't create domain in
> parallel.
> 
> By reading the code I can already spot the reason of the first issue reported
> by Denis. For reminder, this is when Dom0 and DomU are using the same module
> address for the gzip Image.
> 
> This is because when probing the kernel for Dom0, the module will get
> uncompressed and the module start/end will be updated to point to the
> uncompress version. Because of that, the probe for DomU kernel will not be
> able to find the module (the start addressed changed).
> 
> In this case, I think we only want to uncompress the module one time to avoid
> wasting memory. The solution I have in mind requires some rework in Xen, I
> would actually start by probing the information for all the domains, then
> uncompress the kernels modules, and then finish to build the domain.
> 
> For the out of memory problem discussed in this e-mail, I think the problem is
> not because of lack of memory in DomU. The problem is related to the
> inflate/gunzip the code. The code is using an heap (see perform_gunzip) where
> it allocates memory from.
> 
> I am assuming the kernels for Dom0 and DomU are exactly the same but they are
> coming from different address. Am I correct? If so, I am a bit unsure this
> worked the first time and not the second time. This probably want some
> debugging to understand the problem. Denis, Stefano, can one of you look at
> it?

I couldn't find exactly the root cause yet, but I can reproduce the
issue even with Dom0 only (no domUs, no dom0less):

(XEN) *** LOADING DOMAIN 0 ***
(XEN) DEBUG kernel_probe 445
(XEN) Loading d0 kernel from boot module @ 0000000047000000
(XEN) Loading ramdisk from boot module @ 0000000042000000
(XEN) DEBUG kernel_decompress 268
(XEN) DEBUG kernel_decompress 272
(XEN) DEBUG kernel_decompress 279
(XEN) DEBUG kernel_decompress 284
(XEN) DEBUG kernel_decompress 291 kernel_order_out=52 output_size=0
(XEN) 
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Could not set up DOM0 guest OS
(XEN) ****************************************
(XEN) 
(XEN) Reboot in five seconds...


The issue seems to be that output_size, returned by output_length(input,
size) is 0. Then, kernel_order_out is set to 52 which is too large. As a
consequence kernel_decompress returns with -ENOMEM.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2019-06-14 20:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <59199da7-40ad-6513-2000-7e10fdbb564b@gmail.com>
     [not found] ` <28b298ba-9acb-5d3b-b4ba-4ef72f4db4be@gmail.com>
     [not found]   ` <65e7d353-b587-516e-d167-aa59a1e94f73@gmail.com>
     [not found]     ` <alpine.DEB.2.21.1906101329140.8691@sstabellini-ThinkPad-T480s>
     [not found]       ` <ba65a0e3-d7c4-f007-1a34-be28561804e5@gmail.com>
     [not found]         ` <22ab207e-ae22-2002-35e0-f28177e29c30@arm.com>
     [not found]           ` <f3034c36-cb04-b698-5a0e-1d4af3ac8f84@gmail.com>
     [not found]             ` <alpine.DEB.2.21.1906110907220.13737@sstabellini-ThinkPad-T480s>
     [not found]               ` <4db25be4-195e-6187-e9b8-c1a212429659@gmail.com>
     [not found]                 ` <987d8bb6-31a1-6d5e-2514-7498423c8c53@gmail.com>
     [not found]                   ` <alpine.DEB.2.21.1906111515000.13737@sstabellini-ThinkPad-T480s>
2019-06-12 11:26                     ` [Xen-devel] How to boot domU and dom0 from a device tree Julien Grall
2019-06-14 20:53                       ` Stefano Stabellini [this message]
2019-06-15 17:54                         ` Julien Grall
2019-06-17 18:12                           ` Stefano Stabellini
2019-06-17 18:57                             ` Julien Grall

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=alpine.DEB.2.21.1906141343510.2072@sstabellini-ThinkPad-T480s \
    --to=sstabellini@kernel.org \
    --cc=denisobrezkov@gmail.com \
    --cc=drhunter95@gmail.com \
    --cc=hy-gsoc@hy-research.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).