[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2] x86/setup: don't relocate the VGA hole


  • To: <xen-devel@xxxxxxxxxxxxx>
  • From: Tim Deegan <tim@xxxxxxx>
  • Date: Thu, 14 Feb 2013 11:11:08 +0000
  • Delivery-date: Thu, 14 Feb 2013 11:11:28 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

# HG changeset patch
# User Tim Deegan <tim@xxxxxxx>
# Date 1360840027 0
# Node ID 6ad763d9f964859d045380baef43edf18399bdb0
# Parent  788f4551580d476e13ea907e373e58806a32179e
x86/setup: don't relocate the VGA hole.

Copying the contents of the VGA hole is at best pointless and at worst
dangerous.  Booting Xen on Xen, it causes a very long delay as each
byte is referred to qemu.

Since we were already discarding the first 1MB of the relocated area,
just avoid copying it in the first place.

Reported-by: Jon Ludlam <jonathan.ludlam@xxxxxxxxxxxxx>
Signed-off-by: Tim Deegan <tim@xxxxxxx>

diff -r 788f4551580d -r 6ad763d9f964 xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      Thu Feb 14 09:42:57 2013 +0100
+++ b/xen/arch/x86/setup.c      Thu Feb 14 11:07:07 2013 +0000
@@ -838,8 +838,8 @@ void __init __start_xen(unsigned long mb
             l4_pgentry_t *pl4e;
             l3_pgentry_t *pl3e;
             l2_pgentry_t *pl2e;
+            uint64_t load_start;
             int i, j, k;
-            void *dst;
 
             /* Select relocation address. */
             e = end - reloc_size;
@@ -852,11 +852,9 @@ void __init __start_xen(unsigned long mb
              * with a barrier(). After this we must *not* modify static/global
              * data until after we have switched to the relocated pagetables!
              */
+            load_start = (unsigned long)_start - XEN_VIRT_START;
             barrier();
-            dst = move_memory(e, 0, (unsigned long)&_end - XEN_VIRT_START, 1);
-
-            /* Poison low 1MB to detect stray pointers to physical 0-1MB. */
-            memset(dst, 0x55, 1U << 20);
+            move_memory(e + load_start, load_start, _end - _start, 1);
 
             /* Walk initial pagetables, relocating page directory entries. */
             pl4e = __va(__pa(idle_pg_table));

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.