The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Daniel Kiper <dkiper@net-space.pl>
Cc: stefano.stabellini@eu.citrix.com, xen-devel@lists.xensource.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH REPOST] pv-grub: Fix for incorrect dom->p2m_host[] list initialization
Date: Tue, 26 Apr 2011 09:42:42 -0400	[thread overview]
Message-ID: <20110426134242.GA26275@dumpdata.com> (raw)
In-Reply-To: <20110422212545.GA22846@router-fw-old.local.net-space.pl>

On Fri, Apr 22, 2011 at 11:25:45PM +0200, Daniel Kiper wrote:
> Added missed Signed-off-by line.
> 
> After a lot of debugging and long reading of Linux Kernel and Xen code
> finally I killed deeply hidden bug in pv-grub. Details below.
> Additionally, I am CC'ing this e-mail to LKML because this issue
> looks like Linux Kernel problem, however, it is not.
> 
> This patch applies to Xen Ver. 4.0, Xen Ver. 4.1 and unstable tree.
> 
> # HG changeset patch
> # User dkiper@net-space.pl
> # Date 1303474763 -7200
> # Node ID b33bf24be129b7b9cd2248460beb1298088c6af5
> # Parent  dbf2ddf652dc3dd927447e79ef4bc586de55d708
> Introduction of Linux Kernel git commit ceefccc93932b920a8ec6f35f596db05202a12fe
> (x86: default CONFIG_PHYSICAL_START and CONFIG_PHYSICAL_ALIGN to 16 MB) revealed
> deeply hidden bug in pv-grub. During kernel load stage dom->p2m_host[] list has
> been incorrectly initialized.
> 
> At the beginning of kernel load stage dom->p2m_host[] list is populated with
> current pfn->mfn layout. Later during memory allocation (memory is allocated
> page by page in kexec_allocate()) page order is changed to establish linear
> layout in new domain. It is done by exchanging subsequent mfns with newly
> allocated mfns. dom->p2m_host[] list is indexed by currently requested pfn
> (it is incremented from 0) and pfn of newly allocated paged. If pfn of newly
> allocated page is less than currently requested pfn then relevant earlier
> allocated mfn is overwritten which leads to domain crash later. This patch
> fix that issue. If pfn of newly allocated page is less then currently
> requested pfn then relevant pfn/mfn pair is properly calculated and usual
> exchange occurs later.

Nice! I presume this fixes the issue you had at the Xen Hack-O-Thon with
your guest right?

> 
> Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
> 
> diff -r dbf2ddf652dc -r b33bf24be129 stubdom/grub/kexec.c
> --- a/stubdom/grub/kexec.c	Thu Apr 07 15:26:58 2011 +0100
> +++ b/stubdom/grub/kexec.c	Fri Apr 22 14:19:23 2011 +0200
> @@ -91,6 +91,11 @@ int kexec_allocate(struct xc_dom_image *
>          new_pfn = PHYS_PFN(to_phys(pages[i]));
>          pages_mfns[i] = new_mfn = pfn_to_mfn(new_pfn);
>  
> +	if (new_pfn < i)
> +		for (new_pfn = i; new_pfn < dom->total_pages; ++new_pfn)
> +			if (dom->p2m_host[new_pfn] == new_mfn)
> +				break;
> +
>          /* Put old page at new PFN */
>          dom->p2m_host[new_pfn] = old_mfn;
>  
> Daniel
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

  parent reply	other threads:[~2011-04-26 13:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-22 21:25 [PATCH REPOST] pv-grub: Fix for incorrect dom->p2m_host[] list initialization Daniel Kiper
2011-04-22 22:33 ` [Xen-devel] " Samuel Thibault
2011-04-26 14:25   ` Daniel Kiper
2011-04-26 13:42 ` Konrad Rzeszutek Wilk [this message]
2011-04-26 14:34   ` Daniel Kiper

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=20110426134242.GA26275@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=dkiper@net-space.pl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox