All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <dvrabel@cantab.net>
To: Don Slutz <dslutz@verizon.com>,
	David Vrabel <david.vrabel@citrix.com>,
	Daniel Kiper <daniel.kiper@oracle.com>
Cc: Keir Fraser <keir@xen.org>, Daniel Kiper <dkiper@net-space.pl>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel@lists.xen.org
Subject: Re: [PATCHv9 0/9] Xen: extend kexec hypercall for use with pv-ops kernels
Date: Thu, 31 Oct 2013 18:30:32 +0000	[thread overview]
Message-ID: <5272A1C8.8070407@cantab.net> (raw)
In-Reply-To: <52728C76.8040501@terremark.com>

On 31/10/2013 16:59, Don Slutz wrote:
> On 10/30/13 12:57, David Vrabel wrote:
>> On 21/10/13 21:20, Daniel Kiper wrote:
>>> On Mon, Oct 21, 2013 at 01:56:09PM +0100, David Vrabel wrote:
>>>> On 21/10/13 13:19, Daniel Kiper wrote:
>>>>> On Sat, Oct 19, 2013 at 12:14:24AM +0100, David Vrabel wrote:
>>>>>> On 18/10/2013 19:40, Daniel Kiper wrote:
>>>>>>> On Tue, Oct 08, 2013 at 05:55:01PM +0100, David Vrabel wrote:
>>>>>>>> The series (for Xen 4.4) improves the kexec hypercall by making Xen
>>>>>>>> responsible for loading and relocating the image.  This allows kexec
>>>>>>>> to be usable by pv-ops kernels and should allow kexec to be usable
>>>>>>>> from a HVM or PVH privileged domain.
>>>>>>> I could not load panic image because Xen crashes in following way:
>>>>>>>
>>>>>>> (XEN) ----[ Xen-4.4-unstable  x86_64  debug=y  Tainted:    C ]----
>>>>>> [...]
>>>>>>> (XEN) Xen call trace:
>>>>>>> (XEN)    [<ffff82d080114ef2>] kimage_free+0x67/0xd2
>>>>>>> (XEN)    [<ffff82d0801151f9>] do_kimage_alloc+0x29c/0x2f0
>>>>>>> (XEN)    [<ffff82d0801152fe>] kimage_alloc+0xb1/0xe6
>>>>>>> (XEN)    [<ffff82d0801144c0>] do_kexec_op_internal+0x68e/0x789
>>>>>>> (XEN)    [<ffff82d0801145c9>] do_kexec_op+0xe/0x12
>>>>>>> (XEN)    [<ffff82d0802268cb>] syscall_enter+0xeb/0x145
> I get the same thing.
>>>>>> The appended patch should fix this crash which only occurs if there's an
>>>>>> error in do_kimage_alloc().
>>>>> Patch had wrapped lines. I hope that I fixed it properly.
>>>>> I cannot load panic kernel. kexec fails with following message:
> My version of this patch is attached (0001...). It has both crashed
> right away and not:
> 
>     (XEN) [2013-10-30 21:26:39] ----[ Xen-4.4-unstable  x86_64  debug=y 
>     Not tainted ]----
>     (XEN) [2013-10-30 21:26:39] CPU:    7
>     (XEN) [2013-10-30 21:26:39] RIP:    e008:[<ffff82d08012fd72>]
>     xmem_pool_free+0x6f/0x2e9

Looks like heap corruption.  I'll look into this.

>>>>> kexec_load failed: Cannot assign requested address
>>>> This is -EADDRINVALID which means one of
>>>>
>>>> a) the entry point isn't within a segment.
>>>> b) one of the segments is not page aligned.
>>>> c) one of the segments is not within the crash region.
>>>>
>>>> But the segments kexec has constructed all looked fine to me (and
>>>> similar to the segments I see).
> I have tracked this down to in kexec-tools:
> 
>     +    if (info->kexec_flags & KEXEC_ON_CRASH) {
>     +        set_xen_guest_handle(xen_segs[s].buf.h, HYPERCALL_BUFFER_NULL);
>     +        xen_segs[s].buf_size = 0;
>     +        xen_segs[s].dest_maddr = info->backup_src_start;
>     +        xen_segs[s].dest_size = info->backup_src_size;
>     +        nr_segments++;
>     +    }
> 
> Which in some cases passes the 1st e820 line which for me is:
> 
>     (XEN) Xen-e820 RAM map:
>     (XEN)  0000000000000000 - 000000000009b800 (usable)
>     (XEN)  000000000009b800 - 00000000000a0000 (reserved)
>     (XEN)  00000000000e0000 - 0000000000100000 (reserved)
>     (XEN)  0000000000100000 - 00000000bf63f000 (usable)
>     ...
> 
> 000000000009b800 is not page aligned and so the test:
> 
>          if ( (mstart & ~PAGE_MASK) || (mend & ~PAGE_MASK) )
>             goto out;
> 
> Fails.
> 
> A possible fix is attached as (0002...) this does allow me to get into
> the crash kernel.

