WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 0/2] x86: cleanup highmap after brk is concluded

To: <linux-kernel@xxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 0/2] x86: cleanup highmap after brk is concluded
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Mon, 28 Feb 2011 18:24:19 +0000
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Yinghai Lu <yinghai@xxxxxxxxxx>
Delivery-date: Mon, 28 Feb 2011 10:25:09 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
Hi all,
a little while ago I sent a patch titled "x86/mm/init: respect memblock
reserved regions when destroying mappings"
(https://lkml.org/lkml/2011/1/31/232) to fix a serious boot crash
problem on Xen (full logs attached):

Pid: 0, comm: swapper Not tainted 2.6.38-rc6+ #1270 Hewlett-Packard HP xw8600 
Workstation/0A98h
RIP: e030:[<ffffffff81008314>]  [<ffffffff81008314>] 
get_phys_to_machine+0x44/0x50
RSP: e02b:ffffffff82001ca0  EFLAGS: 00010002
RAX: ffffffff824ce000 RBX: 0000000126004067 RCX: 0000000000000010
RDX: 0000000000000000 RSI: 00000001cfdc2000 RDI: 0000000000000004
RBP: ffffffff82001ca0 R08: 0000000000000020 R09: 0000000000000000
R10: 0000000000000007 R11: 00000000ffffffff R12: 0000000000126004
R13: 0000000000002004 R14: ffff880100000000 R15: ffff8801cfdc2000
FS:  0000000000000000(0000) GS:ffffffff82162000(0000) knlGS:0000000000000000
CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 0000000002003000 CR4: 0000000000002660
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000
Process swapper (pid: 0, threadinfo ffffffff82000000, task ffffffff8200b020)
Stack:
 ffffffff82001cd0 ffffffff8100582c ffffffff81dce1bc ffffffff82001e10
 00000001cfdc2000 ffffffff82003880 ffffffff82001ce0 ffffffff8100587e
 ffffffff82001d98 ffffffff8100498f 00000000ffffffff 0000000000000007
Call Trace:
 [<ffffffff8100582c>] pte_mfn_to_pfn+0x8c/0xb0
 [<ffffffff8100587e>] xen_pgd_val+0xe/0x10
 [<ffffffff8100498f>] __raw_callee_save_xen_pgd_val+0x11/0x1e
 [<ffffffff813ba570>] ? xenboot_write_console+0x0/0xd0
 [<ffffffff821c24b8>] ? kernel_physical_mapping_init+0x83/0x1db
 [<ffffffff8195469f>] init_memory_mapping+0x31f/0x6d0
 [<ffffffff821989fd>] ? memblock_reserve+0x1b/0x21
 [<ffffffff8217de95>] setup_arch+0xa59/0xd89
 [<ffffffff819b9c90>] ? _raw_spin_unlock_irqrestore+0x20/0x30
 [<ffffffff810074bd>] ? __raw_callee_save_xen_irq_disable+0x11/0x1e
 [<ffffffff82177b35>] start_kernel+0xc6/0x4df
 [<ffffffff821772c5>] x86_64_start_reservations+0xa5/0xc9
 [<ffffffff8217b6fa>] xen_start_kernel+0x5d3/0x6a9


Even though a clear solution wasn't reached in the following discussion,
Yinghai Lu sent a patch to move cleanup_highmap() after reserve_brk() so
that we don't have to clear the initial mappings in two steps.
The patch is a nice cleanup and with few small changes to honour the
variable max_pfn_mapped can be used to fix the boot issue on Xen: all we
have to do is setting max_pfn_mapped to the last valid pfn mapped on Xen
that is the page baking _end.


The list of patches with diffstat follows, comments and suggestions are
very welcome:

Stefano Stabellini (1):
      xen: set max_pfn_mapped to the last pfn mapped

Yinghai Lu (1):
      x86: Cleanup highmap after brk is concluded

 arch/x86/kernel/head64.c |    3 ---
 arch/x86/kernel/setup.c  |    6 ++++++
 arch/x86/mm/init.c       |   19 -------------------
 arch/x86/mm/init_64.c    |   11 ++++++-----
 arch/x86/xen/mmu.c       |   13 +++++++------
 5 files changed, 19 insertions(+), 33 deletions(-)


A git branch based on 2.6.38-rc6 is available here:

git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 2.6.38-rc6-mm-fix

Cheers,

Stefano

Attachment: log
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>