From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: dmidecode doesn't work under xen 4.1.1 on certain hardware Date: Mon, 26 Sep 2011 15:37:33 -0400 Message-ID: <20110926193732.GA10007@phenom.oracle.com> References: <4E7C6BDC.8070005@overnetdata.com> <20110923133200.GC19579@phenom.oracle.com> <4E7C9C8B.2010108@overnetdata.com> <20110926141322.GD4102@phenom.oracle.com> <4E8090D4.2090009@overnetdata.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="KsGdsel6WgEHnImy" Return-path: Content-Disposition: inline In-Reply-To: <4E8090D4.2090009@overnetdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Anthony Wright Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org --KsGdsel6WgEHnImy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Sep 26, 2011 at 03:48:52PM +0100, Anthony Wright wrote: > On 26/09/2011 15:13, Konrad Rzeszutek Wilk wrote: > > On Fri, Sep 23, 2011 at 03:49:47PM +0100, Anthony Wright wrote: > >> On 23/09/2011 14:32, Konrad Rzeszutek Wilk wrote: > >>> On Fri, Sep 23, 2011 at 12:22:04PM +0100, Anthony Wright wrote: > >>>> I have a xen 4.1.1 with a 3.0.4 linux kernel running on a Supermicro > >>>> Supermicro X8DTL-iF motherboard with 16GB of RAM. > >>>> > >>>> If I run the 3.0.4 kernel on the bare metal dmidecode works fine. If I > >>> Can you attach the beginning of the kernel bootup log? It should > >>> have some entry about 1-1 mappings. Make sure to run Linux with "debug loglevel=8" > >> Please find attached. > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] 1-1 mapping on 9a->100 > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] 1-1 mapping on bf780->100000 > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] Set 264422 page(s) to 1-1 mapping. > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] BIOS-provided physical RAM map: > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] Xen: 0000000000000000 - 0000000000099000 (usable) > >> 2011 Sep 23 14:45:41 kernel: [ 0.000000] Xen: 0000000000099800 - 0000000000100000 (reserved) > > .. snip.. > > > > So 99C00 is right at cusp of 'usuable' and 'reserved'. Meaning that region > > falls within the 4KB page. And we did not set the 1-1 mapping for 99 (we > > started at 9A). > > > > But now that I think of it - this is Linux E820 which does get modified. > > Can you also provide the hypervisor E820 output? You can get 'xl dmesg' > > for that. That should provide the "virgin" output of the e820 which we > > use for 1-1 mapping. > I'm not quite sure I understand all that, but I think you would find the > xl dmesg output helpful, so I've attached it. Thanks. > __ __ _ _ _ _ > \ \/ /___ _ __ | || | / | / | > \ // _ \ '_ \ | || |_ | | | | > / \ __/ | | | |__ _|| |_| | > /_/\_\___|_| |_| |_|(_)_(_)_| > > (XEN) Xen version 4.1.1 (@[unknown]) (gcc version 4.4.3 (GCC) ) Wed Sep 21 08:25:36 GMT 2011 > (XEN) Latest ChangeSet: unavailable > (XEN) Bootloader: GNU GRUB 0.97 > (XEN) Command line: > (XEN) Video information: > (XEN) VGA is text mode 80x25, font 8x16 > (XEN) VBE/DDC methods: V2; EDID transfer time: 1 seconds > (XEN) Disc information: > (XEN) Found 4 MBR signatures > (XEN) Found 4 EDD information structures > (XEN) WARNING: Only the first 16 GB of the physical memory map can be accessed by Xen in 32-bit mode. That bites ^^^^ > (XEN) Truncating RAM from 17825792kB to 16777216kB > (XEN) Xen-e820 RAM map: > (XEN) 0000000000000000 - 0000000000099800 (usable) > (XEN) 0000000000099800 - 00000000000a0000 (reserved) > (XEN) 00000000000e4000 - 0000000000100000 (reserved) > (XEN) 0000000000100000 - 00000000bf780000 (usable) > (XEN) 00000000bf78e000 - 00000000bf790000 type 9 Ok, so this patch should shed some light and potentially fix your problem. Please try it out and attach the serial log for Linux kernel. Thx. --KsGdsel6WgEHnImy Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="e820.patch" diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 46d6d21..3368c30 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -166,9 +166,11 @@ static unsigned long __init xen_set_identity(const struct e820entry *list, continue; if ((entry->type == E820_RAM) || (entry->type == E820_UNUSABLE)) { + printk(KERN_INFO "(%lx->%lx) PCI: %lx->%lx (last %lx, now %lx)\n", + start, end, start_pci, start, last, end); if (start > start_pci) identity += set_phys_range_identity( - PFN_UP(start_pci), PFN_DOWN(start)); + PFN_DOWN(start_pci), PFN_DOWN(start)); /* Without saving 'last' we would gooble RAM too * at the end of the loop. */ --KsGdsel6WgEHnImy Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --KsGdsel6WgEHnImy--