|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Regression between Xen 4.6.0 and 4.7.0, Direct kernel boot on a qemu-xen and seabios HVM guest doesn't work anymore.
On Tue, Oct 25, 2016 at 03:49:59PM +0100, Wei Liu wrote:
> On Tue, Oct 25, 2016 at 01:37:45PM +0200, Sander Eikelenboom wrote:
> >
> > Tuesday, October 25, 2016, 1:24:12 PM, you wrote:
> >
> > > On Tue, Oct 18, 2016 at 01:48:23PM +0100, Wei Liu wrote:
> > >> On Mon, Oct 17, 2016 at 05:28:17PM +0200, Sander Eikelenboom wrote:
> > >> > Thursday, October 13, 2016, 4:43:31 PM, you wrote:
> > >> >
> > >> > > Hi Jan / Wei,
> > >> >
> > >> > > Took a while before i had the chance to fiddle some more to find the
> > >> > > actual culprit.
> > >> > > After analyzing the output of xl -vvvvv create somewhat more i came
> > >> > > to the
> > >> > > insight it was probably Qemu and not Xen causing the fault.
> > >> >
> > >> > > As a test I just used a qemu-xen binary build with xen-4.6.0 booting
> > >> > > up a guest with
> > >> > > direct kernel boot mode on xen-unstable. And that old qemu binary
> > >> > > works fine.
> > >> >
> > >> > > After testing i can conclude, Jan was right, the bisection was a red
> > >> > > herring,
> > >> > > the problem is caused by some change in Qemu and not by something in
> > >> > > the Xen tree.
> > >> > > (strange thing is that for as far as i know i did a "make distclean"
> > >> > > between
> > >> > > every build (taking a lot of time), which should have pulled a fresh
> > >> > > qemu-xen
> > >> > > tree and therefor the bisection should have lead to a commit with a
> > >> > > Config.mk
> > >> > > hash change for qemu-xen version.)
> > >> >
> > >> > > Will see if i can find some more time and bisect qemu and find the
> > >> > > culprit.
> > >> >
> > >> > > --
> > >> > > Sander
> > >> >
> > >> >
> > >> > Unfortunately i have to give up on this issue, for me it's impossible
> > >> > to bisect this
> > >> > issue with my present git-foo.
> > >> >
> > >> > The first try with bisection of the whole xen-tree seems to have hit
> > >> > the issue that the
> > >> > qemu-revision that gets pulled on a fresh build is "master" during the
> > >> > whole
> > >> > dev period. That creates havoc when trying to bisect, since you are
> > >> > testing
> > >> > combinations that were never developed (nor auto tested) in that
> > >> > combination
> > >> > (especially when a xen-tree and qemu-tree change have a dependency
> > >> > like Roger's
> > >> > "xen: fix usage of xc_domain_create in domain builder")
> > >> >
> > >> > While trying to bisect only qemu (keeping xen itself on RELEASE-4.6.0
> > >> > and
> > >> > seabios on rel-1.8.2) it get stuck on issues with that tree.
> > >> > Between 4.6.0 and 4.7.0 the qemu tree switched from
> > >> > git://xenbits.xen.org/qemu-upstream-4.6-testing.git
> > >> > to git://xenbits.xen.org/qemu-xen.git),after that there seem to have
> > >> > been a lot of merges going back and forth and to me it seems a mess
> > >> > (but as i
> > >> > said it could also be a lack of git-foo). I tried by manual bisecting,
> > >> > removing
> > >> > and cloning trees again etc. but that doesn't suffice, it's all going
> > >> > no-where.
> > >> > (while the known good build (plain RELEASE-4.6.0) always works, so it
> > >> > doesn't
> > >> > seem to be some random problem)
> > >> >
> > >>
> > >> Thanks for trying.
> > >>
> > >> > So perhaps some dev can at least verify that the issue is there (since
> > >> > 4.7.0)
> > >> > and put it on the "known broken" list of things.
> > >> >
> > >>
> > >> I will put this into the list of things I need to look at.
> > >>
> >
> > > I investigated this a bit. The root cause is the memory accounting is
> > > wrong in QEMU. It would try to allocate more ram than allowed. I haven't
> > > tried to figure out exactly what is wrong, though.
> >
> > That confirms what i was thinking in the end, but bisection the qemu-tree
> > changes between the xen-4.6.0 and xen-4.7.0 release proved to be pretty
> > difficult as i explained. So i you have a hunch as to in what code it
> > should
> > reside debugging instead of bisecting would probably be better.
> > (so one of the questions is what changes in the memory accounting when you
> > supply the kernel from the host instead of the guest, since booting a kernel
> > with grub from within the guest doesn't give any memory accounting issues.)
> >
> > Thanks for investigating !
>
> I think I hunted down the offending function.
>
> Mind trying this patch for me?
>
> ---8<---
> From 3c7f8b55109959cf470deeee452f452f7c0ade51 Mon Sep 17 00:00:00 2001
> From: Wei Liu <wei.liu2@xxxxxxxxxx>
> Date: Tue, 25 Oct 2016 15:45:04 +0100
> Subject: [PATCH] acpi: don't build acpi tables for xen guests
>
> Xen's toolstack is in charge of building ACPI tables. Skip acpi table
> building if running on Xen.
>
> This issue is discovered due to direct kernel boot on Xen doesn't boot
> anymore, because the new ACPI tables cause the guest to exceed its
> memory allocation limit.
>
> Reported-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
>
> RFC because I'm not sure this is the best way to fix it.
> ---
> hw/i386/acpi-build.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index a26a4bb..6ba5031 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -45,6 +45,7 @@
> #include "sysemu/tpm_backend.h"
> #include "hw/timer/mc146818rtc_regs.h"
> #include "sysemu/numa.h"
> +#include "hw/xen/xen.h"
>
> /* Supported chipsets: */
> #include "hw/acpi/piix4.h"
> @@ -2865,6 +2866,12 @@ void acpi_setup(void)
> return;
> }
>
> + if (xen_enabled()) {
> + fprintf(stderr, "%s %d\n", __FILE__, __LINE__);
Oops, this is just debug output - but you get the idea.
> + ACPI_BUILD_DPRINTF("Xen enabled. Bailing out.\n");
> + return;
> + }
> +
> build_state = g_malloc0(sizeof *build_state);
>
> acpi_set_pci_info();
> --
> 2.1.4
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |