From: Juergen Gross <jgross@suse.com>
To: Ian Campbell <ian.campbell@citrix.com>, Wei Liu <wei.liu2@citrix.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
roger.pau@citrix.com, ian.jackson@eu.citrix.com,
xen-devel@lists.xen.org, stefano.stabellini@eu.citrix.com
Subject: Re: pvgrub "Error 9: Unknown boot failure" booting Debian Jessie kernel (Was: Re: [PATCH v5 6/9] libxc: create unmapped initrd in domain builder if supported)
Date: Tue, 1 Dec 2015 11:47:04 +0100 [thread overview]
Message-ID: <565D7AA8.9040905@suse.com> (raw)
In-Reply-To: <1448964104.15768.71.camel@citrix.com>
On 01/12/15 11:01, Ian Campbell wrote:
> On Tue, 2015-12-01 at 09:53 +0100, Juergen Gross wrote:
>> On 01/12/15 09:30, Ian Campbell wrote:
>>> On Tue, 2015-12-01 at 08:41 +0100, Juergen Gross wrote:
>>>>>> I'm not quite sure what to make of this, in particular I don't
>>>>>> see
>>>> anything
>>>>>> in kexec.c which obviously looks after unmapping the heap or brk
>>>> areas.
>>>>>
>>>>> Nah, this backtrace shows a normal allocation path while
>>>>> uncompressing the kernel image. I'd expect something like that.
>>>>> Why shouldn't mini-os make use of pfn 4d81 somewhere?
>>>
>>> That pfn ends up right in the middle of the next-kernels vaddr mapping,
>>> so at best it indicates some sort of disconnect/overlap between the
>>> mini-os memory allocator and the domain-builder memory allocator.
>>
>> I don't think so.
>>
>> mini-os just allocates single pages and keeps the relation to the
>> (future) pfn of that page. The p2m list is adjusted later to move the
>> allocated page to that pfn before activating the new kernel.
>
> Ah, I was wondering how it could possibly work so I half expected I must be
> missing something.
>
>>> Since it seems to be in the middle of the padding area (which might
>>> have been new in ea7c8a3d0e82, I'm not sure, it seems to be more
>>> explicit at the least) it occurred to me on the way home last night
>>> that maybe we need to unmap the padding area as well.
>>
>> We do. The page tables need to be unmapped independently as they
>> have been mapped explicitly during setup_pgtables(dom). All the
>> mini-os mappings are removed in a loop just after that.
>
> "a loop" is this:
> /* Unmap day0 pages to avoid having a r/w mapping of the future page table */
> for (pfn = 0; pfn < allocated; pfn++)
> munmap((void*) pages[pfn], PAGE_SIZE);
>
> In my debugging this extends only to the end of the actual mappings, not to
> the end of the padding, e.g. for me it is extending to "Unmap pfns 0 ..
> 0x4c0f" while the unexpected PT pfn is at 0x4d80 and the padding area
> extends to pfn 0x5000.
>
>>> I'll try that and your suggested patch below as well once I get to the
>>> office this morning.
>>
>> Thanks.
>
> The BUG_ON doesn't seem to be triggering. I'm not seeing pfn==0x4d80 going
> anywhere near kexec_allocate, the highest is 0x4c0f.
>
> Maybe the issue is that the ->allocate hook (==kexec_allocate) isn't called
> from xc_dom_alloc_pad?
OMG! How could I miss that? Thanks for finding this!
Juergen
next prev parent reply other threads:[~2015-12-01 10:47 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-12 13:43 [PATCH v5 0/9] libxc: support building large pv-domains Juergen Gross
2015-11-12 13:43 ` [PATCH v5 1/9] libxc: reorganize domain builder guest memory allocator Juergen Gross
2015-11-12 13:48 ` Wei Liu
2015-11-12 14:03 ` Juergen Gross
2015-11-12 14:47 ` Wei Liu
2015-11-12 14:47 ` Ian Campbell
2015-11-12 14:48 ` Wei Liu
2015-11-12 15:27 ` Juergen Gross
2015-11-12 15:55 ` Wei Liu
2015-11-13 4:41 ` Juergen Gross
2015-11-13 9:28 ` Ian Campbell
2015-11-13 11:13 ` Wei Liu
2015-11-12 13:43 ` [PATCH v5 2/9] xen: add generic flag to elf_dom_parms indicating support of unmapped initrd Juergen Gross
2015-11-12 13:43 ` [PATCH v5 3/9] libxc: rename domain builder count_pgtables to alloc_pgtables Juergen Gross
2015-11-12 13:43 ` [PATCH v5 4/9] libxc: introduce domain builder architecture specific data Juergen Gross
2015-11-12 13:43 ` [PATCH v5 5/9] libxc: use domain builder architecture private data for x86 pv domains Juergen Gross
2015-11-12 13:43 ` [PATCH v5 6/9] libxc: create unmapped initrd in domain builder if supported Juergen Gross
2015-11-25 16:12 ` Boris Ostrovsky
2015-11-25 16:18 ` Wei Liu
2015-11-25 16:24 ` Boris Ostrovsky
2015-11-25 16:29 ` Ian Campbell
2015-11-25 16:31 ` Wei Liu
2015-11-25 16:34 ` Boris Ostrovsky
2015-11-26 5:06 ` Juergen Gross
2015-11-26 5:19 ` Juergen Gross
2015-11-26 7:35 ` Juergen Gross
2015-11-30 10:20 ` Wei Liu
2015-11-30 10:23 ` Juergen Gross
2015-11-30 10:29 ` Wei Liu
2015-11-30 10:34 ` Ian Campbell
2015-11-30 10:47 ` Juergen Gross
2015-11-30 10:51 ` Ian Campbell
2015-11-30 10:52 ` Ian Campbell
2015-11-30 11:03 ` Juergen Gross
2015-11-30 11:23 ` Ian Campbell
2015-11-30 12:20 ` Juergen Gross
2015-11-30 12:35 ` Ian Campbell
2015-11-30 12:59 ` Juergen Gross
2015-11-30 13:16 ` pvgrub "Error 9: Unknown boot failure" booting Debian Jessie kernel (Was: Re: [PATCH v5 6/9] libxc: create unmapped initrd in domain builder if supported) Ian Campbell
2015-11-30 13:41 ` Ian Campbell
2015-11-30 14:10 ` Ian Campbell
2015-11-30 16:15 ` Juergen Gross
2015-11-30 16:25 ` Ian Campbell
2015-11-30 16:56 ` Ian Campbell
2015-12-01 7:15 ` Juergen Gross
2015-12-01 7:41 ` Juergen Gross
2015-12-01 8:30 ` Ian Campbell
2015-12-01 8:53 ` Juergen Gross
2015-12-01 10:01 ` Ian Campbell
2015-12-01 10:04 ` Ian Campbell
2015-12-01 10:21 ` Wei Liu
2015-12-01 10:31 ` Ian Campbell
2015-12-01 10:33 ` Wei Liu
2015-12-01 10:35 ` Ian Campbell
2015-12-01 10:47 ` Juergen Gross [this message]
2015-12-01 8:32 ` Ian Campbell
2015-12-01 11:12 ` dom builder logging from pvgrub Ian Campbell
2015-12-01 12:17 ` Samuel Thibault
2015-11-30 10:57 ` [PATCH v5 6/9] libxc: create unmapped initrd in domain builder if supported Juergen Gross
2015-11-30 18:00 ` Boris Ostrovsky
2015-11-12 13:43 ` [PATCH v5 7/9] libxc: split p2m allocation in domain builder from other magic pages Juergen Gross
2015-11-12 13:43 ` [PATCH v5 8/9] libxc: rework of domain builder's page table handler Juergen Gross
2015-11-12 13:47 ` Wei Liu
2015-11-12 13:48 ` Juergen Gross
2015-11-16 13:40 ` Ian Campbell
2015-11-16 14:32 ` Juergen Gross
2015-11-18 16:11 ` Boris Ostrovsky
2015-11-18 16:16 ` Wei Liu
2015-11-18 16:21 ` Boris Ostrovsky
2015-11-19 6:09 ` Juergen Gross
2015-11-19 13:41 ` Boris Ostrovsky
2015-11-12 13:43 ` [PATCH v5 9/9] libxc: create p2m list outside of kernel mapping if supported Juergen Gross
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=565D7AA8.9040905@suse.com \
--to=jgross@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=roger.pau@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.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).