Thanks for tracking this down. This should be fixed in the tools by
correctly aligning that segment.

David

  reply	other threads:[~2013-10-31 18:30 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-08 16:55 [PATCHv9 0/9] Xen: extend kexec hypercall for use with pv-ops kernels David Vrabel
2013-10-08 16:55 ` [PATCH 1/9] x86: give FIX_EFI_MPF its own fixmap entry David Vrabel
2013-10-08 16:55 ` [PATCH 2/9] kexec: add public interface for improved load/unload sub-ops David Vrabel
2013-10-08 16:55 ` [PATCH 3/9] kexec: add infrastructure for handling kexec images David Vrabel
2013-11-05 22:39   ` Don Slutz
2013-11-06  8:12     ` Jan Beulich
2013-10-08 16:55 ` [PATCH 4/9] kexec: extend hypercall with improved load/unload ops David Vrabel
2013-11-05 22:43   ` Don Slutz
2013-10-08 16:55 ` [PATCH 5/9] xen: kexec crash image when dom0 crashes David Vrabel
2013-10-08 16:55 ` [PATCH 6/9] libxc: add hypercall buffer arrays David Vrabel
2013-10-08 16:55 ` [PATCH 7/9] libxc: add API for kexec hypercall David Vrabel
2013-10-08 16:55 ` [PATCH 8/9] x86: check kexec relocation code fits in a page David Vrabel
2013-10-08 16:55 ` [PATCH 9/9] MAINTAINERS: Add KEXEC maintainer David Vrabel
2013-10-08 17:03 ` [PATCHv9 0/9] Xen: extend kexec hypercall for use with pv-ops kernels Andrew Cooper
2013-10-09 15:26 ` Daniel Kiper
2013-10-09 15:52   ` Andrew Cooper
2013-10-09 16:03   ` David Vrabel
2013-10-10 15:45     ` Daniel Kiper
2013-10-10 16:35       ` David Vrabel
2013-10-10 21:24         ` Daniel Kiper
2013-10-11  6:49           ` Jan Beulich
2013-10-11  8:58             ` Daniel Kiper
2013-10-11  9:56             ` David Vrabel
2013-10-11 11:15               ` Daniel Kiper
2013-10-11 14:06                 ` David Vrabel
2013-10-14 13:53                   ` Daniel Kiper
2013-10-14 14:14                     ` David Vrabel
2013-10-14 18:13                       ` Daniel Kiper
2013-10-16 21:09                         ` Daniel Kiper
2013-11-14 11:20                         ` Daniel Kiper
2013-11-14 11:27                           ` David Vrabel
2013-10-18 18:40 ` Daniel Kiper
2013-10-18 23:14   ` David Vrabel
2013-10-21 12:19     ` Daniel Kiper
2013-10-21 12:56       ` David Vrabel
2013-10-21 20:20         ` Daniel Kiper
2013-10-25  9:13           ` Daniel Kiper
2013-10-25 23:04             ` David Vrabel
2013-10-30 16:57           ` David Vrabel
2013-10-31 16:59             ` Don Slutz
2013-10-31 18:30               ` David Vrabel [this message]
2013-10-31 20:23                 ` Don Slutz
2013-10-31 22:21                 ` Daniel Kiper
2013-11-05 17:41                   ` Daniel Kiper
2013-11-05 18:01                     ` David Vrabel
2013-10-18 23:42   ` Andrew Cooper
2013-10-21  3:11 ` Xu, YongweiX
2013-10-21 10:21   ` David Vrabel
2013-10-21 12:26     ` David Vrabel

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=5272A1C8.8070407@cantab.net \
    --to=dvrabel@cantab.net \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=dkiper@net-space.pl \
    --cc=dslutz@verizon.com \
    --cc=jbeulich@suse.com \
    --cc=keir@xen.org \
    --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 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.