All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v16 0/9] x86: multiboot2 protocol support
@ 2017-02-21 19:19 Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 1/9] x86: add " Daniel Kiper
                   ` (8 more replies)
  0 siblings, 9 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Hi,

I am sending sixteenth version of multiboot2 protocol support for
legacy BIOS and EFI platforms. This patch series release contains
fixes for all known/confirmed issues.

The final goal is xen.efi binary file which could be loaded by EFI
loader, multiboot (v1) protocol (only on legacy BIOS platforms) and
multiboot2 protocol. This way we will have:
  - smaller Xen code base,
  - one code base for xen.gz and xen.efi,
  - one build method for xen.gz and xen.efi;
    xen.efi will be extracted from xen(-syms)
    file using objcopy or special custom tool,
  - xen.efi build will not so strongly depend
    on a given GCC and binutils version.

Here is short list of changes since v15:
  - changed patch: 4.

If you are not interested in this patch series at all please
drop me a line and I will remove you from distribution list.

Daniel

 xen/arch/x86/Makefile             |    4 +-
 xen/arch/x86/Rules.mk             |    3 +
 xen/arch/x86/boot/Makefile        |    3 +-
 xen/arch/x86/boot/head.S          |  584 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 xen/arch/x86/boot/reloc.c         |  154 +++++++++++++++++++++-
 xen/arch/x86/boot/trampoline.S    |    7 +-
 xen/arch/x86/boot/wakeup.S        |    4 +-
 xen/arch/x86/boot/x86_64.S        |   44 +++----
 xen/arch/x86/efi/Makefile         |   14 +-
 xen/arch/x86/efi/efi-boot.h       |   60 +++++++--
 xen/arch/x86/efi/stub.c           |   39 ++++++
 xen/arch/x86/setup.c              |   24 ++--
 xen/arch/x86/x86_64/asm-offsets.c |   15 +++
 xen/arch/x86/xen.lds.S            |   13 +-
 xen/common/efi/boot.c             |   64 +++++++++
 xen/common/efi/runtime.c          |    9 ++
 xen/include/asm-x86/config.h      |    5 +
 xen/include/asm-x86/page.h        |    2 +-
 xen/include/xen/config.h          |    1 +
 xen/include/xen/multiboot2.h      |  182 ++++++++++++++++++++++++++
 20 files changed, 1108 insertions(+), 123 deletions(-)

Daniel Kiper (9):
      x86: add multiboot2 protocol support
      efi: build xen.gz with EFI code
      efi: create new early memory allocator
      x86: add multiboot2 protocol support for EFI platforms
      x86: change default load address from 1 MiB to 2 MiB
      x86/setup: use XEN_IMG_OFFSET instead of...
      x86: make Xen early boot code relocatable
      x86/boot: rename sym_phys() to sym_offs()
      x86: add multiboot2 protocol support for relocatable images


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH v16 1/9] x86: add multiboot2 protocol support
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 2/9] efi: build xen.gz with EFI code Daniel Kiper
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Add multiboot2 protocol support. Alter min memory limit handling as we
now may not find it from either multiboot (v1) or multiboot2.

This way we are laying the foundation for EFI + GRUB2 + Xen development.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Tested-by: Doug Goldstein <cardoe@cardoe.com>
---
v13 - suggestions/fixes:
    - add Emacs file-local variables
      (suggested by Andrew Cooper).

v12 - suggestions/fixes:
    - replace TABs with spaces in xen/include/xen/multiboot2.h
      (suggested by Doug Goldstein).

v9 - suggestions/fixes:
   - use .L label instead of numeric one in multiboot2 data scanning loop;
     I hope that this change does not invalidate Jan's Reviewed-by
     (suggested by Jan Beulich).

v8 - suggestions/fixes:
   - use sizeof(<var>/<expr>) instead of sizeof(<type>)
     if it is possible
     (suggested by Jan Beulich).

v7 - suggestions/fixes:
   - rename mbi_mbi/mbi2_mbi to mbi_reloc/mbi2_reloc respectively
     (suggested by Jan Beulich),
   - initialize mbi_out->flags using "|=" instead of "="
     (suggested by Jan Beulich),
   - use sizeof(*mmap_dst) instead of sizeof(memory_map_t)
     if it makes sense
     (suggested by Jan Beulich).

v6 - suggestions/fixes:
   - properly index multiboot2_tag_mmap_t.entries[]
     (suggested by Jan Beulich),
   - do not index mbi_out_mods[] beyond its end
     (suggested by Andrew Cooper),
   - reduce number of casts
     (suggested by Andrew Cooper and Jan Beulich),
   - add braces to increase code readability
     (suggested by Andrew Cooper).

v5 - suggestions/fixes:
   - check multiboot2_tag_mmap_t.entry_size before
     multiboot2_tag_mmap_t.entries[] use
     (suggested by Jan Beulich),
   - properly index multiboot2_tag_mmap_t.entries[]
     (suggested by Jan Beulich),
   - use "type name[]" instad of "type name[0]"
     in xen/include/xen/multiboot2.h
     (suggested by Jan Beulich),
   - remove unneeded comment
     (suggested by Jan Beulich).

v4 - suggestions/fixes:
   - avoid assembly usage in xen/arch/x86/boot/reloc.c,
   - fix boundary check issue and optimize
     for() loops in mbi2_mbi(),
   - move to stdcall calling convention,
   - remove unneeded typeof() from ALIGN_UP() macro
     (suggested by Jan Beulich),
   - add and use NULL definition in xen/arch/x86/boot/reloc.c
     (suggested by Jan Beulich),
   - do not read data beyond the end of multiboot2
     information in xen/arch/x86/boot/head.S
     (suggested by Jan Beulich),
   - add :req to some .macro arguments
     (suggested by Jan Beulich),
   - use cmovcc if possible,
   - add .L to multiboot2_header_end label
     (suggested by Jan Beulich),
   - add .L to multiboot2_proto label
     (suggested by Jan Beulich),
   - improve label names
     (suggested by Jan Beulich).

v3 - suggestions/fixes:
   - reorder reloc() arguments
     (suggested by Jan Beulich),
   - remove .L from multiboot2 header labels
     (suggested by Andrew Cooper, Jan Beulich and Konrad Rzeszutek Wilk),
   - take into account alignment when skipping multiboot2 fixed part
     (suggested by Konrad Rzeszutek Wilk),
   - create modules data if modules count != 0
     (suggested by Jan Beulich),
   - improve macros
     (suggested by Jan Beulich),
   - reduce number of casts
     (suggested by Jan Beulich),
   - use const if possible
     (suggested by Jan Beulich),
   - drop static and __used__ attribute from reloc()
     (suggested by Jan Beulich),
   - remove isolated/stray __packed attribute from
     multiboot2_memory_map_t type definition
     (suggested by Jan Beulich),
   - reformat xen/include/xen/multiboot2.h
     (suggested by Konrad Rzeszutek Wilk),
   - improve comments
     (suggested by Konrad Rzeszutek Wilk),
   - remove hard tabs
     (suggested by Jan Beulich and Konrad Rzeszutek Wilk).

v2 - suggestions/fixes:
   - generate multiboot2 header using macros
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich),
   - simplify assembly in xen/arch/x86/boot/head.S
     (suggested by Jan Beulich),
   - do not include include/xen/compiler.h
     in xen/arch/x86/boot/reloc.c
     (suggested by Jan Beulich),
   - do not read data beyond the end of multiboot2 information
     (suggested by Jan Beulich).

v2 - not fixed yet:
   - dynamic dependency generation for xen/arch/x86/boot/reloc.S;
     this requires more work; I am not sure that it pays because
     potential patch requires more changes than addition of just
     multiboot2.h to Makefile
     (suggested by Jan Beulich),
   - isolated/stray __packed attribute usage for multiboot2_memory_map_t
     (suggested by Jan Beulich).
---
 xen/arch/x86/boot/Makefile        |    3 +-
 xen/arch/x86/boot/head.S          |  107 ++++++++++++++++++++++-
 xen/arch/x86/boot/reloc.c         |  154 +++++++++++++++++++++++++++++++--
 xen/arch/x86/x86_64/asm-offsets.c |    9 ++
 xen/include/xen/multiboot2.h      |  169 +++++++++++++++++++++++++++++++++++++
 5 files changed, 432 insertions(+), 10 deletions(-)
 create mode 100644 xen/include/xen/multiboot2.h

diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index 6d20646..c6246c8 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -4,7 +4,8 @@ DEFS_H_DEPS = defs.h $(BASEDIR)/include/xen/stdbool.h
 
 CMDLINE_DEPS = $(DEFS_H_DEPS) video.h
 
-RELOC_DEPS = $(DEFS_H_DEPS) $(BASEDIR)/include/xen/multiboot.h
+RELOC_DEPS = $(DEFS_H_DEPS) $(BASEDIR)/include/xen/multiboot.h \
+	     $(BASEDIR)/include/xen/multiboot2.h
 
 head.o: cmdline.S reloc.S
 
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 0aa4efa..6bcd05a 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -1,4 +1,5 @@
 #include <xen/multiboot.h>
+#include <xen/multiboot2.h>
 #include <public/xen.h>
 #include <asm/asm_defns.h>
 #include <asm/desc.h>
@@ -18,6 +19,28 @@
 #define BOOT_PSEUDORM_CS 0x0020
 #define BOOT_PSEUDORM_DS 0x0028
 
+#define MB2_HT(name)      (MULTIBOOT2_HEADER_TAG_##name)
+#define MB2_TT(name)      (MULTIBOOT2_TAG_TYPE_##name)
+
+        .macro mb2ht_args arg:req, args:vararg
+        .long \arg
+        .ifnb \args
+        mb2ht_args \args
+        .endif
+        .endm
+
+        .macro mb2ht_init type:req, req:req, args:vararg
+        .align MULTIBOOT2_TAG_ALIGN
+.Lmb2ht_init_start\@:
+        .short \type
+        .short \req
+        .long .Lmb2ht_init_end\@ - .Lmb2ht_init_start\@
+        .ifnb \args
+        mb2ht_args \args
+        .endif
+.Lmb2ht_init_end\@:
+        .endm
+
 ENTRY(start)
         jmp     __start
 
@@ -33,6 +56,42 @@ multiboot1_header_start:       /*** MULTIBOOT1 HEADER ****/
         .long   -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
 multiboot1_header_end:
 
+/*** MULTIBOOT2 HEADER ****/
+/* Some ideas are taken from grub-2.00/grub-core/tests/boot/kernel-i386.S file. */
+        .align  MULTIBOOT2_HEADER_ALIGN
+
+multiboot2_header_start:
+        /* Magic number indicating a Multiboot2 header. */
+        .long   MULTIBOOT2_HEADER_MAGIC
+        /* Architecture: i386. */
+        .long   MULTIBOOT2_ARCHITECTURE_I386
+        /* Multiboot2 header length. */
+        .long   .Lmultiboot2_header_end - multiboot2_header_start
+        /* Multiboot2 header checksum. */
+        .long   -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT2_ARCHITECTURE_I386 + \
+                        (.Lmultiboot2_header_end - multiboot2_header_start))
+
+        /* Multiboot2 information request tag. */
+        mb2ht_init MB2_HT(INFORMATION_REQUEST), MB2_HT(REQUIRED), \
+                   MB2_TT(BASIC_MEMINFO), MB2_TT(MMAP)
+
+        /* Align modules at page boundry. */
+        mb2ht_init MB2_HT(MODULE_ALIGN), MB2_HT(REQUIRED)
+
+        /* Console flags tag. */
+        mb2ht_init MB2_HT(CONSOLE_FLAGS), MB2_HT(OPTIONAL), \
+                   MULTIBOOT2_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED
+
+        /* Framebuffer tag. */
+        mb2ht_init MB2_HT(FRAMEBUFFER), MB2_HT(OPTIONAL), \
+                   0, /* Number of the columns - no preference. */ \
+                   0, /* Number of the lines - no preference. */ \
+                   0  /* Number of bits per pixel - no preference. */
+
+        /* Multiboot2 header end tag. */
+        mb2ht_init MB2_HT(END), MB2_HT(REQUIRED)
+.Lmultiboot2_header_end:
+
         .section .init.rodata, "a", @progbits
         .align 4
 
@@ -81,10 +140,52 @@ __start:
         mov     %ecx,%es
         mov     %ecx,%ss
 
-        /* Check for Multiboot bootloader */
+        /* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
+        xor     %edx,%edx
+
+        /* Check for Multiboot2 bootloader. */
+        cmp     $MULTIBOOT2_BOOTLOADER_MAGIC,%eax
+        je      .Lmultiboot2_proto
+
+        /* Check for Multiboot bootloader. */
         cmp     $MULTIBOOT_BOOTLOADER_MAGIC,%eax
         jne     not_multiboot
 
+        /* Get mem_lower from Multiboot information. */
+        testb   $MBI_MEMLIMITS,MB_flags(%ebx)
+
+        /* Not available? BDA value will be fine. */
+        cmovnz  MB_mem_lower(%ebx),%edx
+        jmp     trampoline_setup
+
+.Lmultiboot2_proto:
+        /* Skip Multiboot2 information fixed part. */
+        lea     (MB2_fixed_sizeof+MULTIBOOT2_TAG_ALIGN-1)(%ebx),%ecx
+        and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
+
+.Lmb2_tsize:
+        /* Check Multiboot2 information total size. */
+        mov     %ecx,%edi
+        sub     %ebx,%edi
+        cmp     %edi,MB2_fixed_total_size(%ebx)
+        jbe     trampoline_setup
+
+        /* Get mem_lower from Multiboot2 information. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO,MB2_tag_type(%ecx)
+        cmove   MB2_mem_lower(%ecx),%edx
+        je      trampoline_setup
+
+        /* Is it the end of Multiboot2 information? */
+        cmpl    $MULTIBOOT2_TAG_TYPE_END,MB2_tag_type(%ecx)
+        je      trampoline_setup
+
+        /* Go to next Multiboot2 information tag. */
+        add     MB2_tag_size(%ecx),%ecx
+        add     $(MULTIBOOT2_TAG_ALIGN-1),%ecx
+        and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
+        jmp     .Lmb2_tsize
+
+trampoline_setup:
         /* Set up trampoline segment 64k below EBDA */
         movzwl  0x40e,%ecx          /* EBDA segment */
         cmp     $0xa000,%ecx        /* sanity check (high) */
@@ -99,9 +200,6 @@ __start:
          * Compare the value in the BDA with the information from the
          * multiboot structure (if available) and use the smallest.
          */
-        testb   $MBI_MEMLIMITS,(%ebx)
-        jz      2f                  /* not available? BDA value will be fine */
-        mov     MB_mem_lower(%ebx),%edx
         cmp     $0x100,%edx         /* is the multiboot value too small? */
         jb      2f                  /* if so, do not use it */
         shl     $10-4,%edx
@@ -120,6 +218,7 @@ __start:
         mov     $sym_phys(cpu0_stack)+1024,%esp
         push    %ecx                /* Boot trampoline address. */
         push    %ebx                /* Multiboot information address. */
+        push    %eax                /* Multiboot magic. */
         call    reloc
         mov     %eax,sym_phys(multiboot_ptr)
 
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index 91405e9..91fab9d 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -5,15 +5,18 @@
  * and modules. This is most easily done early with paging disabled.
  *
  * Copyright (c) 2009, Citrix Systems, Inc.
+ * Copyright (c) 2013-2016 Oracle and/or its affiliates. All rights reserved.
  *
  * Authors:
  *    Keir Fraser <keir@xen.org>
+ *    Daniel Kiper <daniel.kiper@oracle.com>
  */
 
 /*
  * This entry point is entered from xen/arch/x86/boot/head.S with:
- *   - 0x4(%esp) = MULTIBOOT_INFORMATION_ADDRESS,
- *   - 0x8(%esp) = BOOT_TRAMPOLINE_ADDRESS.
+ *   - 0x4(%esp) = MULTIBOOT_MAGIC,
+ *   - 0x8(%esp) = MULTIBOOT_INFORMATION_ADDRESS,
+ *   - 0xc(%esp) = BOOT_TRAMPOLINE_ADDRESS.
  */
 asm (
     "    .text                         \n"
@@ -24,6 +27,10 @@ asm (
 
 #include "defs.h"
 #include "../../../include/xen/multiboot.h"
+#include "../../../include/xen/multiboot2.h"
+
+#define get_mb2_data(tag, type, member)   (((multiboot2_tag_##type##_t *)(tag))->member)
+#define get_mb2_string(tag, type, member) ((u32)get_mb2_data(tag, type, member))
 
 static u32 alloc;
 
@@ -32,6 +39,12 @@ static u32 alloc_mem(u32 bytes)
     return alloc -= ALIGN_UP(bytes, 16);
 }
 
+static void zero_mem(u32 s, u32 bytes)
+{
+    while ( bytes-- )
+        *(char *)s++ = 0;
+}
+
 static u32 copy_mem(u32 src, u32 bytes)
 {
     u32 dst, dst_ret;
@@ -58,13 +71,11 @@ static u32 copy_string(u32 src)
     return copy_mem(src, p - src + 1);
 }
 
-multiboot_info_t __stdcall *reloc(u32 mbi_in, u32 trampoline)
+static multiboot_info_t *mbi_reloc(u32 mbi_in)
 {
     int i;
     multiboot_info_t *mbi_out;
 
-    alloc = trampoline;
-
     mbi_out = _p(copy_mem(mbi_in, sizeof(*mbi_out)));
 
     if ( mbi_out->flags & MBI_CMDLINE )
@@ -101,3 +112,136 @@ multiboot_info_t __stdcall *reloc(u32 mbi_in, u32 trampoline)
 
     return mbi_out;
 }
+
+static multiboot_info_t *mbi2_reloc(u32 mbi_in)
+{
+    const multiboot2_fixed_t *mbi_fix = _p(mbi_in);
+    const multiboot2_memory_map_t *mmap_src;
+    const multiboot2_tag_t *tag;
+    module_t *mbi_out_mods = NULL;
+    memory_map_t *mmap_dst;
+    multiboot_info_t *mbi_out;
+    u32 ptr;
+    unsigned int i, mod_idx = 0;
+
+    ptr = alloc_mem(sizeof(*mbi_out));
+    mbi_out = _p(ptr);
+    zero_mem(ptr, sizeof(*mbi_out));
+
+    /* Skip Multiboot2 information fixed part. */
+    ptr = ALIGN_UP(mbi_in + sizeof(*mbi_fix), MULTIBOOT2_TAG_ALIGN);
+
+    /* Get the number of modules. */
+    for ( tag = _p(ptr); (u32)tag - mbi_in < mbi_fix->total_size;
+          tag = _p(ALIGN_UP((u32)tag + tag->size, MULTIBOOT2_TAG_ALIGN)) )
+    {
+        if ( tag->type == MULTIBOOT2_TAG_TYPE_MODULE )
+            ++mbi_out->mods_count;
+        else if ( tag->type == MULTIBOOT2_TAG_TYPE_END )
+            break;
+    }
+
+    if ( mbi_out->mods_count )
+    {
+        mbi_out->flags |= MBI_MODULES;
+        mbi_out->mods_addr = alloc_mem(mbi_out->mods_count * sizeof(*mbi_out_mods));
+        mbi_out_mods = _p(mbi_out->mods_addr);
+    }
+
+    /* Skip Multiboot2 information fixed part. */
+    ptr = ALIGN_UP(mbi_in + sizeof(*mbi_fix), MULTIBOOT2_TAG_ALIGN);
+
+    /* Put all needed data into mbi_out. */
+    for ( tag = _p(ptr); (u32)tag - mbi_in < mbi_fix->total_size;
+          tag = _p(ALIGN_UP((u32)tag + tag->size, MULTIBOOT2_TAG_ALIGN)) )
+        switch ( tag->type )
+        {
+        case MULTIBOOT2_TAG_TYPE_BOOT_LOADER_NAME:
+            mbi_out->flags |= MBI_LOADERNAME;
+            ptr = get_mb2_string(tag, string, string);
+            mbi_out->boot_loader_name = copy_string(ptr);
+            break;
+
+        case MULTIBOOT2_TAG_TYPE_CMDLINE:
+            mbi_out->flags |= MBI_CMDLINE;
+            ptr = get_mb2_string(tag, string, string);
+            mbi_out->cmdline = copy_string(ptr);
+            break;
+
+        case MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO:
+            mbi_out->flags |= MBI_MEMLIMITS;
+            mbi_out->mem_lower = get_mb2_data(tag, basic_meminfo, mem_lower);
+            mbi_out->mem_upper = get_mb2_data(tag, basic_meminfo, mem_upper);
+            break;
+
+        case MULTIBOOT2_TAG_TYPE_MMAP:
+            if ( get_mb2_data(tag, mmap, entry_size) < sizeof(*mmap_src) )
+                break;
+
+            mbi_out->flags |= MBI_MEMMAP;
+            mbi_out->mmap_length = get_mb2_data(tag, mmap, size);
+            mbi_out->mmap_length -= sizeof(multiboot2_tag_mmap_t);
+            mbi_out->mmap_length /= get_mb2_data(tag, mmap, entry_size);
+            mbi_out->mmap_length *= sizeof(*mmap_dst);
+
+            mbi_out->mmap_addr = alloc_mem(mbi_out->mmap_length);
+
+            mmap_src = get_mb2_data(tag, mmap, entries);
+            mmap_dst = _p(mbi_out->mmap_addr);
+
+            for ( i = 0; i < mbi_out->mmap_length / sizeof(*mmap_dst); i++ )
+            {
+                /* Init size member properly. */
+                mmap_dst[i].size = sizeof(*mmap_dst);
+                mmap_dst[i].size -= sizeof(mmap_dst[i].size);
+                /* Now copy a given region data. */
+                mmap_dst[i].base_addr_low = (u32)mmap_src->addr;
+                mmap_dst[i].base_addr_high = (u32)(mmap_src->addr >> 32);
+                mmap_dst[i].length_low = (u32)mmap_src->len;
+                mmap_dst[i].length_high = (u32)(mmap_src->len >> 32);
+                mmap_dst[i].type = mmap_src->type;
+                mmap_src = _p(mmap_src) + get_mb2_data(tag, mmap, entry_size);
+            }
+            break;
+
+        case MULTIBOOT2_TAG_TYPE_MODULE:
+            if ( mod_idx >= mbi_out->mods_count )
+                break;
+
+            mbi_out_mods[mod_idx].mod_start = get_mb2_data(tag, module, mod_start);
+            mbi_out_mods[mod_idx].mod_end = get_mb2_data(tag, module, mod_end);
+            ptr = get_mb2_string(tag, module, cmdline);
+            mbi_out_mods[mod_idx].string = copy_string(ptr);
+            mbi_out_mods[mod_idx].reserved = 0;
+            ++mod_idx;
+            break;
+
+        case MULTIBOOT2_TAG_TYPE_END:
+            return mbi_out;
+
+        default:
+            break;
+        }
+
+    return mbi_out;
+}
+
+multiboot_info_t __stdcall *reloc(u32 mb_magic, u32 mbi_in, u32 trampoline)
+{
+    alloc = trampoline;
+
+    if ( mb_magic == MULTIBOOT2_BOOTLOADER_MAGIC )
+        return mbi2_reloc(mbi_in);
+    else
+        return mbi_reloc(mbi_in);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 33a6b30..6aeb550 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -12,6 +12,7 @@
 #include <asm/fixmap.h>
 #include <asm/hardirq.h>
 #include <xen/multiboot.h>
+#include <xen/multiboot2.h>
 
 #define DEFINE(_sym, _val)                                                 \
     asm volatile ("\n.ascii\"==>#define " #_sym " %0 /* " #_val " */<==\"" \
@@ -166,6 +167,14 @@ void __dummy__(void)
     OFFSET(MB_flags, multiboot_info_t, flags);
     OFFSET(MB_cmdline, multiboot_info_t, cmdline);
     OFFSET(MB_mem_lower, multiboot_info_t, mem_lower);
+    BLANK();
+
+    DEFINE(MB2_fixed_sizeof, sizeof(multiboot2_fixed_t));
+    OFFSET(MB2_fixed_total_size, multiboot2_fixed_t, total_size);
+    OFFSET(MB2_tag_type, multiboot2_tag_t, type);
+    OFFSET(MB2_tag_size, multiboot2_tag_t, size);
+    OFFSET(MB2_mem_lower, multiboot2_tag_basic_meminfo_t, mem_lower);
+    BLANK();
 
     OFFSET(DOMAIN_vm_assist, struct domain, vm_assist);
 }
diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
new file mode 100644
index 0000000..a3e3119
--- /dev/null
+++ b/xen/include/xen/multiboot2.h
@@ -0,0 +1,169 @@
+/*
+ *  Copyright (C) 1999,2003,2007,2008,2009,2010  Free Software Foundation, Inc.
+ *
+ *  multiboot2.h - Multiboot 2 header file.
+ *
+ *  Based on grub-2.00/include/multiboot2.h file.
+ *
+ *  Permission is hereby granted, free of charge, to any person obtaining a copy
+ *  of this software and associated documentation files (the "Software"), to
+ *  deal in the Software without restriction, including without limitation the
+ *  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ *  sell copies of the Software, and to permit persons to whom the Software is
+ *  furnished to do so, subject to the following conditions:
+ *
+ *  The above copyright notice and this permission notice shall be included in
+ *  all copies or substantial portions of the Software.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL ANY
+ *  DEVELOPER OR DISTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+ *  IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef __MULTIBOOT2_H__
+#define __MULTIBOOT2_H__
+
+/* The magic field should contain this.  */
+#define MULTIBOOT2_HEADER_MAGIC                         0xe85250d6
+
+/* This should be in %eax on x86 architecture.  */
+#define MULTIBOOT2_BOOTLOADER_MAGIC                     0x36d76289
+
+/* How many bytes from the start of the file we search for the header.  */
+#define MULTIBOOT2_SEARCH                               32768
+
+/* Multiboot 2 header alignment. */
+#define MULTIBOOT2_HEADER_ALIGN                         8
+
+/* Alignment of multiboot 2 modules.  */
+#define MULTIBOOT2_MOD_ALIGN                            0x00001000
+
+/* Alignment of the multiboot 2 info structure.  */
+#define MULTIBOOT2_INFO_ALIGN                           0x00000008
+
+/* Multiboot 2 architectures. */
+#define MULTIBOOT2_ARCHITECTURE_I386                    0
+#define MULTIBOOT2_ARCHITECTURE_MIPS32                  4
+
+/* Header tag types. */
+#define MULTIBOOT2_HEADER_TAG_END                       0
+#define MULTIBOOT2_HEADER_TAG_INFORMATION_REQUEST       1
+#define MULTIBOOT2_HEADER_TAG_ADDRESS                   2
+#define MULTIBOOT2_HEADER_TAG_ENTRY_ADDRESS             3
+#define MULTIBOOT2_HEADER_TAG_CONSOLE_FLAGS             4
+#define MULTIBOOT2_HEADER_TAG_FRAMEBUFFER               5
+#define MULTIBOOT2_HEADER_TAG_MODULE_ALIGN              6
+#define MULTIBOOT2_HEADER_TAG_EFI_BS                    7
+#define MULTIBOOT2_HEADER_TAG_ENTRY_ADDRESS_EFI32       8
+#define MULTIBOOT2_HEADER_TAG_ENTRY_ADDRESS_EFI64       9
+
+/* Header tag flags. */
+#define MULTIBOOT2_HEADER_TAG_REQUIRED                  0
+#define MULTIBOOT2_HEADER_TAG_OPTIONAL                  1
+
+/* Header console tag console_flags. */
+#define MULTIBOOT2_CONSOLE_FLAGS_CONSOLE_REQUIRED       1
+#define MULTIBOOT2_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED     2
+
+/* Flags set in the 'flags' member of the multiboot header.  */
+#define MULTIBOOT2_TAG_TYPE_END                         0
+#define MULTIBOOT2_TAG_TYPE_CMDLINE                     1
+#define MULTIBOOT2_TAG_TYPE_BOOT_LOADER_NAME            2
+#define MULTIBOOT2_TAG_TYPE_MODULE                      3
+#define MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO               4
+#define MULTIBOOT2_TAG_TYPE_BOOTDEV                     5
+#define MULTIBOOT2_TAG_TYPE_MMAP                        6
+#define MULTIBOOT2_TAG_TYPE_VBE                         7
+#define MULTIBOOT2_TAG_TYPE_FRAMEBUFFER                 8
+#define MULTIBOOT2_TAG_TYPE_ELF_SECTIONS                9
+#define MULTIBOOT2_TAG_TYPE_APM                         10
+#define MULTIBOOT2_TAG_TYPE_EFI32                       11
+#define MULTIBOOT2_TAG_TYPE_EFI64                       12
+#define MULTIBOOT2_TAG_TYPE_SMBIOS                      13
+#define MULTIBOOT2_TAG_TYPE_ACPI_OLD                    14
+#define MULTIBOOT2_TAG_TYPE_ACPI_NEW                    15
+#define MULTIBOOT2_TAG_TYPE_NETWORK                     16
+#define MULTIBOOT2_TAG_TYPE_EFI_MMAP                    17
+#define MULTIBOOT2_TAG_TYPE_EFI_BS                      18
+#define MULTIBOOT2_TAG_TYPE_EFI32_IH                    19
+#define MULTIBOOT2_TAG_TYPE_EFI64_IH                    20
+
+/* Multiboot 2 tag alignment. */
+#define MULTIBOOT2_TAG_ALIGN                            8
+
+/* Memory types. */
+#define MULTIBOOT2_MEMORY_AVAILABLE                     1
+#define MULTIBOOT2_MEMORY_RESERVED                      2
+#define MULTIBOOT2_MEMORY_ACPI_RECLAIMABLE              3
+#define MULTIBOOT2_MEMORY_NVS                           4
+#define MULTIBOOT2_MEMORY_BADRAM                        5
+
+/* Framebuffer types. */
+#define MULTIBOOT2_FRAMEBUFFER_TYPE_INDEXED             0
+#define MULTIBOOT2_FRAMEBUFFER_TYPE_RGB                 1
+#define MULTIBOOT2_FRAMEBUFFER_TYPE_EGA_TEXT            2
+
+#ifndef __ASSEMBLY__
+typedef struct {
+    u32 total_size;
+    u32 reserved;
+} multiboot2_fixed_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+} multiboot2_tag_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    char string[];
+} multiboot2_tag_string_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    u32 mem_lower;
+    u32 mem_upper;
+} multiboot2_tag_basic_meminfo_t;
+
+typedef struct {
+    u64 addr;
+    u64 len;
+    u32 type;
+    u32 zero;
+} multiboot2_memory_map_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    u32 entry_size;
+    u32 entry_version;
+    multiboot2_memory_map_t entries[];
+} multiboot2_tag_mmap_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    u64 pointer;
+} multiboot2_tag_efi64_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    u64 pointer;
+} multiboot2_tag_efi64_ih_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
+    u32 mod_start;
+    u32 mod_end;
+    char cmdline[];
+} multiboot2_tag_module_t;
+#endif /* __ASSEMBLY__ */
+
+#endif /* __MULTIBOOT2_H__ */
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 2/9] efi: build xen.gz with EFI code
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 1/9] x86: add " Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 3/9] efi: create new early memory allocator Daniel Kiper
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Build xen.gz with EFI code. We need this to support multiboot2
protocol on EFI platforms.

If we wish to load non-ELF file using multiboot (v1) or multiboot2 then
it must contain "linear" (or "flat") representation of code and data.
This is requirement of both boot protocols. Currently, PE file contains
many sections which are not "linear" (one after another without any holes)
or even do not have representation in a file (e.g. BSS). From EFI point
of view everything is OK and works. However, this file layout cannot be
properly interpreted by multiboot protocols family. In theory there is
a chance that we could build proper PE file (from multiboot protocols POV)
using current build system. However, it means that xen.efi further diverge
from Xen ELF file (in terms of contents and build method). On the other
hand ELF has all needed properties. So, it means that this is good starting
point for further development. Additionally, I think that this is also good
starting point for further xen.efi code and build optimizations. It looks
that there is a chance that finally we can generate xen.efi directly from
Xen ELF using just simple objcopy or other tool. This way we will have one
Xen binary which can be loaded by three boot protocols: EFI native loader,
multiboot (v1) and multiboot2.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
---
v14 - suggestions/fixes:
    - at least GNU Make 4.1 does not build efi/buildid.o if nothing
      depends on it; so, add "boot.init.o: buildid.o" dependency to
      force efi/buildid.o on some versions of make; I hope that this
      small change does not invalidate Acked-by/Reviewed-by; however,
      I am dropping Tested-by
      (discovered by Konrad Rzeszutek Wilk and Marcos Matsunaga).

v6 - suggestions/fixes:
   - improve efi_enabled() checks in efi_runtime_call()
     (suggested by Jan Beulich).

v5 - suggestions/fixes:
   - properly calculate efi symbol address in
     xen/arch/x86/xen.lds.S (I hope that this
     change does not invalidate Jan's ACK).

v4 - suggestions/fixes:
   - functions should return -ENOSYS instead
     of -EOPNOTSUPP if EFI runtime services
     are not available
     (suggested by Jan Beulich),
   - remove stale bits from xen/arch/x86/Makefile
     (suggested by Jan Beulich).

v3 - suggestions/fixes:
   - check for EFI platform in EFI code
     (suggested by Jan Beulich),
   - fix Makefiles
     (suggested by Jan Beulich),
   - improve commit message
     (suggested by Jan Beulich).

v2 - suggestions/fixes:
   - build EFI code only if it is supported in a given build environment
     (suggested by Jan Beulich).
---
 xen/arch/x86/Makefile     |    2 +-
 xen/arch/x86/efi/Makefile |   14 ++++++--------
 xen/arch/x86/xen.lds.S    |    4 ++--
 xen/common/efi/boot.c     |    3 +++
 xen/common/efi/runtime.c  |    9 +++++++++
 5 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 10f519e..d6980b5 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -220,6 +220,6 @@ efi/mkreloc: efi/mkreloc.c
 clean::
 	rm -f asm-offsets.s *.lds boot/*.o boot/*~ boot/core boot/mkelf32
 	rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d
-	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.o efi/.*.d efi/*.efi efi/disabled efi/mkreloc
+	rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/disabled efi/mkreloc
 	rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
 	rm -f note.o
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
index ad3fdf7..3edff1c 100644
--- a/xen/arch/x86/efi/Makefile
+++ b/xen/arch/x86/efi/Makefile
@@ -1,18 +1,16 @@
 CFLAGS += -fshort-wchar
 
-obj-y += stub.o
-
-create = test -e $(1) || touch -t 199901010000 $(1)
-
 efi := y$(shell rm -f disabled)
 efi := $(if $(efi),$(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c check.c 2>disabled && echo y))
 efi := $(if $(efi),$(shell $(LD) -mi386pep --subsystem=10 -o check.efi check.o 2>disabled && echo y))
-efi := $(if $(efi),$(shell rm disabled)y,$(shell $(call create,boot.init.o); $(call create,runtime.o)))
-
-extra-$(efi) += boot.init.o relocs-dummy.o runtime.o compat.o buildid.o
+efi := $(if $(efi),$(shell rm disabled)y)
 
 %.o: %.ihex
 	$(OBJCOPY) -I ihex -O binary $< $@
 
-stub.o: $(extra-y)
+boot.init.o: buildid.o
+
+obj-y := stub.o
+obj-$(efi) := boot.init.o compat.o relocs-dummy.o runtime.o
+extra-$(efi) += buildid.o
 nogcov-$(efi) += stub.o
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 3368086..4f06da1 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -269,10 +269,10 @@ SECTIONS
   .pad : {
     . = ALIGN(MB(16));
   } :text
-#else
-  efi = .;
 #endif
 
+  efi = DEFINED(efi) ? efi : .;
+
   /* Sections to be discarded */
   /DISCARD/ : {
        *(.exit.text)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 3e5e4ab..df8c702 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1251,6 +1251,9 @@ void __init efi_init_memory(void)
     } *extra, *extra_head = NULL;
 #endif
 
+    if ( !efi_enabled(EFI_BOOT) )
+        return;
+
     printk(XENLOG_INFO "EFI memory map:%s\n",
            map_bs ? " (mapping BootServices)" : "");
     for ( i = 0; i < efi_memmap_size; i += efi_mdesc_size )
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 8c44835..25323de 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -196,6 +196,9 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
 {
     unsigned int i, n;
 
+    if ( !efi_enabled(EFI_BOOT) )
+        return -ENOSYS;
+
     switch ( idx )
     {
     case XEN_FW_EFI_VERSION:
@@ -331,6 +334,12 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
     EFI_STATUS status = EFI_NOT_STARTED;
     int rc = 0;
 
+    if ( !efi_enabled(EFI_BOOT) )
+        return -ENOSYS;
+
+    if ( !efi_enabled(EFI_RS) )
+        return -EOPNOTSUPP;
+
     switch ( op->function )
     {
     case XEN_EFI_get_time:
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 3/9] efi: create new early memory allocator
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 1/9] x86: add " Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 2/9] efi: build xen.gz with EFI code Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

There is a problem with place_string() which is used as early memory
allocator. It gets memory chunks starting from start symbol and goes
down. Sadly this does not work when Xen is loaded using multiboot2
protocol because then the start lives on 1 MiB address and we should
not allocate a memory from below of it. So, I tried to use mem_lower
address calculated by GRUB2. However, this solution works only on some
machines. There are machines in the wild (e.g. Dell PowerEdge R820)
which uses first ~640 KiB for boot services code or data... :-(((
Hence, we need new memory allocator for Xen EFI boot code which is
quite simple and generic and could be used by place_string() and
efi_arch_allocate_mmap_buffer(). I think about following solutions:

1) We could use native EFI allocation functions (e.g. AllocatePool()
   or AllocatePages()) to get memory chunk. However, later (somewhere
   in __start_xen()) we must copy its contents to safe place or reserve
   it in e820 memory map and map it in Xen virtual address space. This
   means that the code referring to Xen command line, loaded modules and
   EFI memory map, mostly in __start_xen(), will be further complicated
   and diverge from legacy BIOS cases. Additionally, both former things
   have to be placed below 4 GiB because their addresses are stored in
   multiboot_info_t structure which has 32-bit relevant members.

2) We may allocate memory area statically somewhere in Xen code which
   could be used as memory pool for early dynamic allocations. Looks
   quite simple. Additionally, it would not depend on EFI at all and
   could be used on legacy BIOS platforms if we need it. However, we
   must carefully choose size of this pool. We do not want increase Xen
   binary size too much and waste too much memory but also we must fit
   at least memory map on x86 EFI platforms. As I saw on small machine,
   e.g. IBM System x3550 M2 with 8 GiB RAM, memory map may contain more
   than 200 entries. Every entry on x86-64 platform is 40 bytes in size.
   So, it means that we need more than 8 KiB for EFI memory map only.
   Additionally, if we use this memory pool for Xen and modules command
   line storage (it would be used when xen.efi is executed as EFI application)
   then we should add, I think, about 1 KiB. In this case, to be on safe
   side, we should assume at least 64 KiB pool for early memory allocations.
   Which is about 4 times of our earlier calculations. However, during
   discussion on Xen-devel Jan Beulich suggested that just in case we should
   use 1 MiB memory pool like it is in original place_string() implementation.
   So, let's use 1 MiB as it was proposed. If we think that we should not
   waste unallocated memory in the pool on running system then we can mark
   this region as __initdata and move all required data to dynamically
   allocated places somewhere in __start_xen().

2a) We could put memory pool into .bss.page_aligned section. Then allocate
    memory chunks starting from the lowest address. After init phase we can
    free unused portion of the memory pool as in case of .init.text or .init.data
    sections. This way we do not need to allocate any space in image file and
    freeing of unused area in the memory pool is very simple.

Now #2a solution is implemented because it is quite simple and requires
limited number of changes, especially in __start_xen().

New allocator is quite generic and can be used on ARM platforms too.
Though it is not enabled on ARM yet due to lack of some prereq.
List of them is placed before ebmalloc code.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
Tested-by: Doug Goldstein <cardoe@cardoe.com>
---
v11 - suggestions/fixes:
    - #ifdef only EBMALLOC_SIZE from ebmalloc machinery
      (suggested by Jan Beulich).

v10 - suggestions/fixes:
    - remove unneeded ARM free_ebmalloc_unused_mem() stub.

v9 - suggestions/fixes:
   - call free_ebmalloc_unused_mem() from efi_init_memory()
     instead of xen/arch/arm/setup.c:init_done()
     (suggested by Jan Beulich),
   - improve comments.

v8 - suggestions/fixes:
   - disable whole ebmalloc machinery on ARM platforms,
   - add comment saying what should be done before
     enabling ebmalloc on ARM,
     (suggested by Julien Grall),
   - move ebmalloc code before efi-boot.h inclusion and
     remove unneeded forward declaration
     (suggested by Jan Beulich),
   - remove free_ebmalloc_unused_mem() call from
     xen/arch/arm/setup.c:init_done()
     (suggested by Julien Grall),
   - improve commit message.

v7 - suggestions/fixes:
   - enable most of ebmalloc machinery on ARM platforms
     (suggested by Jan Beulich),
   - remove unneeded cast
     (suggested by Jan Beulich),
   - wrap long line
     (suggested by Jan Beulich),
   - improve commit message.

v6 - suggestions/fixes:
   - optimize ebmalloc allocator,
   - move ebmalloc machinery to xen/common/efi/boot.c
     (suggested by Jan Beulich),
   - enforce PAGE_SIZE ebmalloc_mem alignment
     (suggested by Jan Beulich),
   - ebmalloc() must allocate properly
     aligned memory regions
     (suggested by Jan Beulich),
   - printk() should use XENLOG_INFO
     (suggested by Jan Beulich).

v4 - suggestions/fixes:
   - move from #2 solution to #2a solution,
   - improve commit message.
---
 xen/arch/x86/efi/efi-boot.h |   11 +++-------
 xen/arch/x86/setup.c        |    3 +--
 xen/common/efi/boot.c       |   50 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 54 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 388c4ea..62c010e 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -114,7 +114,7 @@ static void __init relocate_trampoline(unsigned long phys)
 
 static void __init place_string(u32 *addr, const char *s)
 {
-    static char *__initdata alloc = start;
+    char *alloc = NULL;
 
     if ( s && *s )
     {
@@ -122,7 +122,7 @@ static void __init place_string(u32 *addr, const char *s)
         const char *old = (char *)(long)*addr;
         size_t len2 = *addr ? strlen(old) + 1 : 0;
 
-        alloc -= len1 + len2;
+        alloc = ebmalloc(len1 + len2);
         /*
          * Insert new string before already existing one. This is needed
          * for options passed on the command line to override options from
@@ -205,12 +205,7 @@ static void __init efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,
 
 static void *__init efi_arch_allocate_mmap_buffer(UINTN map_size)
 {
-    place_string(&mbi.mem_upper, NULL);
-    mbi.mem_upper -= map_size;
-    mbi.mem_upper &= -__alignof__(EFI_MEMORY_DESCRIPTOR);
-    if ( mbi.mem_upper < xen_phys_start )
-        return NULL;
-    return (void *)(long)mbi.mem_upper;
+    return ebmalloc(map_size);
 }
 
 static void __init efi_arch_pre_exit_boot(void)
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 5f55abe..66b7aba 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1123,8 +1123,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
     if ( !xen_phys_start )
         panic("Not enough memory to relocate Xen.");
-    reserve_e820_ram(&boot_e820, efi_enabled(EFI_LOADER) ? mbi->mem_upper : __pa(&_start),
-                     __pa(&_end));
+    reserve_e820_ram(&boot_e820, __pa(&_start), __pa(&_end));
 
     /* Late kexec reservation (dynamic start address). */
     kexec_reserve_area(&boot_e820);
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index df8c702..36dbb71 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -98,6 +98,54 @@ static CHAR16 __initdata newline[] = L"\r\n";
 #define PrintStr(s) StdOut->OutputString(StdOut, s)
 #define PrintErr(s) StdErr->OutputString(StdErr, s)
 
+#ifdef CONFIG_ARM
+/*
+ * TODO: Enable EFI boot allocator on ARM.
+ * This code can be common for x86 and ARM.
+ * Things TODO on ARM before enabling ebmalloc:
+ *   - estimate required EBMALLOC_SIZE value,
+ *   - where (in which section) ebmalloc_mem[] should live; if in
+ *     .bss.page_aligned, as it is right now, then whole BSS zeroing
+ *     have to be disabled in xen/arch/arm/arm64/head.S; though BSS
+ *     should be initialized somehow before use of variables living there,
+ *   - use ebmalloc() in ARM/common EFI boot code,
+ *   - call free_ebmalloc_unused_mem() somewhere in init code.
+ */
+#define EBMALLOC_SIZE	MB(0)
+#else
+#define EBMALLOC_SIZE	MB(1)
+#endif
+
+static char __section(".bss.page_aligned") __aligned(PAGE_SIZE)
+    ebmalloc_mem[EBMALLOC_SIZE];
+static unsigned long __initdata ebmalloc_allocated;
+
+/* EFI boot allocator. */
+static void __init __maybe_unused *ebmalloc(size_t size)
+{
+    void *ptr = ebmalloc_mem + ebmalloc_allocated;
+
+    ebmalloc_allocated += (size + sizeof(void *) - 1) & ~(sizeof(void *) - 1);
+
+    if ( ebmalloc_allocated > sizeof(ebmalloc_mem) )
+        blexit(L"Out of static memory\r\n");
+
+    return ptr;
+}
+
+static void __init __maybe_unused free_ebmalloc_unused_mem(void)
+{
+    unsigned long start, end;
+
+    start = (unsigned long)ebmalloc_mem + PAGE_ALIGN(ebmalloc_allocated);
+    end = (unsigned long)ebmalloc_mem + sizeof(ebmalloc_mem);
+
+    destroy_xen_mappings(start, end);
+    init_xenheap_pages(__pa(start), __pa(end));
+
+    printk(XENLOG_INFO "Freed %lukB unused BSS memory\n", (end - start) >> 10);
+}
+
 /*
  * Include architecture specific implementation here, which references the
  * static globals defined above.
@@ -1251,6 +1299,8 @@ void __init efi_init_memory(void)
     } *extra, *extra_head = NULL;
 #endif
 
+    free_ebmalloc_unused_mem();
+
     if ( !efi_enabled(EFI_BOOT) )
         return;
 
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (2 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 3/9] efi: create new early memory allocator Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:24   ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

This way Xen can be loaded on EFI platforms using GRUB2 and
other boot loaders which support multiboot2 protocol.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
---
v16 - suggestions/fixes:
    - improve comments in error handling
      (suggested by Jan Beulich).

v15 - suggestions/fixes:
    - rearrange inline assembly arguments in
      xen/arch/x86/efi/stub.c:efi_multiboot2()
      (suggested by Jan Beulich),
    - improve comments in error handling in
      legacy BIOS Multiboot2 scanning loop
      (suggested by Jan Beulich).

v14 - suggestions/fixes:
    - mark .init.data section as writable; by the way we must change
      similar definition in xen/arch/x86/boot/x86_64.S because otherwise
      compiler complains about section types conflicts
      (suggested by Jan Beulich),
    - use %r15 instead of %r15d
      (suggested by Jan Beulich),
    - remove redundant add from UEFI stack alignment
      (suggested by Jan Beulich),
    - use "mov (%rsp),%rdi" instead of "pop %rdi/push %rdi"
      (suggested by Jan Beulich),
    - return void instead of paddr_t from efi_multiboot2()
      and then simplify a bit trampoline setup assembly
      (suggested by Jan Beulich),
    - remove "(XEN)" from efi_multiboot2() stub error messages
      (suggested by Jan Beulich),
    - move err from inline assembly OutputOperands to InputOperands in
      stub.c:efi_multiboot2(); this way we avoid following compile time error:
      stub.c: In function ‘efi_multiboot2’:
      stub.c:36:5: error: read-only variable ‘err’ used as ‘asm’ output
           asm volatile(
           ^~~
      issue was introduced by changing err type to "static const CHAR16 __initconst";
      potentially we can revert this change but move to InputOperands looks better IMO;
      even if we are not able to specify %rdx in Clobbers; simply we do not care
      because next instruction after call is hlt
      (discovered by Konrad Rzeszutek Wilk and Marcos Matsunaga),
    - take into account MBI_SPACE_MIN in ASSERT((trampoline_end - trampoline_start) < ...)
      (suggested by Jan Beulich),
    - improve comments
      (suggested by Jan Beulich).

v13 - suggestions/fixes:
    - move vga_text_buffer and efi_platform to .init.data section
      (suggested by Jan Beulich),
    - reduce number of error branches in EFI code in xen/arch/x86/boot/head.S
      (suggested by Jan Beulich),
    - rename run_bs label to .Lrun_bs
      (suggested by Jan Beulich),
    - align the stack as UEFI spec requires
      (suggested by Jan Beulich),
    - change trampoline region memory layout
      (suggested by Jan Beulich),
    - revert changes in efi_arch_pre_exit_boot()
      (suggested by Jan Beulich),
    - relocate_trampoline() must set trampoline_phys for all bootloaders;
      otherwise fallback allocator is always used if Xen was loaded with
      Multiboot2 protocol,
    - change err type in efi_multiboot2() to "static const CHAR16 __initconst"
      (suggested by Jan Beulich),
    - change asm "g" constraint to "rm" in efi_multiboot2()
      (suggested by Jan Beulich),
    - improve comments
      (suggested by Jan Beulich and Doug Goldstein).

v12 - suggestions/fixes:
    - rename __efi64_start to __efi64_mb2_start
      (suggested by Andrew Cooper),
    - use efi_arch_memory_setup() machinery as trampoline
      et consortes main memory allocator
      (suggested by Doug Goldstein),
    - allocate space for mbi struct in efi_arch_memory_setup() too;
      this thing was not taken into account in earlier releases,
    - revert trampoline et consortes fallback memory allocator code
      in efi_arch_process_memory_map() to current upstream state
      (suggested by Doug Goldstein),
    - further simplify efi_arch_pre_exit_boot() code,
    - call efi_arch_memory_setup() from efi_multiboot2()
      (suggested by Doug Goldstein),
    - fix asembly call argument in xen/arch/x86/efi/stub.c
      (suggested by Andrew Cooper),
    - add ASSERT() for trampoline size
      (suggested by Doug Goldstein),
    - add KB() macro
      (suggested by Doug Goldstein),
    - improve comments
      (suggested by Andrew Cooper and Doug Goldstein).

v10 - suggestions/fixes:
    - replace ljmpl with lretq
      (suggested by Andrew Cooper),
    - introduce efi_platform to increase code readability
      (suggested by Andrew Cooper).

v9 - suggestions/fixes:
   - use .L labels instead of numeric ones in multiboot2 data scanning loops
     (suggested by Jan Beulich).

v8 - suggestions/fixes:
   - use __bss_start(%rip)/__bss_end(%rip) instead of
     of .startof.(.bss)(%rip)/$.sizeof.(.bss) because
     latter is not tested extensively in different
     built environments yet
     (suggested by Andrew Cooper),
   - fix multiboot2 data scanning loop in x86_32 code
     (suggested by Jan Beulich),
   - add check for extra mem for mbi data if Xen is loaded
     via multiboot2 protocol on EFI platform
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich).

v7 - suggestions/fixes:
   - do not allocate twice memory for trampoline if we were
     loaded via multiboot2 protocol on EFI platform,
   - wrap long line
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich).

v6 - suggestions/fixes:
   - improve label names in assembly
     error printing code
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich),
   - various minor cleanups and fixes
     (suggested by Jan Beulich).

v4 - suggestions/fixes:
   - remove redundant BSS alignment,
   - update BSS alignment check,
   - use __set_bit() instead of set_bit() if possible
     (suggested by Jan Beulich),
   - call efi_arch_cpu() from efi_multiboot2()
     even if the same work is done later in
     other place right now
     (suggested by Jan Beulich),
   - xen/arch/x86/efi/stub.c:efi_multiboot2()
     fail properly on EFI platforms,
   - do not read data beyond the end of multiboot2
     information in xen/arch/x86/boot/head.S
     (suggested by Jan Beulich),
   - use 32-bit registers in x86_64 code if possible
     (suggested by Jan Beulich),
   - multiboot2 information address is 64-bit
     in x86_64 code, so, treat it is as is
     (suggested by Jan Beulich),
   - use cmovcc if possible,
   - leave only one space between rep and stosq
     (suggested by Jan Beulich),
   - improve error handling,
   - improve early error messages,
     (suggested by Jan Beulich),
   - improve early error messages printing code,
   - improve label names
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich),
   - various minor cleanups.

v3 - suggestions/fixes:
   - take into account alignment when skipping multiboot2 fixed part
     (suggested by Konrad Rzeszutek Wilk),
   - improve segment registers initialization
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich and Konrad Rzeszutek Wilk),
   - improve commit message
     (suggested by Jan Beulich).

v2 - suggestions/fixes:
   - generate multiboot2 header using macros
     (suggested by Jan Beulich),
   - switch CPU to x86_32 mode before
     jumping to 32-bit code
     (suggested by Andrew Cooper),
   - reduce code changes to increase patch readability
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich),
   - ignore MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO tag on EFI platform
     and find on my own multiboot2.mem_lower value,
   - stop execution if EFI platform is detected
     in legacy BIOS path.
---
 xen/arch/x86/boot/head.S          |  311 ++++++++++++++++++++++++++++++++++---
 xen/arch/x86/boot/reloc.c         |    2 +-
 xen/arch/x86/efi/efi-boot.h       |   49 +++++-
 xen/arch/x86/efi/stub.c           |   39 +++++
 xen/arch/x86/x86_64/asm-offsets.c |    2 +
 xen/arch/x86/xen.lds.S            |    7 +-
 xen/common/efi/boot.c             |   11 ++
 xen/include/asm-x86/config.h      |    5 +
 xen/include/xen/config.h          |    1 +
 9 files changed, 405 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 6bcd05a..a2177c3 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -88,6 +88,13 @@ multiboot2_header_start:
                    0, /* Number of the lines - no preference. */ \
                    0  /* Number of bits per pixel - no preference. */
 
+        /* Request that ExitBootServices() not be called. */
+        mb2ht_init MB2_HT(EFI_BS), MB2_HT(OPTIONAL)
+
+        /* EFI64 Multiboot2 entry point. */
+        mb2ht_init MB2_HT(ENTRY_ADDRESS_EFI64), MB2_HT(OPTIONAL), \
+                   sym_phys(__efi64_mb2_start)
+
         /* Multiboot2 header end tag. */
         mb2ht_init MB2_HT(END), MB2_HT(REQUIRED)
 .Lmultiboot2_header_end:
@@ -99,20 +106,64 @@ multiboot2_header_start:
 gdt_boot_descr:
         .word   6*8-1
         .long   sym_phys(trampoline_gdt)
+        .long   0 /* Needed for 64-bit lgdt */
 
 .Lbad_cpu_msg: .asciz "ERR: Not a 64-bit CPU!"
 .Lbad_ldr_msg: .asciz "ERR: Not a Multiboot bootloader!"
+.Lbad_ldr_nbs: .asciz "ERR: Bootloader shutdown EFI x64 boot services!"
+.Lbad_ldr_nst: .asciz "ERR: EFI SystemTable is not provided by bootloader!"
+.Lbad_ldr_nih: .asciz "ERR: EFI ImageHandle is not provided by bootloader!"
+.Lbad_efi_msg: .asciz "ERR: EFI IA-32 platforms are not supported!"
+
+        .section .init.data, "aw", @progbits
+        .align 4
+
+vga_text_buffer:
+        .long   0xb8000
+
+efi_platform:
+        .byte   0
 
         .section .init.text, "ax", @progbits
 
 bad_cpu:
         mov     $(sym_phys(.Lbad_cpu_msg)),%esi # Error message
-        jmp     print_err
+        jmp     .Lget_vtb
 not_multiboot:
         mov     $(sym_phys(.Lbad_ldr_msg)),%esi # Error message
-print_err:
-        mov     $0xB8000,%edi  # VGA framebuffer
-1:      mov     (%esi),%bl
+        jmp     .Lget_vtb
+.Lmb2_no_st:
+        /*
+         * Here we are on EFI platform. vga_text_buffer was zapped earlier
+         * because there is pretty good chance that VGA is unavailable.
+         */
+        mov     $(sym_phys(.Lbad_ldr_nst)),%esi # Error message
+        jmp     .Lget_vtb
+.Lmb2_no_ih:
+        /* Ditto. */
+        mov     $(sym_phys(.Lbad_ldr_nih)),%esi # Error message
+        jmp     .Lget_vtb
+.Lmb2_no_bs:
+        /*
+         * Ditto. Additionally, here there is a chance that Xen was started
+         * via start label. Then reliable vga_text_buffer zap is impossible
+         * in Multiboot2 scanning loop and we have to zero %edi below.
+         */
+        mov     $(sym_phys(.Lbad_ldr_nbs)),%esi # Error message
+        xor     %edi,%edi                       # No VGA text buffer
+        jmp     .Lsend_chr
+.Lmb2_efi_ia_32:
+        /*
+         * Here we are on EFI IA-32 platform. Then reliable vga_text_buffer zap is
+         * impossible in Multiboot2 scanning loop and we have to zero %edi below.
+         */
+        mov     $(sym_phys(.Lbad_efi_msg)),%esi # Error message
+        xor     %edi,%edi                       # No VGA text buffer
+        jmp     .Lsend_chr
+.Lget_vtb:
+        mov     sym_phys(vga_text_buffer),%edi
+.Lsend_chr:
+        mov     (%esi),%bl
         test    %bl,%bl        # Terminate on '\0' sentinel
         je      .Lhalt
         mov     $0x3f8+5,%dx   # UART Line Status Register
@@ -122,13 +173,192 @@ print_err:
         mov     $0x3f8+0,%dx   # UART Transmit Holding Register
         mov     %bl,%al
         out     %al,%dx        # Send a character over the serial line
-        movsb                  # Write a character to the VGA framebuffer
+        test    %edi,%edi      # Is the VGA text buffer available?
+        jz      .Lsend_chr
+        movsb                  # Write a character to the VGA text buffer
         mov     $7,%al
-        stosb                  # Write an attribute to the VGA framebuffer
-        jmp     1b
+        stosb                  # Write an attribute to the VGA text buffer
+        jmp     .Lsend_chr
 .Lhalt: hlt
         jmp     .Lhalt
 
+        .code64
+
+__efi64_mb2_start:
+        /*
+         * Multiboot2 spec says that here CPU is in 64-bit mode. However,
+         * there is also guarantee that all code and data is always put
+         * by the bootloader below 4 GiB. Hence, we can safely truncate
+         * addresses to 32-bits in most cases below.
+         */
+
+        cld
+
+        /* VGA is not available on EFI platforms. */
+        movl   $0,vga_text_buffer(%rip)
+
+        /* Check for Multiboot2 bootloader. */
+        cmp     $MULTIBOOT2_BOOTLOADER_MAGIC,%eax
+        je      .Lefi_multiboot2_proto
+
+        /* Jump to not_multiboot after switching CPU to x86_32 mode. */
+        lea     not_multiboot(%rip),%r15
+        jmp     x86_32_switch
+
+.Lefi_multiboot2_proto:
+        /* Zero EFI SystemTable and EFI ImageHandle addresses. */
+        xor     %esi,%esi
+        xor     %edi,%edi
+
+        /* Skip Multiboot2 information fixed part. */
+        lea     (MB2_fixed_sizeof+MULTIBOOT2_TAG_ALIGN-1)(%rbx),%ecx
+        and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
+
+.Lefi_mb2_tsize:
+        /* Check Multiboot2 information total size. */
+        mov     %ecx,%r8d
+        sub     %ebx,%r8d
+        cmp     %r8d,MB2_fixed_total_size(%rbx)
+        jbe     .Lrun_bs
+
+        /* Are EFI boot services available? */
+        cmpl    $MULTIBOOT2_TAG_TYPE_EFI_BS,MB2_tag_type(%rcx)
+        jne     .Lefi_mb2_st
+
+        /* We are on EFI platform and EFI boot services are available. */
+        incb    efi_platform(%rip)
+
+        /*
+         * Disable real mode and other legacy stuff which should not
+         * be run on EFI platforms.
+         */
+        incb    skip_realmode(%rip)
+        jmp     .Lefi_mb2_next_tag
+
+.Lefi_mb2_st:
+        /* Get EFI SystemTable address from Multiboot2 information. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_EFI64,MB2_tag_type(%rcx)
+        cmove   MB2_efi64_st(%rcx),%rsi
+        je      .Lefi_mb2_next_tag
+
+        /* Get EFI ImageHandle address from Multiboot2 information. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_EFI64_IH,MB2_tag_type(%rcx)
+        cmove   MB2_efi64_ih(%rcx),%rdi
+        je      .Lefi_mb2_next_tag
+
+        /* Is it the end of Multiboot2 information? */
+        cmpl    $MULTIBOOT2_TAG_TYPE_END,MB2_tag_type(%rcx)
+        je      .Lrun_bs
+
+.Lefi_mb2_next_tag:
+        /* Go to next Multiboot2 information tag. */
+        add     MB2_tag_size(%rcx),%ecx
+        add     $(MULTIBOOT2_TAG_ALIGN-1),%ecx
+        and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
+        jmp     .Lefi_mb2_tsize
+
+.Lrun_bs:
+        /* Are EFI boot services available? */
+        cmpb    $0,efi_platform(%rip)
+
+        /* Jump to .Lmb2_no_bs after switching CPU to x86_32 mode. */
+        lea     .Lmb2_no_bs(%rip),%r15
+        jz      x86_32_switch
+
+        /* Is EFI SystemTable address provided by boot loader? */
+        test    %rsi,%rsi
+
+        /* Jump to .Lmb2_no_st after switching CPU to x86_32 mode. */
+        lea     .Lmb2_no_st(%rip),%r15
+        jz      x86_32_switch
+
+        /* Is EFI ImageHandle address provided by boot loader? */
+        test    %rdi,%rdi
+
+        /* Jump to .Lmb2_no_ih after switching CPU to x86_32 mode. */
+        lea     .Lmb2_no_ih(%rip),%r15
+        jz      x86_32_switch
+
+        /*
+         * Align the stack as UEFI spec requires. Keep it aligned
+         * before efi_multiboot2() call by pushing/popping even
+         * numbers of items on it.
+         */
+        and     $~15,%rsp
+
+        /* Save Multiboot2 magic on the stack. */
+        push    %rax
+
+        /* Save EFI ImageHandle on the stack. */
+        push    %rdi
+
+        /*
+         * Initialize BSS (no nasty surprises!).
+         * It must be done earlier than in BIOS case
+         * because efi_multiboot2() touches it.
+         */
+        lea     __bss_start(%rip),%edi
+        lea     __bss_end(%rip),%ecx
+        sub     %edi,%ecx
+        shr     $3,%ecx
+        xor     %eax,%eax
+        rep stosq
+
+        /* Keep the stack aligned. Do not pop a single item off it. */
+        mov     (%rsp),%rdi
+
+        /*
+         * efi_multiboot2() is called according to System V AMD64 ABI:
+         *   - IN:  %rdi - EFI ImageHandle, %rsi - EFI SystemTable.
+         */
+        call    efi_multiboot2
+
+        /* Just pop an item from the stack. */
+        pop     %rax
+
+        /* Restore Multiboot2 magic. */
+        pop     %rax
+
+        /* Jump to trampoline_setup after switching CPU to x86_32 mode. */
+        lea     trampoline_setup(%rip),%r15
+
+x86_32_switch:
+        mov     %r15,%rdi
+
+        cli
+
+        /* Initialize GDTR. */
+        lgdt    gdt_boot_descr(%rip)
+
+        /* Reload code selector. */
+        pushq   $BOOT_CS32
+        lea     cs32_switch(%rip),%edx
+        push    %rdx
+        lretq
+
+        .code32
+
+cs32_switch:
+        /* Initialize basic data segments. */
+        mov     $BOOT_DS,%edx
+        mov     %edx,%ds
+        mov     %edx,%es
+        mov     %edx,%ss
+        /* %esp is initialized later. */
+
+        /* Load null descriptor to unused segment registers. */
+        xor     %edx,%edx
+        mov     %edx,%fs
+        mov     %edx,%gs
+
+        /* Disable paging. */
+        mov     %cr0,%edx
+        and     $(~X86_CR0_PG),%edx
+        mov     %edx,%cr0
+
+        /* Jump to earlier loaded address. */
+        jmp     *%edi
+
 __start:
         cld
         cli
@@ -156,7 +386,7 @@ __start:
 
         /* Not available? BDA value will be fine. */
         cmovnz  MB_mem_lower(%ebx),%edx
-        jmp     trampoline_setup
+        jmp     trampoline_bios_setup
 
 .Lmultiboot2_proto:
         /* Skip Multiboot2 information fixed part. */
@@ -168,24 +398,33 @@ __start:
         mov     %ecx,%edi
         sub     %ebx,%edi
         cmp     %edi,MB2_fixed_total_size(%ebx)
-        jbe     trampoline_setup
+        jbe     trampoline_bios_setup
 
         /* Get mem_lower from Multiboot2 information. */
         cmpl    $MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO,MB2_tag_type(%ecx)
         cmove   MB2_mem_lower(%ecx),%edx
-        je      trampoline_setup
+        je      .Lmb2_next_tag
+
+        /* EFI IA-32 platforms are not supported. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_EFI32,MB2_tag_type(%ecx)
+        je      .Lmb2_efi_ia_32
+
+        /* Bootloader shutdown EFI x64 boot services. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_EFI64,MB2_tag_type(%ecx)
+        je      .Lmb2_no_bs
 
         /* Is it the end of Multiboot2 information? */
         cmpl    $MULTIBOOT2_TAG_TYPE_END,MB2_tag_type(%ecx)
-        je      trampoline_setup
+        je      trampoline_bios_setup
 
+.Lmb2_next_tag:
         /* Go to next Multiboot2 information tag. */
         add     MB2_tag_size(%ecx),%ecx
         add     $(MULTIBOOT2_TAG_ALIGN-1),%ecx
         and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
         jmp     .Lmb2_tsize
 
-trampoline_setup:
+trampoline_bios_setup:
         /* Set up trampoline segment 64k below EBDA */
         movzwl  0x40e,%ecx          /* EBDA segment */
         cmp     $0xa000,%ecx        /* sanity check (high) */
@@ -206,23 +445,54 @@ trampoline_setup:
         cmp     %ecx,%edx           /* compare with BDA value */
         cmovb   %edx,%ecx           /* and use the smaller */
 
-2:      /* Reserve 64kb for the trampoline */
-        sub     $0x1000,%ecx
+2:
+        /* Reserve memory for the trampoline and the low-memory stack. */
+        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
 
         /* From arch/x86/smpboot.c: start_eip had better be page-aligned! */
         xor     %cl, %cl
         shl     $4, %ecx
         mov     %ecx,sym_phys(trampoline_phys)
 
+trampoline_setup:
+        mov     sym_phys(trampoline_phys),%ecx
+
+        /* Get bottom-most low-memory stack address. */
+        add     $TRAMPOLINE_SPACE,%ecx
+
         /* Save the Multiboot info struct (after relocation) for later use. */
         mov     $sym_phys(cpu0_stack)+1024,%esp
-        push    %ecx                /* Boot trampoline address. */
+        push    %ecx                /* Bottom-most low-memory stack address. */
         push    %ebx                /* Multiboot information address. */
         push    %eax                /* Multiboot magic. */
         call    reloc
         mov     %eax,sym_phys(multiboot_ptr)
 
-        /* Initialize BSS (no nasty surprises!) */
+        /*
+         * Now trampoline_phys points to the following structure (lowest address
+         * is at the bottom):
+         *
+         * +------------------------+
+         * | TRAMPOLINE_STACK_SPACE |
+         * +------------------------+
+         * |        mbi data        |
+         * +- - - - - - - - - - - - +
+         * |    TRAMPOLINE_SPACE    |
+         * +------------------------+
+         *
+         * mbi data grows downwards from the highest address of TRAMPOLINE_SPACE
+         * region to the end of the trampoline. The rest of TRAMPOLINE_SPACE is
+         * reserved for trampoline code and data.
+         */
+
+        /*
+         * Do not zero BSS on EFI platform here.
+         * It was initialized earlier.
+         */
+        cmpb    $0,sym_phys(efi_platform)
+        jnz     1f
+
+        /* Initialize BSS (no nasty surprises!). */
         mov     $sym_phys(__bss_start),%edi
         mov     $sym_phys(__bss_end),%ecx
         sub     %edi,%ecx
@@ -230,6 +500,7 @@ trampoline_setup:
         shr     $2,%ecx
         rep stosl
 
+1:
         /* Interrogate CPU extended features via CPUID. */
         mov     $0x80000000,%eax
         cpuid
@@ -281,6 +552,10 @@ trampoline_setup:
         cmp     $sym_phys(__trampoline_seg_stop),%edi
         jb      1b
 
+        /* Do not parse command line on EFI platform here. */
+        cmpb    $0,sym_phys(efi_platform)
+        jnz     1f
+
         /* Bail if there is no command line to parse. */
         mov     sym_phys(multiboot_ptr),%ebx
         testl   $MBI_CMDLINE,MB_flags(%ebx)
@@ -291,9 +566,9 @@ trampoline_setup:
         call    cmdline_parse_early
 
 1:
-        /* Switch to low-memory stack.  */
+        /* Switch to low-memory stack which lives at the end of trampoline region. */
         mov     sym_phys(trampoline_phys),%edi
-        lea     0x10000(%edi),%esp
+        lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
         lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
         pushl   $BOOT_CS32
         push    %eax
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index 91fab9d..b992678 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -16,7 +16,7 @@
  * This entry point is entered from xen/arch/x86/boot/head.S with:
  *   - 0x4(%esp) = MULTIBOOT_MAGIC,
  *   - 0x8(%esp) = MULTIBOOT_INFORMATION_ADDRESS,
- *   - 0xc(%esp) = BOOT_TRAMPOLINE_ADDRESS.
+ *   - 0xc(%esp) = TOPMOST_LOW_MEMORY_STACK_ADDRESS.
  */
 asm (
     "    .text                         \n"
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 62c010e..94418bf 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -101,6 +101,10 @@ static void __init relocate_trampoline(unsigned long phys)
     const s32 *trampoline_ptr;
 
     trampoline_phys = phys;
+
+    if ( !efi_enabled(EFI_LOADER) )
+        return;
+
     /* Apply relocations to trampoline. */
     for ( trampoline_ptr = __trampoline_rel_start;
           trampoline_ptr < __trampoline_rel_stop;
@@ -550,7 +554,12 @@ static void __init efi_arch_memory_setup(void)
 
     /* Allocate space for trampoline (in first Mb). */
     cfg.addr = 0x100000;
-    cfg.size = trampoline_end - trampoline_start;
+
+    if ( efi_enabled(EFI_LOADER) )
+        cfg.size = trampoline_end - trampoline_start;
+    else
+        cfg.size = TRAMPOLINE_SPACE + TRAMPOLINE_STACK_SPACE;
+
     status = efi_bs->AllocatePages(AllocateMaxAddress, EfiLoaderData,
                                    PFN_UP(cfg.size), &cfg.addr);
     if ( status == EFI_SUCCESS )
@@ -561,6 +570,9 @@ static void __init efi_arch_memory_setup(void)
         PrintStr(L"Trampoline space cannot be allocated; will try fallback.\r\n");
     }
 
+    if ( !efi_enabled(EFI_LOADER) )
+        return;
+
     /* Initialise L2 identity-map and boot-map page table entries (16MB). */
     for ( i = 0; i < 8; ++i )
     {
@@ -653,6 +665,41 @@ static bool_t __init efi_arch_use_config_file(EFI_SYSTEM_TABLE *SystemTable)
 
 static void efi_arch_flush_dcache_area(const void *vaddr, UINTN size) { }
 
+void __init efi_multiboot2(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
+{
+    EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
+    UINTN cols, gop_mode = ~0, rows;
+
+    __set_bit(EFI_BOOT, &efi_flags);
+    __set_bit(EFI_RS, &efi_flags);
+
+    efi_init(ImageHandle, SystemTable);
+
+    efi_console_set_mode();
+
+    if ( StdOut->QueryMode(StdOut, StdOut->Mode->Mode,
+                           &cols, &rows) == EFI_SUCCESS )
+        efi_arch_console_init(cols, rows);
+
+    gop = efi_get_gop();
+
+    if ( gop )
+        gop_mode = efi_find_gop_mode(gop, 0, 0, 0);
+
+    efi_arch_edd();
+    efi_arch_cpu();
+
+    efi_tables();
+    setup_efi_pci();
+    efi_variables();
+    efi_arch_memory_setup();
+
+    if ( gop )
+        efi_set_gop_mode(gop, gop_mode);
+
+    efi_exit_boot(ImageHandle, SystemTable);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c
index 4158124..17da050 100644
--- a/xen/arch/x86/efi/stub.c
+++ b/xen/arch/x86/efi/stub.c
@@ -3,6 +3,45 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <asm/page.h>
+#include <asm/efibind.h>
+#include <efi/efidef.h>
+#include <efi/eficapsule.h>
+#include <efi/eficon.h>
+#include <efi/efidevp.h>
+#include <efi/efiapi.h>
+
+/*
+ * Here we are in EFI stub. EFI calls are not supported due to lack
+ * of relevant functionality in compiler and/or linker.
+ *
+ * efi_multiboot2() is an exception. Please look below for more details.
+ */
+
+void __init noreturn efi_multiboot2(EFI_HANDLE ImageHandle,
+                                    EFI_SYSTEM_TABLE *SystemTable)
+{
+    static const CHAR16 __initconst err[] =
+        L"Xen does not have EFI code build in!\r\nSystem halted!\r\n";
+    SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr;
+
+    StdErr = SystemTable->StdErr ? SystemTable->StdErr : SystemTable->ConOut;
+
+    /*
+     * Print error message and halt the system.
+     *
+     * We have to open code MS x64 calling convention
+     * in assembly because here this convention may
+     * not be directly supported by C compiler.
+     */
+    asm volatile(
+    "    call *%3                     \n"
+    "0:  hlt                          \n"
+    "    jmp  0b                      \n"
+       : "+c" (StdErr), "=d" (StdErr) : "1" (err), "rm" (StdErr->OutputString)
+       : "rax", "r8", "r9", "r10", "r11", "memory");
+
+    unreachable();
+}
 
 bool efi_enabled(unsigned int feature)
 {
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 6aeb550..b2b59f1 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -174,6 +174,8 @@ void __dummy__(void)
     OFFSET(MB2_tag_type, multiboot2_tag_t, type);
     OFFSET(MB2_tag_size, multiboot2_tag_t, size);
     OFFSET(MB2_mem_lower, multiboot2_tag_basic_meminfo_t, mem_lower);
+    OFFSET(MB2_efi64_st, multiboot2_tag_efi64_t, pointer);
+    OFFSET(MB2_efi64_ih, multiboot2_tag_efi64_ih_t, pointer);
     BLANK();
 
     OFFSET(DOMAIN_vm_assist, struct domain, vm_assist);
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 4f06da1..066aca6 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -330,5 +330,8 @@ ASSERT(IS_ALIGNED(__init_end,   PAGE_SIZE), "__init_end misaligned")
 
 ASSERT(IS_ALIGNED(trampoline_start, 4), "trampoline_start misaligned")
 ASSERT(IS_ALIGNED(trampoline_end,   4), "trampoline_end misaligned")
-ASSERT(IS_ALIGNED(__bss_start,      4), "__bss_start misaligned")
-ASSERT(IS_ALIGNED(__bss_end,        4), "__bss_end misaligned")
+ASSERT(IS_ALIGNED(__bss_start,      8), "__bss_start misaligned")
+ASSERT(IS_ALIGNED(__bss_end,        8), "__bss_end misaligned")
+
+ASSERT((trampoline_end - trampoline_start) < TRAMPOLINE_SPACE - MBI_SPACE_MIN,
+    "not enough room for trampoline and mbi data")
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 36dbb71..b6cbdad 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -79,6 +79,17 @@ static size_t wstrlen(const CHAR16 * s);
 static int set_color(u32 mask, int bpp, u8 *pos, u8 *sz);
 static bool_t match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2);
 
+static void efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable);
+static void efi_console_set_mode(void);
+static EFI_GRAPHICS_OUTPUT_PROTOCOL *efi_get_gop(void);
+static UINTN efi_find_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,
+                               UINTN cols, UINTN rows, UINTN depth);
+static void efi_tables(void);
+static void setup_efi_pci(void);
+static void efi_variables(void);
+static void efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop_mode);
+static void efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable);
+
 static const EFI_BOOT_SERVICES *__initdata efi_bs;
 static UINT32 __initdata efi_bs_revision;
 static EFI_HANDLE __initdata efi_ih;
diff --git a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h
index 6fd84e7..b9a6d94 100644
--- a/xen/include/asm-x86/config.h
+++ b/xen/include/asm-x86/config.h
@@ -73,6 +73,11 @@
 #define STACK_ORDER 3
 #define STACK_SIZE  (PAGE_SIZE << STACK_ORDER)
 
+#define TRAMPOLINE_STACK_SPACE  PAGE_SIZE
+#define TRAMPOLINE_SPACE        (KB(64) - TRAMPOLINE_STACK_SPACE)
+
+#define MBI_SPACE_MIN           (2 * PAGE_SIZE)
+
 /* Primary stack is restricted to 8kB by guard pages. */
 #define PRIMARY_STACK_SIZE 8192
 
diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
index 9f39687..a1d0f97 100644
--- a/xen/include/xen/config.h
+++ b/xen/include/xen/config.h
@@ -70,6 +70,7 @@
 #define __force
 #define __bitwise
 
+#define KB(_kb)     (_AC(_kb, ULL) << 10)
 #define MB(_mb)     (_AC(_mb, ULL) << 20)
 #define GB(_gb)     (_AC(_gb, ULL) << 30)
 
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (3 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-03-01  9:05   ` Jan Beulich
  2017-02-21 19:19 ` [PATCH v16 6/9] x86/setup: use XEN_IMG_OFFSET instead of Daniel Kiper
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Subsequent patches introducing relocatable early boot code play with
page tables using 2 MiB huge pages. If load address is not aligned at
2 MiB then code touching such page tables must have special cases for
start and end of Xen image memory region. So, let's make life easier
and move default load address from 1 MiB to 2 MiB. This way page table
code will be nice and easy. Hence, there is a chance that it will be
less error prone too... :-)))

Additionally, drop first 2 MiB mapping from Xen image mapping.
It is no longer needed.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
---
v8 - suggestions/fixes:
   - drop first 2 MiB mapping from Xen image mapping
     (suggested by Jan Beulich),
   - improve commit message.

v7 - suggestions/fixes:
   - minor cleanups
     (suggested by Jan Beulich).
---
 xen/arch/x86/Makefile      |    2 +-
 xen/arch/x86/Rules.mk      |    3 +++
 xen/arch/x86/boot/head.S   |    8 --------
 xen/arch/x86/boot/x86_64.S |    5 +++--
 xen/arch/x86/setup.c       |    3 ++-
 xen/arch/x86/xen.lds.S     |    2 +-
 6 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d6980b5..fead99a 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -91,7 +91,7 @@ all_symbols =
 endif
 
 $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
-	./boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TARGET) 0x100000 \
+	./boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TARGET) $(XEN_IMG_OFFSET) \
 	               `$(NM) $(TARGET)-syms | sed -ne 's/^\([^ ]*\) . __2M_rwdata_end$$/0x\1/p'`
 
 ALL_OBJS := $(BASEDIR)/arch/x86/boot/built_in.o $(BASEDIR)/arch/x86/efi/built_in.o $(ALL_OBJS)
diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
index 72be8b2..568657e 100644
--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -1,9 +1,12 @@
 ########################################
 # x86-specific definitions
 
+XEN_IMG_OFFSET := 0x200000
+
 CFLAGS += -I$(BASEDIR)/include
 CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-generic
 CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-default
+CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 CFLAGS += '-D__OBJECT_LABEL__=$(subst /,$$,$(subst -,_,$(subst $(BASEDIR)/,,$(CURDIR))/$@))'
 
 # Prevent floating-point variables from creeping into Xen.
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index a2177c3..b5d9ec8 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -524,14 +524,6 @@ trampoline_setup:
         mov     %eax,sym_phys(boot_tsc_stamp)
         mov     %edx,sym_phys(boot_tsc_stamp+4)
 
-        /*
-         * During boot, hook 4kB mappings of first 2MB of memory into L2.
-         * This avoids mixing cachability for the legacy VGA region, and is
-         * corrected when Xen relocates itself.
-         */
-        mov     $sym_phys(l1_identmap)+__PAGE_HYPERVISOR,%edi
-        mov     %edi,sym_phys(l2_xenmap)
-
         /* Apply relocations to bootstrap trampoline. */
         mov     sym_phys(trampoline_phys),%edx
         mov     $sym_phys(__trampoline_rel_start),%edi
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 4d507fb..f9d1022 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -121,8 +121,9 @@ GLOBAL(l2_identmap)
  * page.
  */
 GLOBAL(l2_xenmap)
-        idx = 0
-        .rept 8
+        .quad 0
+        idx = 1
+        .rept 7
         .quad sym_phys(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + (PAGE_HYPERVISOR | _PAGE_PSE)
         idx = idx + 1
         .endr
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 66b7aba..e2a5f76 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -998,7 +998,8 @@ void __init noreturn __start_xen(unsigned long mbi_p)
              * Undo the temporary-hooking of the l1_identmap.  __2M_text_start
              * is contained in this PTE.
              */
-            BUG_ON(l2_table_offset((unsigned long)_erodata) ==
+            BUG_ON(using_2M_mapping() &&
+                   l2_table_offset((unsigned long)_erodata) ==
                    l2_table_offset((unsigned long)_stext));
             *pl2e++ = l2e_from_pfn(xen_phys_start >> PAGE_SHIFT,
                                    PAGE_HYPERVISOR_RX | _PAGE_PSE);
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 066aca6..ff93a0b 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -54,7 +54,7 @@ SECTIONS
   __2M_text_start = .;         /* Start of 2M superpages, mapped RX. */
 #endif
 
-  . = __XEN_VIRT_START + MB(1);
+  . = __XEN_VIRT_START + XEN_IMG_OFFSET;
   _start = .;
   .text : {
         _stext = .;            /* Text and read-only data */
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 6/9] x86/setup: use XEN_IMG_OFFSET instead of...
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (4 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 7/9] x86: make Xen early boot code relocatable Daniel Kiper
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

..calculating its value during runtime.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
---
 xen/arch/x86/setup.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index e2a5f76..8feed35 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -942,7 +942,6 @@ void __init noreturn __start_xen(unsigned long mbi_p)
             l4_pgentry_t *pl4e;
             l3_pgentry_t *pl3e;
             l2_pgentry_t *pl2e;
-            uint64_t load_start;
             int i, j, k;
 
             /* Select relocation address. */
@@ -956,9 +955,8 @@ void __init noreturn __start_xen(unsigned long mbi_p)
              * 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();
-            move_memory(e + load_start, load_start, _end - _start, 1);
+            move_memory(e + XEN_IMG_OFFSET, XEN_IMG_OFFSET, _end - _start, 1);
 
             /* Walk initial pagetables, relocating page directory entries. */
             pl4e = __va(__pa(idle_pg_table));
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (5 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 6/9] x86/setup: use XEN_IMG_OFFSET instead of Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-04-07 11:23   ` Jan Beulich
  2017-02-21 19:19 ` [PATCH v16 8/9] x86/boot: rename sym_phys() to sym_offs() Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 9/9] x86: add multiboot2 protocol support for relocatable images Daniel Kiper
  8 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Every multiboot protocol (regardless of version) compatible image must
specify its load address (in ELF or multiboot header). Multiboot protocol
compatible loader have to load image at specified address. However, there
is no guarantee that the requested memory region (in case of Xen it starts
at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
and it is free (legacy BIOS platforms are merciful for Xen but I found at
least one EFI platform on which Xen load address conflicts with EFI boot
services; it is Dell PowerEdge R820 with latest firmware). To cope with that
problem we must make Xen early boot code relocatable and help boot loader to
relocate image in proper way by suggesting, not requesting specific load
addresses as it is right now, allowed address ranges. This patch does former.
It does not add multiboot2 protocol interface which is done in "x86: add
multiboot2 protocol support for relocatable images" patch.

This patch changes following things:
  - %esi register is used as a storage for Xen image load base address;
    it is mostly unused in early boot code and preserved during C functions
    calls in 32-bit mode,
  - %fs is used as base for Xen data relative addressing in 32-bit code
    if it is possible; %esi is used for that thing during error printing
    because it is not always possible to properly and efficiently
    initialize %fs.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
---
v13 - suggestions/fixes:
    - move gdt_boot_descr to .init.data section
      (suggested by Jan Beulich).

v12 - suggestions/fixes:
    - store Xen image load base address directly into %esi,
    - store Xen image load base address after x86_32_switch
      (suggested by Doug Goldstein),
    - improve commit message.

v8 - suggestions/fixes:
   - use shld instead of mov and shr in BOOT_FS segment
     descriptor base address initialization
     (suggested by Jan Beulich),
   - simplify code updating frame addresses in page tables
     (suggested by Jan Beulich),
   - print Xen image base addresses using "%#lx" format
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich).

v6 - suggestions/fixes:
   - leave static mapping of first
     16 MiB in l2_identmap as is
     (suggested by Jan Beulich),
   - use xen_phys_start instead of xen_img_load_base_addr
     (suggested by Daniel Kiper and Jan Beulich),
   - simplify BOOT_FS segment descriptor
     base address initialization
     (suggested by Jan Beulich),
   - fix BOOT_FS segment limit
     (suggested by Jan Beulich),
   - do not rename sym_phys in this patch
     (suggested by Jan Beulich),
   - rename esi_offset/fs_offset to
     sym_esi/sym_fs respectively
     (suggested by Jan Beulich),
   - use add instead of lea in assembly
     error printing code
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Jan Beulich),
   - improve commit message
     (suggested by Jan Beulich),
   - various minor cleanups and fixes
     (suggested by Jan Beulich).

v4 - suggestions/fixes:
   - do not relocate Xen image if boot loader did work for us
     (suggested by Andrew Cooper and Jan Beulich),
   - initialize xen_img_load_base_addr in EFI boot code too,
   - properly initialize trampoline_xen_phys_start,
   - calculate Xen image load base address in
     x86_64 code ourselves,
     (suggested by Jan Beulich),
   - change how and when Xen image base address is printed,
   - use %fs instead of %esi for relative addressing
     (suggested by Andrew Cooper and Jan Beulich),
   - create esi_offset and fs_offset() macros in assembly,
   - calculate <final-exec-addr> mkelf32 argument automatically,
   - optimize and cleanup code,
   - improve comments,
   - improve commit message.

v3 - suggestions/fixes:
   - improve segment registers initialization
     (suggested by Jan Beulich),
   - simplify Xen image load base address calculation
     (suggested by Jan Beulich),
   - use %esi and %r15d instead of %ebp to store
     Xen image load base address,
   - use %esi instead of %fs for relative addressing;
     this way we get shorter and simpler code,
   - rename some variables and constants
     (suggested by Jan Beulich),
   - improve comments
     (suggested by Konrad Rzeszutek Wilk),
   - improve commit message
     (suggested by Jan Beulich).
---
 xen/arch/x86/boot/head.S          |  170 ++++++++++++++++++++++++++++---------
 xen/arch/x86/boot/trampoline.S    |    5 ++
 xen/arch/x86/boot/x86_64.S        |   21 +++--
 xen/arch/x86/setup.c              |   14 +--
 xen/arch/x86/x86_64/asm-offsets.c |    3 +
 xen/include/asm-x86/page.h        |    2 +-
 6 files changed, 158 insertions(+), 57 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index b5d9ec8..658e40a 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -12,12 +12,15 @@
         .code32
 
 #define sym_phys(sym)     ((sym) - __XEN_VIRT_START)
+#define sym_esi(sym)      sym_phys(sym)(%esi)
+#define sym_fs(sym)       %fs:sym_phys(sym)
 
 #define BOOT_CS32        0x0008
 #define BOOT_CS64        0x0010
 #define BOOT_DS          0x0018
 #define BOOT_PSEUDORM_CS 0x0020
 #define BOOT_PSEUDORM_DS 0x0028
+#define BOOT_FS          0x0030
 
 #define MB2_HT(name)      (MULTIBOOT2_HEADER_TAG_##name)
 #define MB2_TT(name)      (MULTIBOOT2_TAG_TYPE_##name)
@@ -100,13 +103,6 @@ multiboot2_header_start:
 .Lmultiboot2_header_end:
 
         .section .init.rodata, "a", @progbits
-        .align 4
-
-        .word   0
-gdt_boot_descr:
-        .word   6*8-1
-        .long   sym_phys(trampoline_gdt)
-        .long   0 /* Needed for 64-bit lgdt */
 
 .Lbad_cpu_msg: .asciz "ERR: Not a 64-bit CPU!"
 .Lbad_ldr_msg: .asciz "ERR: Not a Multiboot bootloader!"
@@ -118,6 +114,13 @@ gdt_boot_descr:
         .section .init.data, "aw", @progbits
         .align 4
 
+        .word   0
+gdt_boot_descr:
+        .word   7*8-1
+gdt_boot_base:
+        .long   sym_phys(trampoline_gdt)
+        .long   0 /* Needed for 64-bit lgdt */
+
 vga_text_buffer:
         .long   0xb8000
 
@@ -127,21 +130,21 @@ efi_platform:
         .section .init.text, "ax", @progbits
 
 bad_cpu:
-        mov     $(sym_phys(.Lbad_cpu_msg)),%esi # Error message
+        add     $sym_phys(.Lbad_cpu_msg),%esi   # Error message
         jmp     .Lget_vtb
 not_multiboot:
-        mov     $(sym_phys(.Lbad_ldr_msg)),%esi # Error message
+        add     $sym_phys(.Lbad_ldr_msg),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_st:
         /*
          * Here we are on EFI platform. vga_text_buffer was zapped earlier
          * because there is pretty good chance that VGA is unavailable.
          */
-        mov     $(sym_phys(.Lbad_ldr_nst)),%esi # Error message
+        add     $sym_phys(.Lbad_ldr_nst),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_ih:
         /* Ditto. */
-        mov     $(sym_phys(.Lbad_ldr_nih)),%esi # Error message
+        add     $sym_phys(.Lbad_ldr_nih),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_bs:
         /*
@@ -149,7 +152,7 @@ not_multiboot:
          * via start label. Then reliable vga_text_buffer zap is impossible
          * in Multiboot2 scanning loop and we have to zero %edi below.
          */
-        mov     $(sym_phys(.Lbad_ldr_nbs)),%esi # Error message
+        add     $sym_phys(.Lbad_ldr_nbs),%esi   # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
 .Lmb2_efi_ia_32:
@@ -157,11 +160,11 @@ not_multiboot:
          * Here we are on EFI IA-32 platform. Then reliable vga_text_buffer zap is
          * impossible in Multiboot2 scanning loop and we have to zero %edi below.
          */
-        mov     $(sym_phys(.Lbad_efi_msg)),%esi # Error message
+        add     $sym_phys(.Lbad_efi_msg),%esi   # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
 .Lget_vtb:
-        mov     sym_phys(vga_text_buffer),%edi
+        mov     sym_esi(vga_text_buffer),%edi
 .Lsend_chr:
         mov     (%esi),%bl
         test    %bl,%bl        # Terminate on '\0' sentinel
@@ -325,9 +328,13 @@ __efi64_mb2_start:
 x86_32_switch:
         mov     %r15,%rdi
 
+        /* Store Xen image load base address in place accessible for 32-bit code. */
+        lea     __image_base__(%rip),%esi
+
         cli
 
         /* Initialize GDTR. */
+        add     %esi,gdt_boot_base(%rip)
         lgdt    gdt_boot_descr(%rip)
 
         /* Reload code selector. */
@@ -363,12 +370,8 @@ __start:
         cld
         cli
 
-        /* Initialise GDT and basic data segments. */
-        lgdt    %cs:sym_phys(gdt_boot_descr)
-        mov     $BOOT_DS,%ecx
-        mov     %ecx,%ds
-        mov     %ecx,%es
-        mov     %ecx,%ss
+        /* Load default Xen image load base address. */
+        mov     $sym_phys(__image_base__),%esi
 
         /* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
         xor     %edx,%edx
@@ -425,6 +428,25 @@ __start:
         jmp     .Lmb2_tsize
 
 trampoline_bios_setup:
+        /*
+         * Called on legacy BIOS platforms only.
+         *
+         * Initialize GDTR and basic data segments.
+         */
+        add     %esi,sym_esi(gdt_boot_base)
+        lgdt    sym_esi(gdt_boot_descr)
+
+        mov     $BOOT_DS,%ecx
+        mov     %ecx,%ds
+        mov     %ecx,%es
+        mov     %ecx,%ss
+        /* %esp is initialized later. */
+
+        /* Load null descriptor to unused segment registers. */
+        xor     %ecx,%ecx
+        mov     %ecx,%fs
+        mov     %ecx,%gs
+
         /* Set up trampoline segment 64k below EBDA */
         movzwl  0x40e,%ecx          /* EBDA segment */
         cmp     $0xa000,%ecx        /* sanity check (high) */
@@ -452,21 +474,49 @@ trampoline_bios_setup:
         /* From arch/x86/smpboot.c: start_eip had better be page-aligned! */
         xor     %cl, %cl
         shl     $4, %ecx
-        mov     %ecx,sym_phys(trampoline_phys)
+        mov     %ecx,sym_esi(trampoline_phys)
 
 trampoline_setup:
-        mov     sym_phys(trampoline_phys),%ecx
+        /*
+         * Called on legacy BIOS and EFI platforms.
+         *
+         * Initialize 0-15 bits of BOOT_FS segment descriptor base address.
+         */
+        mov     %si,BOOT_FS+2+sym_esi(trampoline_gdt)
+
+        /* Initialize 16-23 bits of BOOT_FS segment descriptor base address. */
+        shld    $16,%esi,%edx
+        mov     %dl,BOOT_FS+4+sym_esi(trampoline_gdt)
+
+        /* Initialize 24-31 bits of BOOT_FS segment descriptor base address. */
+        mov     %dh,BOOT_FS+7+sym_esi(trampoline_gdt)
+
+        /*
+         * Initialize %fs and later use it to access Xen data if possible.
+         * According to Intel 64 and IA-32 Architectures Software Developer's
+         * Manual it is safe to do that without reloading GDTR before.
+         */
+        mov     $BOOT_FS,%edx
+        mov     %edx,%fs
+
+        /* Save Xen image load base address for later use. */
+        mov     %esi,sym_fs(xen_phys_start)
+        mov     %esi,sym_fs(trampoline_xen_phys_start)
+
+        /* Setup stack. %ss was initialized earlier. */
+        lea     1024+sym_esi(cpu0_stack),%esp
+
+        mov     sym_fs(trampoline_phys),%ecx
 
         /* Get bottom-most low-memory stack address. */
         add     $TRAMPOLINE_SPACE,%ecx
 
         /* Save the Multiboot info struct (after relocation) for later use. */
-        mov     $sym_phys(cpu0_stack)+1024,%esp
         push    %ecx                /* Bottom-most low-memory stack address. */
         push    %ebx                /* Multiboot information address. */
         push    %eax                /* Multiboot magic. */
         call    reloc
-        mov     %eax,sym_phys(multiboot_ptr)
+        mov     %eax,sym_fs(multiboot_ptr)
 
         /*
          * Now trampoline_phys points to the following structure (lowest address
@@ -489,16 +539,20 @@ trampoline_setup:
          * Do not zero BSS on EFI platform here.
          * It was initialized earlier.
          */
-        cmpb    $0,sym_phys(efi_platform)
+        cmpb    $0,sym_fs(efi_platform)
         jnz     1f
 
         /* Initialize BSS (no nasty surprises!). */
         mov     $sym_phys(__bss_start),%edi
         mov     $sym_phys(__bss_end),%ecx
+        push    %fs
+        pop     %es
         sub     %edi,%ecx
         xor     %eax,%eax
         shr     $2,%ecx
         rep stosl
+        push    %ds
+        pop     %es
 
 1:
         /* Interrogate CPU extended features via CPUID. */
@@ -512,8 +566,8 @@ trampoline_setup:
         jbe     1f
         mov     $0x80000001,%eax
         cpuid
-1:      mov     %edx,sym_phys(cpuid_ext_features)
-        mov     %edx,sym_phys(boot_cpu_data)+CPUINFO_FEATURE_OFFSET(X86_FEATURE_LM)
+1:      mov     %edx,sym_fs(cpuid_ext_features)
+        mov     %edx,sym_fs(boot_cpu_data)+CPUINFO_FEATURE_OFFSET(X86_FEATURE_LM)
 
         /* Check for availability of long mode. */
         bt      $cpufeat_bit(X86_FEATURE_LM),%edx
@@ -521,15 +575,52 @@ trampoline_setup:
 
         /* Stash TSC to calculate a good approximation of time-since-boot */
         rdtsc
-        mov     %eax,sym_phys(boot_tsc_stamp)
-        mov     %edx,sym_phys(boot_tsc_stamp+4)
+        mov     %eax,sym_fs(boot_tsc_stamp)
+        mov     %edx,sym_fs(boot_tsc_stamp)+4
+
+        /*
+         * Update frame addresses in page tables excluding l2_identmap
+         * without its first entry which points to l1_identmap.
+         */
+        mov     $((__page_tables_end-__page_tables_start)/8),%ecx
+        mov     $(((l2_identmap-__page_tables_start)/8)+1),%edx
+1:      cmp     $((l2_identmap+l2_identmap_sizeof-__page_tables_start)/8),%ecx
+        cmove   %edx,%ecx
+        testl   $_PAGE_PRESENT,sym_fs(__page_tables_start)-8(,%ecx,8)
+        jz      2f
+        add     %esi,sym_fs(__page_tables_start)-8(,%ecx,8)
+2:      loop    1b
+
+        /* Initialize L2 boot-map/direct map page table entries (16MB). */
+        lea     sym_esi(start),%ebx
+        lea     (1<<L2_PAGETABLE_SHIFT)*7+(PAGE_HYPERVISOR|_PAGE_PSE)(%ebx),%eax
+        shr     $(L2_PAGETABLE_SHIFT-3),%ebx
+        mov     $8,%ecx
+1:      mov     %eax,sym_fs(l2_bootmap)-8(%ebx,%ecx,8)
+        mov     %eax,sym_fs(l2_identmap)-8(%ebx,%ecx,8)
+        sub     $(1<<L2_PAGETABLE_SHIFT),%eax
+        loop    1b
+
+        /* Initialize L3 boot-map page directory entry. */
+        lea     __PAGE_HYPERVISOR+(L2_PAGETABLE_ENTRIES*8)*3+sym_esi(l2_bootmap),%eax
+        mov     $4,%ecx
+1:      mov     %eax,sym_fs(l3_bootmap)-8(,%ecx,8)
+        sub     $(L2_PAGETABLE_ENTRIES*8),%eax
+        loop    1b
+
+        /*
+         * During boot, hook 4kB mappings of first 2MB of memory into L2.
+         * This avoids mixing cachability for the legacy VGA region.
+         */
+        lea     __PAGE_HYPERVISOR+sym_esi(l1_identmap),%edi
+        mov     %edi,sym_fs(l2_bootmap)
 
         /* Apply relocations to bootstrap trampoline. */
-        mov     sym_phys(trampoline_phys),%edx
+        mov     sym_fs(trampoline_phys),%edx
         mov     $sym_phys(__trampoline_rel_start),%edi
 1:
-        mov     (%edi),%eax
-        add     %edx,(%edi,%eax)
+        mov     %fs:(%edi),%eax
+        add     %edx,%fs:(%edi,%eax)
         add     $4,%edi
         cmp     $sym_phys(__trampoline_rel_stop),%edi
         jb      1b
@@ -538,28 +629,29 @@ trampoline_setup:
         shr     $4,%edx
         mov     $sym_phys(__trampoline_seg_start),%edi
 1:
-        mov     (%edi),%eax
-        mov     %dx,(%edi,%eax)
+        mov     %fs:(%edi),%eax
+        mov     %dx,%fs:(%edi,%eax)
         add     $4,%edi
         cmp     $sym_phys(__trampoline_seg_stop),%edi
         jb      1b
 
         /* Do not parse command line on EFI platform here. */
-        cmpb    $0,sym_phys(efi_platform)
+        cmpb    $0,sym_fs(efi_platform)
         jnz     1f
 
         /* Bail if there is no command line to parse. */
-        mov     sym_phys(multiboot_ptr),%ebx
+        mov     sym_fs(multiboot_ptr),%ebx
         testl   $MBI_CMDLINE,MB_flags(%ebx)
         jz      1f
 
-        pushl   $sym_phys(early_boot_opts)
+        lea     sym_esi(early_boot_opts),%eax
+        push    %eax
         pushl   MB_cmdline(%ebx)
         call    cmdline_parse_early
 
 1:
         /* Switch to low-memory stack which lives at the end of trampoline region. */
-        mov     sym_phys(trampoline_phys),%edi
+        mov     sym_fs(trampoline_phys),%edi
         lea     TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE(%edi),%esp
         lea     trampoline_boot_cpu_entry-trampoline_start(%edi),%eax
         pushl   $BOOT_CS32
@@ -568,7 +660,7 @@ trampoline_setup:
         /* Copy bootstrap trampoline to low memory, below 1MB. */
         mov     $sym_phys(trampoline_start),%esi
         mov     $((trampoline_end - trampoline_start) / 4),%ecx
-        rep movsl
+        rep movsl %fs:(%esi),%es:(%edi)
 
         /* Jump into the relocated trampoline. */
         lret
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 2715d17..64f8efd 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -54,6 +54,11 @@ trampoline_gdt:
         /* 0x0028: real-mode data @ BOOT_TRAMPOLINE */
         .long   0x0000ffff
         .long   0x00009200
+        /*
+         * 0x0030: ring 0 Xen data, 16 MiB size, base
+         * address is computed during runtime.
+         */
+        .quad   0x00c0920000000fff
 
         .pushsection .trampoline_rel, "a"
         .long   trampoline_gdt + BOOT_PSEUDORM_CS + 2 - .
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index f9d1022..d07c360 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -81,7 +81,6 @@ GLOBAL(boot_cpu_compat_gdt_table)
         .quad 0x0000910000000000     /* per-CPU entry (limit == cpu)      */
         .align PAGE_SIZE, 0
 
-GLOBAL(__page_tables_start)
 /*
  * Mapping of first 2 megabytes of memory. This is mapped with 4kB mappings
  * to avoid type conflicts with fixed-range MTRRs covering the lowest megabyte
@@ -102,6 +101,13 @@ l1_identmap:
         .size l1_identmap, . - l1_identmap
 
 /*
+ * __page_tables_start does not cover l1_identmap because it (l1_identmap)
+ * contains 1-1 mappings. This means that frame addresses of these mappings
+ * are static and should not be updated during runtime.
+ */
+GLOBAL(__page_tables_start)
+
+/*
  * Space for mapping the first 4GB of memory, with the first 16 megabytes
  * actualy mapped (mostly using superpages).  Uses 4x 4k pages.
  */
@@ -186,21 +192,14 @@ GLOBAL(idle_pg_table)
 
 GLOBAL(__page_tables_end)
 
-/* Init pagetables.  Enough page directories to map into the bottom 1GB. */
+/* Init pagetables. Enough page directories to map into 4GB. */
         .section .init.data, "aw", @progbits
         .align PAGE_SIZE, 0
 
 GLOBAL(l2_bootmap)
-        .quad sym_phys(l1_identmap) + __PAGE_HYPERVISOR
-        idx = 1
-        .rept 7
-        .quad (idx << L2_PAGETABLE_SHIFT) | __PAGE_HYPERVISOR | _PAGE_PSE
-        idx = idx + 1
-        .endr
-        .fill L2_PAGETABLE_ENTRIES - 8, 8, 0
+        .fill 4 * L2_PAGETABLE_ENTRIES, 8, 0
         .size l2_bootmap, . - l2_bootmap
 
 GLOBAL(l3_bootmap)
-        .quad sym_phys(l2_bootmap) + __PAGE_HYPERVISOR
-        .fill L3_PAGETABLE_ENTRIES - 1, 8, 0
+        .fill L3_PAGETABLE_ENTRIES, 8, 0
         .size l3_bootmap, . - l3_bootmap
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8feed35..b9973d2 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -329,9 +329,6 @@ static void *__init bootstrap_map(const module_t *mod)
     if ( start >= end )
         return NULL;
 
-    if ( end <= BOOTSTRAP_MAP_BASE )
-        return (void *)(unsigned long)start;
-
     ret = (void *)(map_cur + (unsigned long)(start & mask));
     start &= ~mask;
     end = (end + mask) & ~mask;
@@ -715,6 +712,8 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 
     printk("Command line: %s\n", cmdline);
 
+    printk("Xen image load base address: %#lx\n", xen_phys_start);
+
     printk("Video information:\n");
 
     /* Print VGA display mode information. */
@@ -972,7 +971,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                     /* Not present, 1GB mapping, or already relocated? */
                     if ( !(l3e_get_flags(*pl3e) & _PAGE_PRESENT) ||
                          (l3e_get_flags(*pl3e) & _PAGE_PSE) ||
-                         (l3e_get_pfn(*pl3e) > 0x1000) )
+                         (l3e_get_pfn(*pl3e) > PFN_DOWN(xen_phys_start)) )
                         continue;
                     *pl3e = l3e_from_intpte(l3e_get_intpte(*pl3e) +
                                             xen_phys_start);
@@ -982,7 +981,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                         /* Not present, PSE, or already relocated? */
                         if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ||
                              (l2e_get_flags(*pl2e) & _PAGE_PSE) ||
-                             (l2e_get_pfn(*pl2e) > 0x1000) )
+                             (l2e_get_pfn(*pl2e) > PFN_DOWN(xen_phys_start)) )
                             continue;
                         *pl2e = l2e_from_intpte(l2e_get_intpte(*pl2e) +
                                                 xen_phys_start);
@@ -1005,7 +1004,8 @@ void __init noreturn __start_xen(unsigned long mbi_p)
             {
                 unsigned int flags;
 
-                if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) )
+                if ( !(l2e_get_flags(*pl2e) & _PAGE_PRESENT) ||
+                     (l2e_get_pfn(*pl2e) > PFN_DOWN(xen_phys_start)) )
                     continue;
 
                 if ( !using_2M_mapping() )
@@ -1059,6 +1059,8 @@ void __init noreturn __start_xen(unsigned long mbi_p)
                 : "memory" );
 
             bootstrap_map(NULL);
+
+            printk("New Xen image base address: %#lx\n", xen_phys_start);
         }
 
         /* Is the region suitable for relocating the multiboot modules? */
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index b2b59f1..836fed3 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -178,5 +178,8 @@ void __dummy__(void)
     OFFSET(MB2_efi64_ih, multiboot2_tag_efi64_ih_t, pointer);
     BLANK();
 
+    DEFINE(l2_identmap_sizeof, sizeof(l2_identmap));
+    BLANK();
+
     OFFSET(DOMAIN_vm_assist, struct domain, vm_assist);
 }
diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h
index af7d3e8..a54fdd1 100644
--- a/xen/include/asm-x86/page.h
+++ b/xen/include/asm-x86/page.h
@@ -288,7 +288,7 @@ extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES];
 extern l2_pgentry_t  *compat_idle_pg_table_l2;
 extern unsigned int   m2p_compat_vstart;
 extern l2_pgentry_t l2_xenmap[L2_PAGETABLE_ENTRIES],
-    l2_bootmap[L2_PAGETABLE_ENTRIES];
+    l2_bootmap[4*L2_PAGETABLE_ENTRIES];
 extern l3_pgentry_t l3_bootmap[L3_PAGETABLE_ENTRIES];
 extern l2_pgentry_t l2_identmap[4*L2_PAGETABLE_ENTRIES];
 extern l1_pgentry_t l1_fixmap[L1_PAGETABLE_ENTRIES];
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 8/9] x86/boot: rename sym_phys() to sym_offs()
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (6 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 7/9] x86: make Xen early boot code relocatable Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  2017-02-21 19:19 ` [PATCH v16 9/9] x86: add multiboot2 protocol support for relocatable images Daniel Kiper
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

This way macro name better describes its function.
Currently it is used to calculate symbol offset in
relation to the beginning of Xen image mapping.
However, value returned by sym_offs() for a given
symbol is not always equal its physical address.

There is no functional change.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
---
v8 - suggestions/fixes:
   - improve commit message
     (suggested by Jan Beulich).
---
 xen/arch/x86/boot/head.S       |   38 +++++++++++++++++++-------------------
 xen/arch/x86/boot/trampoline.S |    2 +-
 xen/arch/x86/boot/wakeup.S     |    4 ++--
 xen/arch/x86/boot/x86_64.S     |   18 +++++++++---------
 4 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 658e40a..dba336d 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -11,9 +11,9 @@
         .text
         .code32
 
-#define sym_phys(sym)     ((sym) - __XEN_VIRT_START)
-#define sym_esi(sym)      sym_phys(sym)(%esi)
-#define sym_fs(sym)       %fs:sym_phys(sym)
+#define sym_offs(sym)     ((sym) - __XEN_VIRT_START)
+#define sym_esi(sym)      sym_offs(sym)(%esi)
+#define sym_fs(sym)       %fs:sym_offs(sym)
 
 #define BOOT_CS32        0x0008
 #define BOOT_CS64        0x0010
@@ -96,7 +96,7 @@ multiboot2_header_start:
 
         /* EFI64 Multiboot2 entry point. */
         mb2ht_init MB2_HT(ENTRY_ADDRESS_EFI64), MB2_HT(OPTIONAL), \
-                   sym_phys(__efi64_mb2_start)
+                   sym_offs(__efi64_mb2_start)
 
         /* Multiboot2 header end tag. */
         mb2ht_init MB2_HT(END), MB2_HT(REQUIRED)
@@ -118,7 +118,7 @@ multiboot2_header_start:
 gdt_boot_descr:
         .word   7*8-1
 gdt_boot_base:
-        .long   sym_phys(trampoline_gdt)
+        .long   sym_offs(trampoline_gdt)
         .long   0 /* Needed for 64-bit lgdt */
 
 vga_text_buffer:
@@ -130,21 +130,21 @@ efi_platform:
         .section .init.text, "ax", @progbits
 
 bad_cpu:
-        add     $sym_phys(.Lbad_cpu_msg),%esi   # Error message
+        add     $sym_offs(.Lbad_cpu_msg),%esi   # Error message
         jmp     .Lget_vtb
 not_multiboot:
-        add     $sym_phys(.Lbad_ldr_msg),%esi   # Error message
+        add     $sym_offs(.Lbad_ldr_msg),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_st:
         /*
          * Here we are on EFI platform. vga_text_buffer was zapped earlier
          * because there is pretty good chance that VGA is unavailable.
          */
-        add     $sym_phys(.Lbad_ldr_nst),%esi   # Error message
+        add     $sym_offs(.Lbad_ldr_nst),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_ih:
         /* Ditto. */
-        add     $sym_phys(.Lbad_ldr_nih),%esi   # Error message
+        add     $sym_offs(.Lbad_ldr_nih),%esi   # Error message
         jmp     .Lget_vtb
 .Lmb2_no_bs:
         /*
@@ -152,7 +152,7 @@ not_multiboot:
          * via start label. Then reliable vga_text_buffer zap is impossible
          * in Multiboot2 scanning loop and we have to zero %edi below.
          */
-        add     $sym_phys(.Lbad_ldr_nbs),%esi   # Error message
+        add     $sym_offs(.Lbad_ldr_nbs),%esi   # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
 .Lmb2_efi_ia_32:
@@ -160,7 +160,7 @@ not_multiboot:
          * Here we are on EFI IA-32 platform. Then reliable vga_text_buffer zap is
          * impossible in Multiboot2 scanning loop and we have to zero %edi below.
          */
-        add     $sym_phys(.Lbad_efi_msg),%esi   # Error message
+        add     $sym_offs(.Lbad_efi_msg),%esi   # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
 .Lget_vtb:
@@ -371,7 +371,7 @@ __start:
         cli
 
         /* Load default Xen image load base address. */
-        mov     $sym_phys(__image_base__),%esi
+        mov     $sym_offs(__image_base__),%esi
 
         /* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
         xor     %edx,%edx
@@ -543,8 +543,8 @@ trampoline_setup:
         jnz     1f
 
         /* Initialize BSS (no nasty surprises!). */
-        mov     $sym_phys(__bss_start),%edi
-        mov     $sym_phys(__bss_end),%ecx
+        mov     $sym_offs(__bss_start),%edi
+        mov     $sym_offs(__bss_end),%ecx
         push    %fs
         pop     %es
         sub     %edi,%ecx
@@ -617,22 +617,22 @@ trampoline_setup:
 
         /* Apply relocations to bootstrap trampoline. */
         mov     sym_fs(trampoline_phys),%edx
-        mov     $sym_phys(__trampoline_rel_start),%edi
+        mov     $sym_offs(__trampoline_rel_start),%edi
 1:
         mov     %fs:(%edi),%eax
         add     %edx,%fs:(%edi,%eax)
         add     $4,%edi
-        cmp     $sym_phys(__trampoline_rel_stop),%edi
+        cmp     $sym_offs(__trampoline_rel_stop),%edi
         jb      1b
 
         /* Patch in the trampoline segment. */
         shr     $4,%edx
-        mov     $sym_phys(__trampoline_seg_start),%edi
+        mov     $sym_offs(__trampoline_seg_start),%edi
 1:
         mov     %fs:(%edi),%eax
         mov     %dx,%fs:(%edi,%eax)
         add     $4,%edi
-        cmp     $sym_phys(__trampoline_seg_stop),%edi
+        cmp     $sym_offs(__trampoline_seg_stop),%edi
         jb      1b
 
         /* Do not parse command line on EFI platform here. */
@@ -658,7 +658,7 @@ trampoline_setup:
         push    %eax
 
         /* Copy bootstrap trampoline to low memory, below 1MB. */
-        mov     $sym_phys(trampoline_start),%esi
+        mov     $sym_offs(trampoline_start),%esi
         mov     $((trampoline_end - trampoline_start) / 4),%ecx
         rep movsl %fs:(%esi),%es:(%edi)
 
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 64f8efd..b96607a 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -92,7 +92,7 @@ trampoline_protmode_entry:
         mov     %ecx,%cr4
 
         /* Load pagetable base register. */
-        mov     $sym_phys(idle_pg_table),%eax
+        mov     $sym_offs(idle_pg_table),%eax
         add     bootsym_rel(trampoline_xen_phys_start,4,%eax)
         mov     %eax,%cr3
 
diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index 08ea9b2..42d57ab 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -120,7 +120,7 @@ wakeup_32:
         mov     $bootsym_rel(wakeup_stack, 4, %esp)
 
         # check saved magic again
-        mov     $sym_phys(saved_magic), %eax
+        mov     $sym_offs(saved_magic),%eax
         add     bootsym_rel(trampoline_xen_phys_start, 4, %eax)
         mov     (%eax), %eax
         cmp     $0x9abcdef0, %eax
@@ -133,7 +133,7 @@ wakeup_32:
         mov     %ecx, %cr4
 
         /* Load pagetable base register */
-        mov     $sym_phys(idle_pg_table),%eax
+        mov     $sym_offs(idle_pg_table),%eax
         add     bootsym_rel(trampoline_xen_phys_start,4,%eax)
         mov     %eax,%cr3
 
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index d07c360..b6f2792 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -112,7 +112,7 @@ GLOBAL(__page_tables_start)
  * actualy mapped (mostly using superpages).  Uses 4x 4k pages.
  */
 GLOBAL(l2_identmap)
-        .quad sym_phys(l1_identmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l1_identmap) + __PAGE_HYPERVISOR
         idx = 1
         .rept 7
         .quad (idx << L2_PAGETABLE_SHIFT) | PAGE_HYPERVISOR | _PAGE_PSE
@@ -130,7 +130,7 @@ GLOBAL(l2_xenmap)
         .quad 0
         idx = 1
         .rept 7
-        .quad sym_phys(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + (PAGE_HYPERVISOR | _PAGE_PSE)
+        .quad sym_offs(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + (PAGE_HYPERVISOR | _PAGE_PSE)
         idx = idx + 1
         .endr
         .fill L2_PAGETABLE_ENTRIES - 8, 8, 0
@@ -141,7 +141,7 @@ l2_fixmap:
         idx = 0
         .rept L2_PAGETABLE_ENTRIES
         .if idx == l2_table_offset(FIXADDR_TOP - 1)
-        .quad sym_phys(l1_fixmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l1_fixmap) + __PAGE_HYPERVISOR
         .else
         .quad 0
         .endif
@@ -153,7 +153,7 @@ l2_fixmap:
 l3_identmap:
         idx = 0
         .rept 4
-        .quad sym_phys(l2_identmap) + (idx << PAGE_SHIFT) + __PAGE_HYPERVISOR
+        .quad sym_offs(l2_identmap) + (idx << PAGE_SHIFT) + __PAGE_HYPERVISOR
         idx = idx + 1
         .endr
         .fill L3_PAGETABLE_ENTRIES - 4, 8, 0
@@ -164,9 +164,9 @@ l3_xenmap:
         idx = 0
         .rept L3_PAGETABLE_ENTRIES
         .if idx == l3_table_offset(XEN_VIRT_START)
-        .quad sym_phys(l2_xenmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l2_xenmap) + __PAGE_HYPERVISOR
         .elseif idx == l3_table_offset(FIXADDR_TOP - 1)
-        .quad sym_phys(l2_fixmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l2_fixmap) + __PAGE_HYPERVISOR
         .else
         .quad 0
         .endif
@@ -176,13 +176,13 @@ l3_xenmap:
 
 /* Top-level master (and idle-domain) page directory. */
 GLOBAL(idle_pg_table)
-        .quad sym_phys(l3_bootmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l3_bootmap) + __PAGE_HYPERVISOR
         idx = 1
         .rept L4_PAGETABLE_ENTRIES - 1
         .if idx == l4_table_offset(DIRECTMAP_VIRT_START)
-        .quad sym_phys(l3_identmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l3_identmap) + __PAGE_HYPERVISOR
         .elseif idx == l4_table_offset(XEN_VIRT_START)
-        .quad sym_phys(l3_xenmap) + __PAGE_HYPERVISOR
+        .quad sym_offs(l3_xenmap) + __PAGE_HYPERVISOR
         .else
         .quad 0
         .endif
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH v16 9/9] x86: add multiboot2 protocol support for relocatable images
  2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
                   ` (7 preceding siblings ...)
  2017-02-21 19:19 ` [PATCH v16 8/9] x86/boot: rename sym_phys() to sym_offs() Daniel Kiper
@ 2017-02-21 19:19 ` Daniel Kiper
  8 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:19 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

Add multiboot2 protocol support for relocatable images. Only GRUB2 with
"multiboot2: Add support for relocatable images" patch understands
that feature. Older multiboot protocol (regardless of version)
compatible loaders ignore it and everything works as usual.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
---
v12 - suggestions/fixes:
    - replace TABs with spaces in xen/include/xen/multiboot2.h
      (suggested by Doug Goldstein).

v9 - suggestions/fixes:
   - use .L labels instead of numeric ones in multiboot2 data scanning loop
     (suggested by Jan Beulich).

v4 - suggestions/fixes:
   - do not get Xen image load base address from
     multiboot2 information in x86_64 code
     (suggested by Jan Beulich),
   - improve label names
     (suggested by Jan Beulich),
   - improve comments,
     (suggested by Jan Beulich).

v3 - suggestions/fixes:
   - use %esi and %r15d instead of %ebp to store
     Xen image load base address,
   - rename some types and constants,
   - reformat xen/include/xen/multiboot2.h
     (suggested by Konrad Rzeszutek Wilk),
   - improve comments,
   - improve commit message
     (suggested by Konrad Rzeszutek Wilk).
---
 xen/arch/x86/boot/head.S          |   16 ++++++++++++++++
 xen/arch/x86/x86_64/asm-offsets.c |    1 +
 xen/include/xen/multiboot2.h      |   13 +++++++++++++
 3 files changed, 30 insertions(+)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dba336d..14c18d4 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -81,6 +81,13 @@ multiboot2_header_start:
         /* Align modules at page boundry. */
         mb2ht_init MB2_HT(MODULE_ALIGN), MB2_HT(REQUIRED)
 
+        /* Load address preference. */
+        mb2ht_init MB2_HT(RELOCATABLE), MB2_HT(OPTIONAL), \
+                   sym_offs(start), /* Min load address. */ \
+                   0xffffffff, /* The end of image max load address (4 GiB - 1). */ \
+                   0x200000, /* Load address alignment (2 MiB). */ \
+                   MULTIBOOT2_LOAD_PREFERENCE_HIGH
+
         /* Console flags tag. */
         mb2ht_init MB2_HT(CONSOLE_FLAGS), MB2_HT(OPTIONAL), \
                    MULTIBOOT2_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED
@@ -403,6 +410,15 @@ __start:
         cmp     %edi,MB2_fixed_total_size(%ebx)
         jbe     trampoline_bios_setup
 
+        /* Get Xen image load base address from Multiboot2 information. */
+        cmpl    $MULTIBOOT2_TAG_TYPE_LOAD_BASE_ADDR,MB2_tag_type(%ecx)
+        jne     .Lmb2_mem_lower
+
+        mov     MB2_load_base_addr(%ecx),%esi
+        sub     $XEN_IMG_OFFSET,%esi
+        jmp     .Lmb2_next_tag
+
+.Lmb2_mem_lower:
         /* Get mem_lower from Multiboot2 information. */
         cmpl    $MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO,MB2_tag_type(%ecx)
         cmove   MB2_mem_lower(%ecx),%edx
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 836fed3..e136af6 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -173,6 +173,7 @@ void __dummy__(void)
     OFFSET(MB2_fixed_total_size, multiboot2_fixed_t, total_size);
     OFFSET(MB2_tag_type, multiboot2_tag_t, type);
     OFFSET(MB2_tag_size, multiboot2_tag_t, size);
+    OFFSET(MB2_load_base_addr, multiboot2_tag_load_base_addr_t, load_base_addr);
     OFFSET(MB2_mem_lower, multiboot2_tag_basic_meminfo_t, mem_lower);
     OFFSET(MB2_efi64_st, multiboot2_tag_efi64_t, pointer);
     OFFSET(MB2_efi64_ih, multiboot2_tag_efi64_ih_t, pointer);
diff --git a/xen/include/xen/multiboot2.h b/xen/include/xen/multiboot2.h
index a3e3119..5acd225 100644
--- a/xen/include/xen/multiboot2.h
+++ b/xen/include/xen/multiboot2.h
@@ -59,11 +59,17 @@
 #define MULTIBOOT2_HEADER_TAG_EFI_BS                    7
 #define MULTIBOOT2_HEADER_TAG_ENTRY_ADDRESS_EFI32       8
 #define MULTIBOOT2_HEADER_TAG_ENTRY_ADDRESS_EFI64       9
+#define MULTIBOOT2_HEADER_TAG_RELOCATABLE               10
 
 /* Header tag flags. */
 #define MULTIBOOT2_HEADER_TAG_REQUIRED                  0
 #define MULTIBOOT2_HEADER_TAG_OPTIONAL                  1
 
+/* Where image should be loaded (suggestion not requirement). */
+#define MULTIBOOT2_LOAD_PREFERENCE_NONE                 0
+#define MULTIBOOT2_LOAD_PREFERENCE_LOW                  1
+#define MULTIBOOT2_LOAD_PREFERENCE_HIGH                 2
+
 /* Header console tag console_flags. */
 #define MULTIBOOT2_CONSOLE_FLAGS_CONSOLE_REQUIRED       1
 #define MULTIBOOT2_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED     2
@@ -90,6 +96,7 @@
 #define MULTIBOOT2_TAG_TYPE_EFI_BS                      18
 #define MULTIBOOT2_TAG_TYPE_EFI32_IH                    19
 #define MULTIBOOT2_TAG_TYPE_EFI64_IH                    20
+#define MULTIBOOT2_TAG_TYPE_LOAD_BASE_ADDR              21
 
 /* Multiboot 2 tag alignment. */
 #define MULTIBOOT2_TAG_ALIGN                            8
@@ -120,6 +127,12 @@ typedef struct {
 typedef struct {
     u32 type;
     u32 size;
+    u32 load_base_addr;
+} multiboot2_tag_load_base_addr_t;
+
+typedef struct {
+    u32 type;
+    u32 size;
     char string[];
 } multiboot2_tag_string_t;
 
-- 
1.7.10.4


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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-21 19:19 ` [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
@ 2017-02-21 19:24   ` Daniel Kiper
  2017-02-22 13:42     ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-02-21 19:24 UTC (permalink / raw)
  To: xen-devel
  Cc: jgross, sstabellini, andrew.cooper3, cardoe, pgnet.dev, ning.sun,
	julien.grall, jbeulich, qiaowei.ren, gang.wei, fu.wei

On Tue, Feb 21, 2017 at 08:19:53PM +0100, Daniel Kiper wrote:
> This way Xen can be loaded on EFI platforms using GRUB2 and
> other boot loaders which support multiboot2 protocol.
>
> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> ---
> v16 - suggestions/fixes:
>     - improve comments in error handling
>       (suggested by Jan Beulich).

Diff between v15 and v16:

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 6352142..a2177c3 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -133,16 +133,30 @@ not_multiboot:
         mov     $(sym_phys(.Lbad_ldr_msg)),%esi # Error message
         jmp     .Lget_vtb
 .Lmb2_no_st:
+        /*
+         * Here we are on EFI platform. vga_text_buffer was zapped earlier
+         * because there is pretty good chance that VGA is unavailable.
+         */
         mov     $(sym_phys(.Lbad_ldr_nst)),%esi # Error message
         jmp     .Lget_vtb
 .Lmb2_no_ih:
+        /* Ditto. */
         mov     $(sym_phys(.Lbad_ldr_nih)),%esi # Error message
         jmp     .Lget_vtb
 .Lmb2_no_bs:
+        /*
+         * Ditto. Additionally, here there is a chance that Xen was started
+         * via start label. Then reliable vga_text_buffer zap is impossible
+         * in Multiboot2 scanning loop and we have to zero %edi below.
+         */
         mov     $(sym_phys(.Lbad_ldr_nbs)),%esi # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
 .Lmb2_efi_ia_32:
+        /*
+         * Here we are on EFI IA-32 platform. Then reliable vga_text_buffer zap is
+         * impossible in Multiboot2 scanning loop and we have to zero %edi below.
+         */
         mov     $(sym_phys(.Lbad_efi_msg)),%esi # Error message
         xor     %edi,%edi                       # No VGA text buffer
         jmp     .Lsend_chr
@@ -393,18 +407,10 @@ __start:

         /* EFI IA-32 platforms are not supported. */
         cmpl    $MULTIBOOT2_TAG_TYPE_EFI32,MB2_tag_type(%ecx)
-        /*
-         * Here we should zap vga_text_buffer. However, we can disable
-         * VGA updates in simpler and more reliable way later.
-         */
         je      .Lmb2_efi_ia_32

         /* Bootloader shutdown EFI x64 boot services. */
         cmpl    $MULTIBOOT2_TAG_TYPE_EFI64,MB2_tag_type(%ecx)
-        /*
-         * Here we should zap vga_text_buffer. However, we can disable
-         * VGA updates in simpler and more reliable way later.
-         */
         je      .Lmb2_no_bs

         /* Is it the end of Multiboot2 information? */

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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-21 19:24   ` Daniel Kiper
@ 2017-02-22 13:42     ` Jan Beulich
  2017-02-22 13:46       ` Doug Goldstein
  2017-02-22 15:34       ` Daniel Kiper
  0 siblings, 2 replies; 48+ messages in thread
From: Jan Beulich @ 2017-02-22 13:42 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 21.02.17 at 20:24, <daniel.kiper@oracle.com> wrote:
> On Tue, Feb 21, 2017 at 08:19:53PM +0100, Daniel Kiper wrote:
>> This way Xen can be loaded on EFI platforms using GRUB2 and
>> other boot loaders which support multiboot2 protocol.
>>
>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>> ---
>> v16 - suggestions/fixes:
>>     - improve comments in error handling
>>       (suggested by Jan Beulich).
> 
> Diff between v15 and v16:

While I'm still not really happy with the changes done, and the VGA
(or not) handling in general, after discussing this yet another time
with Andrew we've decided to put in at least the first 4 patches. The
rest of the series will need to have the reported regression (by
Doug) taken care of to become a candidate for committing.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-22 13:42     ` Jan Beulich
@ 2017-02-22 13:46       ` Doug Goldstein
  2017-02-22 15:34       ` Daniel Kiper
  1 sibling, 0 replies; 48+ messages in thread
From: Doug Goldstein @ 2017-02-22 13:46 UTC (permalink / raw)
  To: Jan Beulich, Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 1287 bytes --]

On 2/22/17 5:42 AM, Jan Beulich wrote:
>>>> On 21.02.17 at 20:24, <daniel.kiper@oracle.com> wrote:
>> On Tue, Feb 21, 2017 at 08:19:53PM +0100, Daniel Kiper wrote:
>>> This way Xen can be loaded on EFI platforms using GRUB2 and
>>> other boot loaders which support multiboot2 protocol.
>>>
>>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>>> ---
>>> v16 - suggestions/fixes:
>>>     - improve comments in error handling
>>>       (suggested by Jan Beulich).
>>
>> Diff between v15 and v16:
> 
> While I'm still not really happy with the changes done, and the VGA
> (or not) handling in general, after discussing this yet another time
> with Andrew we've decided to put in at least the first 4 patches. The
> rest of the series will need to have the reported regression (by
> Doug) taken care of to become a candidate for committing.
> 
> Jan
> 

I'm on travel for the next week and half but when I return I had planned
on tackling the issue.

For anyone else interested its reproducible with QEMU booting smp with 2
CPUs and using OVMF. Xen just never sees more than the boot CPU. I'd
recommend using QEMU master since they landed some fixes so that the
debugger can handle switching from 64-bit to 32-bit and back again.

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-22 13:42     ` Jan Beulich
  2017-02-22 13:46       ` Doug Goldstein
@ 2017-02-22 15:34       ` Daniel Kiper
  2017-02-22 17:04         ` Doug Goldstein
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-02-22 15:34 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

On Wed, Feb 22, 2017 at 06:42:40AM -0700, Jan Beulich wrote:
> >>> On 21.02.17 at 20:24, <daniel.kiper@oracle.com> wrote:
> > On Tue, Feb 21, 2017 at 08:19:53PM +0100, Daniel Kiper wrote:
> >> This way Xen can be loaded on EFI platforms using GRUB2 and
> >> other boot loaders which support multiboot2 protocol.
> >>
> >> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> >> ---
> >> v16 - suggestions/fixes:
> >>     - improve comments in error handling
> >>       (suggested by Jan Beulich).
> >
> > Diff between v15 and v16:
>
> While I'm still not really happy with the changes done, and the VGA
> (or not) handling in general, after discussing this yet another time
> with Andrew we've decided to put in at least the first 4 patches. The

Thanks a lot!

> rest of the series will need to have the reported regression (by
> Doug) taken care of to become a candidate for committing.

I tried to reproduce this on my machines and some guys from my team
did also some tests. We were not able to reproduce anything reported
by Doug. Recently I repeated the tests on QEMU 2.8.0 with OVMF from
https://www.kraxel.org/repos/jenkins/edk2/ (20170213.b2458.g5b97eb4).
Without any issues too. I need more details about tests environments
(exact host kernel version and config, QEMU and OVMF versions and config,
exact Xen and dom0 kernel versions and config, etc.). It would be nice
to get access to one of these physical machines on which issues are
surfacing too.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-22 15:34       ` Daniel Kiper
@ 2017-02-22 17:04         ` Doug Goldstein
  2017-03-06 23:39           ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Doug Goldstein @ 2017-02-22 17:04 UTC (permalink / raw)
  To: Daniel Kiper, Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 2499 bytes --]

On 2/22/17 7:34 AM, Daniel Kiper wrote:
> On Wed, Feb 22, 2017 at 06:42:40AM -0700, Jan Beulich wrote:
>>>>> On 21.02.17 at 20:24, <daniel.kiper@oracle.com> wrote:
>>> On Tue, Feb 21, 2017 at 08:19:53PM +0100, Daniel Kiper wrote:
>>>> This way Xen can be loaded on EFI platforms using GRUB2 and
>>>> other boot loaders which support multiboot2 protocol.
>>>>
>>>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>>>> ---
>>>> v16 - suggestions/fixes:
>>>>     - improve comments in error handling
>>>>       (suggested by Jan Beulich).
>>>
>>> Diff between v15 and v16:
>>
>> While I'm still not really happy with the changes done, and the VGA
>> (or not) handling in general, after discussing this yet another time
>> with Andrew we've decided to put in at least the first 4 patches. The
> 
> Thanks a lot!
> 
>> rest of the series will need to have the reported regression (by
>> Doug) taken care of to become a candidate for committing.
> 
> I tried to reproduce this on my machines and some guys from my team
> did also some tests. We were not able to reproduce anything reported
> by Doug. Recently I repeated the tests on QEMU 2.8.0 with OVMF from
> https://www.kraxel.org/repos/jenkins/edk2/ (20170213.b2458.g5b97eb4).
> Without any issues too. I need more details about tests environments
> (exact host kernel version and config, QEMU and OVMF versions and config,
> exact Xen and dom0 kernel versions and config, etc.). It would be nice
> to get access to one of these physical machines on which issues are
> surfacing too.
> 
> Daniel
> 

I'm currently at ELC and then on vacation so I don't have access to any
of the machines currently myself. However the machine I most use to test
is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
has one internally. But that's why I gave QEMU as an example.

I was using qemu master from a few weeks ago. I'll have to find the
revision for you. But the command line I use is:

-enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
-drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
-device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
-netdev id=net0,type=tap -device
virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
qxl-vga -gdb tcp::14952

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-02-21 19:19 ` [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
@ 2017-03-01  9:05   ` Jan Beulich
  2017-03-01 10:13     ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-03-01  9:05 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> Subsequent patches introducing relocatable early boot code play with
> page tables using 2 MiB huge pages. If load address is not aligned at
> 2 MiB then code touching such page tables must have special cases for
> start and end of Xen image memory region. So, let's make life easier
> and move default load address from 1 MiB to 2 MiB. This way page table
> code will be nice and easy. Hence, there is a chance that it will be
> less error prone too... :-)))
> 
> Additionally, drop first 2 MiB mapping from Xen image mapping.
> It is no longer needed.

What about the memory allocated for it? Aiui at least in the xen.efi
case there would be a 2Mb chunk left unused, but also never freed.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-01  9:05   ` Jan Beulich
@ 2017-03-01 10:13     ` Daniel Kiper
  2017-03-01 10:34       ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-01 10:13 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> > Subsequent patches introducing relocatable early boot code play with
> > page tables using 2 MiB huge pages. If load address is not aligned at
> > 2 MiB then code touching such page tables must have special cases for
> > start and end of Xen image memory region. So, let's make life easier
> > and move default load address from 1 MiB to 2 MiB. This way page table
> > code will be nice and easy. Hence, there is a chance that it will be
> > less error prone too... :-)))
> >
> > Additionally, drop first 2 MiB mapping from Xen image mapping.
> > It is no longer needed.
>
> What about the memory allocated for it? Aiui at least in the xen.efi
> case there would be a 2Mb chunk left unused, but also never freed.

Memory is not allocated for it.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-01 10:13     ` Daniel Kiper
@ 2017-03-01 10:34       ` Jan Beulich
  2017-03-01 10:51         ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-03-01 10:34 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 01.03.17 at 11:13, <daniel.kiper@oracle.com> wrote:
> On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
>> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
>> > Subsequent patches introducing relocatable early boot code play with
>> > page tables using 2 MiB huge pages. If load address is not aligned at
>> > 2 MiB then code touching such page tables must have special cases for
>> > start and end of Xen image memory region. So, let's make life easier
>> > and move default load address from 1 MiB to 2 MiB. This way page table
>> > code will be nice and easy. Hence, there is a chance that it will be
>> > less error prone too... :-)))
>> >
>> > Additionally, drop first 2 MiB mapping from Xen image mapping.
>> > It is no longer needed.
>>
>> What about the memory allocated for it? Aiui at least in the xen.efi
>> case there would be a 2Mb chunk left unused, but also never freed.
> 
> Memory is not allocated for it.

Are you sure? Where would the PE32+ header live in that case?

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-01 10:34       ` Jan Beulich
@ 2017-03-01 10:51         ` Daniel Kiper
  2017-03-01 11:21           ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-01 10:51 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

On Wed, Mar 01, 2017 at 03:34:47AM -0700, Jan Beulich wrote:
> >>> On 01.03.17 at 11:13, <daniel.kiper@oracle.com> wrote:
> > On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
> >> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> >> > Subsequent patches introducing relocatable early boot code play with
> >> > page tables using 2 MiB huge pages. If load address is not aligned at
> >> > 2 MiB then code touching such page tables must have special cases for
> >> > start and end of Xen image memory region. So, let's make life easier
> >> > and move default load address from 1 MiB to 2 MiB. This way page table
> >> > code will be nice and easy. Hence, there is a chance that it will be
> >> > less error prone too... :-)))
> >> >
> >> > Additionally, drop first 2 MiB mapping from Xen image mapping.
> >> > It is no longer needed.
> >>
> >> What about the memory allocated for it? Aiui at least in the xen.efi
> >> case there would be a 2Mb chunk left unused, but also never freed.
> >
> > Memory is not allocated for it.
>
> Are you sure? Where would the PE32+ header live in that case?

Is the PE32+ header loaded into memory? I think that only code and data stuff
is put there. Header is useful only for loader. Am I missing something?

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-01 10:51         ` Daniel Kiper
@ 2017-03-01 11:21           ` Jan Beulich
  2017-03-06 14:51             ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-03-01 11:21 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 01.03.17 at 11:51, <daniel.kiper@oracle.com> wrote:
> On Wed, Mar 01, 2017 at 03:34:47AM -0700, Jan Beulich wrote:
>> >>> On 01.03.17 at 11:13, <daniel.kiper@oracle.com> wrote:
>> > On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
>> >> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
>> >> > Subsequent patches introducing relocatable early boot code play with
>> >> > page tables using 2 MiB huge pages. If load address is not aligned at
>> >> > 2 MiB then code touching such page tables must have special cases for
>> >> > start and end of Xen image memory region. So, let's make life easier
>> >> > and move default load address from 1 MiB to 2 MiB. This way page table
>> >> > code will be nice and easy. Hence, there is a chance that it will be
>> >> > less error prone too... :-)))
>> >> >
>> >> > Additionally, drop first 2 MiB mapping from Xen image mapping.
>> >> > It is no longer needed.
>> >>
>> >> What about the memory allocated for it? Aiui at least in the xen.efi
>> >> case there would be a 2Mb chunk left unused, but also never freed.
>> >
>> > Memory is not allocated for it.
>>
>> Are you sure? Where would the PE32+ header live in that case?
> 
> Is the PE32+ header loaded into memory? I think that only code and data stuff
> is put there. Header is useful only for loader. Am I missing something?

I think EFI's loader simply follows Windows' one(s). And yes, the
headers can be useful - to the loader itself (albeit then the loader
assumes that no-one fiddles with them).

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-01 11:21           ` Jan Beulich
@ 2017-03-06 14:51             ` Daniel Kiper
  2017-03-06 14:59               ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-06 14:51 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

On Wed, Mar 01, 2017 at 04:21:35AM -0700, Jan Beulich wrote:
> >>> On 01.03.17 at 11:51, <daniel.kiper@oracle.com> wrote:
> > On Wed, Mar 01, 2017 at 03:34:47AM -0700, Jan Beulich wrote:
> >> >>> On 01.03.17 at 11:13, <daniel.kiper@oracle.com> wrote:
> >> > On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
> >> >> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> >> >> > Subsequent patches introducing relocatable early boot code play with
> >> >> > page tables using 2 MiB huge pages. If load address is not aligned at
> >> >> > 2 MiB then code touching such page tables must have special cases for
> >> >> > start and end of Xen image memory region. So, let's make life easier
> >> >> > and move default load address from 1 MiB to 2 MiB. This way page table
> >> >> > code will be nice and easy. Hence, there is a chance that it will be
> >> >> > less error prone too... :-)))
> >> >> >
> >> >> > Additionally, drop first 2 MiB mapping from Xen image mapping.
> >> >> > It is no longer needed.
> >> >>
> >> >> What about the memory allocated for it? Aiui at least in the xen.efi
> >> >> case there would be a 2Mb chunk left unused, but also never freed.
> >> >
> >> > Memory is not allocated for it.
> >>
> >> Are you sure? Where would the PE32+ header live in that case?
> >
> > Is the PE32+ header loaded into memory? I think that only code and data stuff
> > is put there. Header is useful only for loader. Am I missing something?
>
> I think EFI's loader simply follows Windows' one(s). And yes, the

Sadly, I do not know how Windows' one(s) work(s).

> headers can be useful - to the loader itself (albeit then the loader
> assumes that no-one fiddles with them).

I have looked at OVMF. It looks that OVMF loads PE32+ header aside, parses it, puts
Xen code and data into allocated memory (EfiLoaderCode type), does relocations and
jumps into entry point. So, more or less as I expected. It looks that it does not
load whole file at once. Hence, taking into account that memory allocated for Xen
image is marked as EfiLoaderCode it means that from Xen point of view this region
is free. Of course later everything between _start and _end is reserved. So, it
seems to me that everything between __image_base__ and _start is free and
available for Xen memory allocator. Am I missing something here?

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB
  2017-03-06 14:51             ` Daniel Kiper
@ 2017-03-06 14:59               ` Jan Beulich
  0 siblings, 0 replies; 48+ messages in thread
From: Jan Beulich @ 2017-03-06 14:59 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 06.03.17 at 15:51, <daniel.kiper@oracle.com> wrote:
> On Wed, Mar 01, 2017 at 04:21:35AM -0700, Jan Beulich wrote:
>> >>> On 01.03.17 at 11:51, <daniel.kiper@oracle.com> wrote:
>> > On Wed, Mar 01, 2017 at 03:34:47AM -0700, Jan Beulich wrote:
>> >> >>> On 01.03.17 at 11:13, <daniel.kiper@oracle.com> wrote:
>> >> > On Wed, Mar 01, 2017 at 02:05:39AM -0700, Jan Beulich wrote:
>> >> >> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
>> >> >> > Subsequent patches introducing relocatable early boot code play with
>> >> >> > page tables using 2 MiB huge pages. If load address is not aligned at
>> >> >> > 2 MiB then code touching such page tables must have special cases for
>> >> >> > start and end of Xen image memory region. So, let's make life easier
>> >> >> > and move default load address from 1 MiB to 2 MiB. This way page table
>> >> >> > code will be nice and easy. Hence, there is a chance that it will be
>> >> >> > less error prone too... :-)))
>> >> >> >
>> >> >> > Additionally, drop first 2 MiB mapping from Xen image mapping.
>> >> >> > It is no longer needed.
>> >> >>
>> >> >> What about the memory allocated for it? Aiui at least in the xen.efi
>> >> >> case there would be a 2Mb chunk left unused, but also never freed.
>> >> >
>> >> > Memory is not allocated for it.
>> >>
>> >> Are you sure? Where would the PE32+ header live in that case?
>> >
>> > Is the PE32+ header loaded into memory? I think that only code and data 
> stuff
>> > is put there. Header is useful only for loader. Am I missing something?
>>
>> I think EFI's loader simply follows Windows' one(s). And yes, the
> 
> Sadly, I do not know how Windows' one(s) work(s).
> 
>> headers can be useful - to the loader itself (albeit then the loader
>> assumes that no-one fiddles with them).
> 
> I have looked at OVMF. It looks that OVMF loads PE32+ header aside, parses it, puts
> Xen code and data into allocated memory (EfiLoaderCode type), does relocations and
> jumps into entry point. So, more or less as I expected. It looks that it does not
> load whole file at once. Hence, taking into account that memory allocated for Xen
> image is marked as EfiLoaderCode it means that from Xen point of view this region
> is free. Of course later everything between _start and _end is reserved. So, it
> seems to me that everything between __image_base__ and _start is free and
> available for Xen memory allocator. Am I missing something here?

Oh, right, the EFI memory type is what removes the need to free
anything here. I'm sorry for the noise.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-02-22 17:04         ` Doug Goldstein
@ 2017-03-06 23:39           ` Daniel Kiper
  2017-03-08  3:44             ` Konrad Rzeszutek Wilk
  2017-03-09 15:24             ` Daniel Kiper
  0 siblings, 2 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-03-06 23:39 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:

[...]

> I'm currently at ELC and then on vacation so I don't have access to any
> of the machines currently myself. However the machine I most use to test
> is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
> has one internally. But that's why I gave QEMU as an example.
>
> I was using qemu master from a few weeks ago. I'll have to find the
> revision for you. But the command line I use is:
>
> -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
> -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
> isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
> stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
> -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
> -netdev id=net0,type=tap -device
> virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
> qxl-vga -gdb tcp::14952

Sadly, my colleagues and I are not able to reproduce the problem on any of
machines available for us (available on the market and some development
stuff in our labs). I did tests with QEMU (I am not able to run it with
"-device intel-iommu" on my machine; I have to investigate this). Everything
works. Joao did some tests on Intel NUC D34010WYK second generation.
Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
have installed on that NUC? I would like to test same config as yours on
this machine.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-06 23:39           ` Daniel Kiper
@ 2017-03-08  3:44             ` Konrad Rzeszutek Wilk
  2017-03-08 14:17               ` Daniel Kiper
  2017-03-09 20:02               ` Doug Goldstein
  2017-03-09 15:24             ` Daniel Kiper
  1 sibling, 2 replies; 48+ messages in thread
From: Konrad Rzeszutek Wilk @ 2017-03-08  3:44 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, Jan Beulich, xen-devel,
	qiaowei.ren, gang.wei, fu.wei

On Tue, Mar 07, 2017 at 12:39:04AM +0100, Daniel Kiper wrote:
> On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:
> 
> [...]
> 
> > I'm currently at ELC and then on vacation so I don't have access to any
> > of the machines currently myself. However the machine I most use to test
> > is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
> > has one internally. But that's why I gave QEMU as an example.
> >
> > I was using qemu master from a few weeks ago. I'll have to find the
> > revision for you. But the command line I use is:
> >
> > -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
> > -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
> > isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
> > stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
> > -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
> > -netdev id=net0,type=tap -device
> > virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
> > qxl-vga -gdb tcp::14952
> 
> Sadly, my colleagues and I are not able to reproduce the problem on any of
> machines available for us (available on the market and some development
> stuff in our labs). I did tests with QEMU (I am not able to run it with
> "-device intel-iommu" on my machine; I have to investigate this). Everything
> works. Joao did some tests on Intel NUC D34010WYK second generation.
> Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
> waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
> have installed on that NUC? I would like to test same config as yours on
> this machine.

I had a chat with Doug on IRC and:
 - I had tested earlier on AMD, while he has only Intel boxes,
 - He was wondering if this was an IOMMU issue.

So to double-check that, I installed Ubuntu 16.10 on my X11SAE
SuperMicro, which has an Haswell E3-1245 v5 and with IOMMU enabled.

I tested the 'origin/staging' xen.gz build with the upstream grub2
(I just used the 'master' branch) first and also just booting xen.efi.

Both worked fine.

Then I used v16 of Daniel's patches (this thread). They are also
now on	git://xenbits.xen.org/people/konradwilk/xen.git mb2.v16
also the same way - as xen.efi and then using grub.efi and booting it
(see below)

All worked fine.

Now in the process I discovered that my patch for grub-mkconfig to
detect multiboot2 payloads and use those instead of multiboot never
made it upstream, so I had to modify my grub.cfg by hand (see below).

xen.cfg:
[global]
default=ubuntu

[ubuntu]
options=console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
kernel=vmlinuz root=UUID=3f1e35fb-9907-48d1-b621-42369d5ad88f ro quiet vt.handoff=7 console=hvc0
ramdisk=initrd.img


^[[25;1H^[[1;33;40mfs0:\EFI\xen> xen^[[25;22H^[[0;37;40m
Xen 4.9-unstable
(XEN) Xen version 4.9-unstable (konrad@) (gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005) debug=y  Tue Mar  7 22:13:08 EST 2017
(XEN) Latest ChangeSet: Tue Feb 21 20:19:58 2017 +0100 git:e4ccbd0
(XEN) Bootloader: EFI
(XEN) Command line: console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
(XEN) Xen image load base address: 0x29800000
(XEN) Video information:
(XEN)  VGA is graphics mode 1280x1024, 32 bpp
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) EFI RAM map:
(XEN)  0000000000000000 - 0000000000058000 (usable)
(XEN)  0000000000058000 - 0000000000059000 (reserved)
(XEN)  0000000000059000 - 000000000009f000 (usable)
(XEN)  000000000009f000 - 00000000000a0000 (reserved)
(XEN)  0000000000100000 - 000000002ae33000 (usable)
(XEN)  000000002ae33000 - 000000002ae34000 (ACPI NVS)
(XEN)  000000002ae34000 - 000000002ae7e000 (reserved)
(XEN)  000000002ae7e000 - 000000002e8c1000 (usable)
(XEN)  000000002e8c1000 - 000000002ec64000 (reserved)
(XEN)  000000002ec64000 - 000000002eddf000 (usable)
(XEN)  000000002eddf000 - 000000002f3eb000 (ACPI NVS)
(XEN)  000000002f3eb000 - 000000002ffff000 (reserved)
(XEN)  000000002ffff000 - 0000000030000000 (usable)
(XEN)  0000000030000000 - 0000000038000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fe000000 - 00000000fe011000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 00000008c3400000 (usable)
(XEN) ACPI: RSDP 2EE67000, 0024 (r2 SUPERM)
(XEN) ACPI: XSDT 2EE670B0, 00DC (r1 SUPERM   SUPERM  1072009 AMI     10013)
(XEN)    1072009 AMI     10013)
(XEN) ACPI: FPDT 2EE8A778, 0044 (r1                  1072009 AMI     10013)
(XEN) ACPI: FIDT 2EE8A7C0, 009C (r1                  1072009 AMI     10013)
(XEN) ACPI: MCFG 2EE8A860, 003C (r1 SUPERM SMCI--MB  1072009 MSFT       97)
(XEN) ACPI: HPET 2EE8A8A0, 0038 (r1 SUPERM SMCI--MB  1072009 AMI.    5000B)
(XEN) ACPI: LPIT 2EE8A8D8, 0094 (r1 INTEL       SKL        0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8A970, 0248 (r2 INTEL  sensrhub        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8ABB8, 2BAE (r2 INTEL  PtidDevc     1000 INTL 20120913)
(XEN) ACPI: SSDT 2EE8D768, 0BE3 (r2 INTEL  Ther_Rvp     1000 INTL 20120913)
(XEN) ACPI: DBGP 2EE8E350, 0034 (r1 INTEL                  0 MSFT       5F)
(XEN) ACPI: DBG2 2EE8E388, 0054 (r0 INTEL                  0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8E3E0, 06FD (r2  INTEL xh_rvp08        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8EAE0, 546C (r2 SaSsdt  SaSsdt      3000 INTL 20120913)
(XEN) ACPI: UEFI 2EE93F50, 0042 (r1                        0             0)
(XEN) ACPI: SSDT 2EE93F98, 0E73 (r2 CpuRef  CpuSsdt     3000 INTL 20120913)
(XEN) ACPI: DMAR 2EE94E10, 00A8 (r1 INTEL      SKL         1 INTL        1)
(XEN) ACPI: ASF! 2EE94EB8, 00A5 (r32 INTEL       HCG        1 TFSM    F4240)
(XEN) ACPI: EINJ 2EE94F60, 0130 (r1    AMI AMI.EINJ        0 AMI.        0)
(XEN) ACPI: ERST 2EE95090, 0230 (r1  AMIER AMI.ERST        0 AMI.        0)
(XEN) ACPI: BERT 2EE952C0, 0030 (r1    AMI AMI.BERT        0 AMI.        0)
(XEN) ACPI: HEST 2EE952F0, 027C (r1    AMI AMI.HEST        0 AMI.        0)
(XEN) ACPI: BGRT 2EE95570, 0038 (r1 SUPERM SMCI--MB  1072009 AMI     10013)
(XEN) System RAM: 32541MB (33322560kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-00000008c3400000
(XEN) Domain heap initialised
(XEN) Allocated console ring of 1048576 KiB.
(XEN) vesafb: framebuffer at 0x90000000, mapped to 0xffff82c000201000, using 5120k, total 5120k
(XEN) vesafb: mode is 1280x1024x32, linelength=5120, font 8x16
(XEN) vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 94 (0x5e), Stepping 3 (raw 000506e3)
(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (32 bits)
(XEN) ACPI: v5 SLEEP status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT - 2f3e9f80/0000000000000000, using 32
(XEN) ACPI:             wakeup_vec[2f3e9f8c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) [VT-D]Host address width 39
(XEN) [VT-D]found ACPI_DMAR_DRHD:
(XEN) [VT-D]  dmaru->address = fed90000
(XEN) [VT-D]drhd->address = fed90000 iommu->reg = ffff82c00071c000
(XEN) [VT-D]cap = 1c0000c40660462 ecap = 7e3ff0505e
(XEN) [VT-D] endpoint: 0000:00:02.0
(XEN) [VT-D]found ACPI_DMAR_DRHD:
(XEN) [VT-D]  dmaru->address = fed91000
(XEN) [VT-D]drhd->address = fed91000 iommu->reg = ffff82c00071e000
(XEN) [VT-D]cap = d2008c40660462 ecap = f050da
(XEN) [VT-D] IOAPIC: 0000:f0:1f.0
(XEN) [VT-D] MSI HPET: 0000:00:1f.0
(XEN) [VT-D]  flags: INCLUDE_ALL
(XEN) [VT-D]found ACPI_DMAR_RMRR:
(XEN) [VT-D] endpoint: 0000:00:14.0
(XEN) [VT-D]dmar.c:638:   RMRR region: base_addr 2e9ab000 end_addr 2e9cafff
(XEN) [VT-D]found ACPI_DMAR_RMRR:
(XEN) [VT-D]  RMRR address range 38400000..3abfffff not in reserved memory; need "iommu_inclusive_mapping=1"?
(XEN) [VT-D] endpoint: 0000:00:02.0
(XEN) [VT-D]dmar.c:638:   RMRR region: base_addr 38400000 end_addr 3abfffff
(XEN) Xen ERST support is initialized.
(XEN) HEST: Table parsing has been initialized
(XEN) ACPI: BGRT: invalidating v1 image at 0x2c713018
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 24 GSI, 1528 MSI/MSI-X
(XEN) Not enabling x2APIC (upon firmware request)
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank 0 extended MCE MSR 0
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 23.999MHz HPET
(XEN) Detected 3504.107 MHz processor.
(XEN) EFI memory map:
(XEN)  0000000000000-0000000007fff type=3 attr=000000000000000f
(XEN)  0000000008000-0000000057fff type=7 attr=000000000000000f
(XEN)  0000000058000-0000000058fff type=0 attr=000000000000000f
(XEN)  0000000059000-000000005bfff type=7 attr=000000000000000f
(XEN)  000000005c000-000000005efff type=2 attr=000000000000000f
(XEN)  000000005f000-000000005ffff type=4 attr=000000000000000f
(XEN)  0000000060000-000000009efff type=3 attr=000000000000000f
(XEN)  000000009f000-000000009ffff type=0 attr=000000000000000f
(XEN)  0000000100000-0000022eebfff type=7 attr=000000000000000f
(XEN)  0000022eec000-0000022f2bfff type=4 attr=000000000000000f
(XEN)  0000022f2c000-0000026910fff type=7 attr=000000000000000f
(XEN)  0000026911000-00000297a7fff type=2 attr=000000000000000f
(XEN)  00000297a8000-000002a9a7fff type=1 attr=000000000000000f
(XEN)  000002a9a8000-000002a9a8fff type=2 attr=000000000000000f
(XEN)  000002a9a9000-000002a9aafff type=7 attr=000000000000000f
(XEN)  000002a9ab000-000002a9abfff type=2 attr=000000000000000f
(XEN)  000002a9ac000-000002a9acfff type=7 attr=000000000000000f
(XEN)  000002a9ad000-000002a9aefff type=2 attr=000000000000000f
(XEN)  000002a9af000-000002a9b4fff type=7 attr=000000000000000f
(XEN)  000002a9b5000-000002aa71fff type=1 attr=000000000000000f
(XEN)  000002aa72000-000002ae32fff type=4 attr=000000000000000f
(XEN)  000002ae33000-000002ae33fff type=10 attr=000000000000000f
(XEN)  000002ae34000-000002ae7dfff type=6 attr=800000000000000f
(XEN)  000002ae7e000-000002aedbfff type=4 attr=000000000000000f
(XEN)  000002aedc000-000002aeddfff type=2 attr=000000000000000f
(XEN)  000002aede000-000002aee0fff type=7 attr=000000000000000f
(XEN)  000002aee1000-000002aeeafff type=2 attr=000000000000000f
(XEN)  000002aeeb000-000002e2c0fff type=4 attr=000000000000000f
(XEN)  000002e2c1000-000002e4e1fff type=7 attr=000000000000000f
(XEN)  000002e4e2000-000002e8c0fff type=3 attr=000000000000000f
(XEN)  000002e8c1000-000002ec63fff type=0 attr=000000000000000f
(XEN)  000002ec64000-000002eddefff type=7 attr=000000000000000f
(XEN)  000002eddf000-000002f3eafff type=10 attr=000000000000000f
(XEN)  000002f3eb000-000002fe72fff type=6 attr=800000000000000f
(XEN)  000002fe73000-000002fffefff type=5 attr=800000000000000f
(XEN)  000002ffff000-000002fffffff type=4 attr=000000000000000f
(XEN)  0000100000000-00008c33fffff type=7 attr=000000000000000f
(XEN)  0000030000000-0000037ffffff type=0 attr=0000000000000000
(XEN)  00000e0000000-00000efffffff type=11 attr=8000000000000001
(XEN)  00000fe000000-00000fe010fff type=11 attr=8000000000000001
(XEN)  00000fec00000-00000fec00fff type=11 attr=8000000000000001
(XEN)  00000fee00000-00000fee00fff type=11 attr=8000000000000001
(XEN)  00000ff000000-00000ffffffff type=11 attr=8000000000000001
(XEN) Initing memory sharing.
(XEN) alt table ffff82d080658690 -> ffff82d080659c80
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) TSC deadline timer enabled
(XEN) mwait-idle: MWAIT substates: 0x142120
(XEN) mwait-idle: v0.4.1 model 0x5e
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported ed Guest
(XEN)  - VMCS shadowing
(XEN)  - VM Functions
(XEN)  - Virtualisation Exceptions
(XEN)  - Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) [VT-D]INTR-REMAP: Request device [0000:f0:1f.0] fault index 0, iommu reg = ffff82c00071e000
(XEN) [VT-D]INTR-REMAP: reason 22 - Present field in the IRTE entry is clear
(XEN) Brought up 8 CPUs
(XEN) build-id: 2e8d5e7d6382866f8230d37bb12cc752
(XEN) traps.c:3451: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] -> ffff82d0803625be
(XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> ffff82d0803625be
(XEN) ACPI sleep modes: S3
(XEN) VPMU: disabled
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Dom0 has maximum 792 PIRQs
(XEN) NX (Execute Disable) protection active
(XEN) *** LOADING DOMAIN 0 ***
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xdbd000
(XEN) ELF: phdr: paddr=0x1e00000 memsz=0x16a000
(XEN) ELF: phdr: paddr=0x1f6a000 memsz=0x1a558
(XEN) ELF: phdr: paddr=0x1f85000 memsz=0x2e4000
(XEN) ELF: memory: 0x1000000 -> 0x2269000
(XEN) ELF: note: GUEST_OS = "linux"
(XEN) ELF: note: GUEST_VERSION = "2.6"
(XEN) ELF: note: XEN_VERSION = "xen-3.0"
(XEN) ELF: note: VIRT_BASE = 0xffffffff80000000
(XEN) ELF: note: INIT_P2M = 0x8000000000
(XEN) ELF: note: ENTRY = 0xffffffff81f85180
(XEN) ELF: note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) ELF: note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) ELF: note: SUPPORTED_FEATURES = 0x90d
(XEN) ELF: note: PAE_MODE = "y
(XEN) ELF: note: SUSPEND_CANCEL = 0x1
(XEN) ELF: note: MOD_START_PFN = 0x1
(XEN) ELF: note: HV_START_LOW = 0xffff800000000000
(XEN) ELF: note: PADDR_OFFSET = 0
(XEN) ELF: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff82269000
(XEN)     virt_entry       = 0xffffffff81f85180
(XEN)     p2m_base         = 0x8000000000
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x2269000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   00000008a4000000->00000008a8000000 (7897528 pages to be allocated)
(XEN)  Init. ramdisk: 00000008c0cb4000->00000008c33ff905
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff82269000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: 0000008000000000->0000008003c74820
(XEN)  Start info:    ffffffff82269000->ffffffff822694b4
(XEN)  Page tables:   ffffffff8226a000->ffffffff8227f000
(XEN)  Boot stack:    ffffffff8227f000->ffffffff82280000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82400000
(XEN)  ENTRY ADDRESS: ffffffff81f85180
(XEN) Dom0 has maximum 8 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81dbd000
(XEN) ELF: phdr 1 at 0xffffffff81e00000 -> 0xffffffff81f6a000
(XEN) ELF: phdr 2 at 0xffffffff81f6a000 -> 0xffffffff81f84558
(XEN) ELF: phdr 3 at 0xffffffff81f85000 -> 0xffffffff820f8000
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) [VT-D]iommu_enable_translation: iommu->reg = ffff82c00071c000
(XEN) [VT-D]iommu_enable_translation: iommu->reg = ffff82c00071e000
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) [VT-D]DMAR:[DMA Write] Request device [0000:00:02.0] fault addr 0, iommu reg = ffff82c00071c000
(XEN) [VT-D]DM    l4[000] = c72a003
(XEN)     l3[000] = c729003
(XEN)     l2[000] = c728003
(XEN)     l1[000] = 3
(XEN) .......................................................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 2048kB init memory
mapping kernel into physical memory
about to get started...
[    0.000000] efi: EFI_MEMMAP is not enabled.
[    0.000000] esrt: ESRT header is not in the memory map.
(XEN) d0: Forcing write emulation on MFNs e0000-effff
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI aN) PCI add device 0000:00:17.0
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.5
(XEN) PCI add device 0000:00:1c.6
(XEN) PCI add device 0000:00:1c.7
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:00:1f.4
(XEN) PCI add device 0000:00:1f.6
(XEN) PCI add device 0000:3a:00.0
(XEN) PCI add device 0000:3b:00.0
(XEN) PCI add device 0000:3d:00.0
(XEN) d0: Forcing read-only access to MFN fed00
[   52.797424] mce: Unable to init device /dev/mcelog (rc: -16)
[   52.809790] BERT: Can't request iomem region <000000002f3eaG^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G/dev/sda2: clean, 331976/58933248 files, 6275307/235728640 blocks
[   57.290316] parport_pc parport_pc.956: Unable to set coherent dma mask: disabling DMA
[   57.290657] parport_pc parport_pc.888: Unable to set coherent dma mask: disabling DMA
[   57.290964] parport_pc parport_pc.632: Unable to set coherent dma mask: disabling DMA
[   58.273984] Error: Driver 'processor_aggregator' is already registered, aborting...
[   58.332713] Error: Driver 'processor_aggregator' is already registered, aborting...
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x004283200015828a
(XEN) traps.c:2863:d0v0 D2000dd8280 to 0x0042832000dd0280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042832000dc8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042032000dd8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 000001b2 from 0x0000000000000000 to 0x000000000000a200

Ubuntu 16.10 konrad-Super-Server hvc0

konrad-Super-Server login: [  188.181526] reboot: Restarting system
(XEN) Hardware Dom0 shutdown: rebooting machine
(XEN) APIC error on CPU0: 40(00)

... reboot.


grub2.cfg (with some lines removed)

serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input serial
terminal_output serial
### BEGIN /usr/local/etc/grub.d/20_linux_xen ###
menuentry 'Ubuntu GNU/Linux, with Xen hypervisor' --class ubuntu --class gnu-linux --class gnu --class os --class xen $menuentry_id_option 'xen-gnulinux-simple-3f1e35fb-9907-48d1-b621-42369d5
ad88f' {
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  3f1e35fb-9907-48d1-b621-42369d5ad88f
        else
          search --no-floppy --fs-uuid --set=root 3f1e35fb-9907-48d1-b621-42369d5ad88f
        fi
        echo    'Loading Xen xen ...'
        if [ "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then
            xen_rm_opts=
        else
            xen_rm_opts="no-real-mode edd=off"
        fi
        multiboot2      /boot/xen.gz placeholder loglvl=all guest_loglvl=all dom0_mem=max:8G console=com1,vga com1=115200,8n1 crashkernel=512M@64M  ${xen_rm_opts}
        echo    'Loading Linux 4.8.0-41-generic ...'
        module2 /boot/vmlinuz-4.8.0-41-generic placeholder root=/dev/sda2 ro console=hvc0 loglevel=8 initcall_debug 
        module2 /boot/initrd.img-4.8.0-41-generic
}


^[[25;1H^[[1;33;40mfs0:\EFI\grub2> grub2^[[25;22H^[[0;37;40m
^[[0;30;47mWelcome to GRUB!

^[[0;37;40m^[[H^[[J^[[1;1H^[[?25l^[[m^[[H^[[J^[[1;1H^[[2;28HGNU GRUB  version 2.02~rc1

^[[m^[[4;2H+------------------------------------------------16;79H|^[[17;2H+----------------------------------------------------------------------------+^[[m^[[18;2H^[[19;2H^[[m     Use the ^ and v keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.                           ^[[5;80H ^[[7m^[[5;3H*Ubuntu GNU/Linux, with Xen hypervisor                                      ^[[m^[[5;78H^[[m^[[m^[[6;3H Advanced options for Ubuntu GNU/Linux (with Xen hypervisor)                ^[[m^[[6;78H^[[m^[[m^[[7;3H                                                                            ^[[m^[[7;78H^[[m^[[m^[[8;3H                                                                            ^[[m^[[8;78H^[[m^[[m^[[9;3H                                                                            ^[[m^[[9;78H^[[m^[[m^[[10;3H                                                                            ^[[m^[[10;78H^[[m^[[m^[[11;3H                                                                            ^[[m^[[11;78H^[[m^[[m^[[12;3H                                                                            ^[[m^[[12;78H^[[m^[[m^[[13;3H                                                                            ^[[m^[[13;78H^[[m^[[m^[[14;3H                                                                            ^[[m^[[14;78H^[[m^[[m^[[15;3H                                                                            ^[[m^[[15;78H^[[m^[[m^[[16;3H                                                                            ^[[m^[[16;78H^[[m^[[16;80H ^[[5;78H^[[22;1H   The highlighted entry will be executed automatically in 10s.                ^[[5;78H^[[22;1H   The highlighted entry will be executed automatically in 9s.                 ^[[5;78H^[[22;1H                                                                               ^[[23;1H                                                                               ^[[5;78H^[[?25h^[[H^[[J^[[1;1H^[[H^[[J^[[1;1H
Loading Xen xen ...
Loading Linux 4.8.0-41-generic ...
 Xen 4.9-unstable
(XEN) Xen version 4.9-unstable (konrad@) (gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005) debug=y  Tue Mar  7 22~rc1
(XEN) Command line: placeholder loglvl=all guest_loglvl=all dom0_mem=max:8G console=com1,vga com1=115200,8n1 crashkernel=512M@64M no-real-mode edd=off
(XEN) Xen image load base address: 0x2a200000
(XEN) Video information:
(XEN)  VGA is graphics mode 1280x1024, 32 bpp
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) EFI RAM map:
(XEN)  0000000000000000 - 0000000000058000 (usable)
(XEN)  0000000000058000 - 0000000000059000 (reserved)
(XEN)  0000000000059000 - 000000000009f000 (usable)
(XEN)  000000000009f000 - 00000000000a0000 (reserved)
(XEN)  0000000000100000 - 000000002ae33000 (usable)
(XEN)  000000002ae33000 - 000000002ae34000 (ACPI NVS)
(XEN)  000000002ae34000 - 000000002ae7e000 (reserved)
(XEN)  000000002ae7e000 - 000000002e8c1000 (usable)
(XEN)  000000002e8c1000 - 000000002ec64000 (reserved)
(XEN)  000000002ec64000 - 000000002eddf000 (usable)
(XEN)  000000002eddf000 - 000000002f3eb000 (ACPI NVS)
(XEN)  000000002f3eb000 - 000000002ffff000 (reserved)
(XEN)  000000002ffff000 - 0000000030000000 (usable)
(XEN)  0000000030000000 - 0000000038000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fe000000 - 00000000fe011000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 00000008c3400000 (usable)
(XEN) Kdump: 512MB (524288kB) at 0x4000000
(XEN) ACPI: RSDP 2EE67000, 0024 (r2 SUPERM)
(XEN) ACPI: XSDT 2EE670B0, 00DC (r1 SUPERM   SUPERM  1072009 AMI     10013)
(XEN) EE8A5A8, 010C (r5                  1072009 AMI     10013)
(XEN) ACPI: DSDT 2EE67220, 23387 (r2 SUPERM SMCI--MB  1072009 INTL 20120913)
(XEN) ACPI: FACS 2F3E9F80, 0040
(XEN) ACPI: APIC 2EE8A6B8, 00BC (r3                  1072009 AMI     10013)
(XEN) ACPI: FPDT 2EE8A778, 0044 (r1                  1072009 AMI     10013)
(XEN) ACPI: FIDT 2EE8A7C0, 009C (r1                  1072009 AMI     10013)
(XEN) ACPI: MCFG 2EE8A860, 003C (r1 SUPERM SMCI--MB  1072009 MSFT       97)
(XEN) ACPI: HPET 2EE8A8A0, 0038 (r1 SUPERM SMCI--MB  1072009 AMI.    5000B)
(XEN) ACPI: LPIT 2EE8A8D8, 0094 (r1 INTEL       SKL        0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8A970, 0248 (r2 INTEL  sensrhub        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8ABB8, 2BAE (r2 INTEL  PtidDevc     1000 INTL 20120913)
(XEN) ACPI: SSDT 2EE8D768, 0BE3 (r2 INTEL  Ther_Rvp     1000 INTL 20120913)
(XEN) ACPI: DBGP 2EE8E350, 0034 (r1 INTEL                  0 MSFT       5F)
(XEN) ACPI: DBG2 2EE8E388, 0054 (r0 INTEL                  0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8E3E0, 06FD (r2  INTEL xh_rvp08        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8EAE0, 546C (r2 SaSsdt  SaSsdt      3000 INTL 20120913)
(XEN) ACPI: UEFI 2EE93F50, 0042 (r1                        0             0)
(XEN) ACPI: SSDT 2EE93F98, 0E73 (r2 CpuRef  CpuSsdt     3000 INTL 20120913)
(XEN) ACPI: DMAR 2EE94E10, 00A8 (r1 INTEL      SKL         1 INTL        1)
(XEN) ACPI: ASF! 2EE94EB8, 00A5 (r32 INTEL       HCG        1 TFSM    F4240)
(XEN) ACPI: EINJ 2EE94F60, 0130 (r1    AMI AMI.EINJ        0 AMI.        0)
(XEN) ACPI: ERST 2EE95090, 0230 (r1  AMIER AMI.ERST        0 AMI.        0)
(XEN) ACPI: BERT 2EE952C0, 0030 (r1    AMI AMI.BERT        0 AMI.        0)
(XEN) ACPI: HEST 2EE952F0, 027C (r1    AMI AMI.HEST        0 AMI.        0)
(XEN) ACPI: BGRT 2EE95570, 0038 (r1 SUPERM SMCI--MB  1072009 AMI     10013)
(XEN) System RAM: 32541MB (33322560kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-00000008c3400000
(XEN) Domain heap initialised
(XEN) vesafb: framebuffer at 0x90000000, mapped to 0xffff82c000201000, using 5120k, total 5120k
(XEN) vesafb: mode is 1280x1024(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (32 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT - 2f3e9f80/0000000000000000, using 32
(XEN) ACPI:             wakeup_vec[2f3e9f8c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) [VT-D]  RMRR address range 38400000..3abfffff not in reserved memory; need "iommu_inclusive_mapping=1"?
(XEN) Xen ERST support is initialized.
(XEN) HEST: Table parsing has been initialized
(XEN) ACPI: BGRT: invalidating v1 imag enabling x2APIC (upon firmware request)
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank 0 extended MCE MSR 0
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 23.999MHz HPET
(XEN) Detected 3504.201 MHz processor.
(XEN) EFI memory map:
(XEN)  0000000000000-0000000000000f
(XEN)  0000000008000-000000000bfff type=2 attr=000000000000000f
(XEN)  000000000c000-0000000047fff type=7 attr=000000000000000f
(XEN)  0000000048000-0000000057fff type=2 attr=000000000000000f
(XEN)  0000000058000-0000000058fff type=0 attr=000000000000000f
(XEN)  0000000059000-000000005efff type=7 attr=000000000000000f
(XEN)  000000005f000-000000005ffff type=4 attr=000000000000000f
(XEN)  0000000060000-000000009efff type=3 attr=000000000000000f
(XEN)  000000009f000-000000009ffff type=0 attr=000000000000000f
(XEN)  0000000100000-0000007205fff type=2 attr=000000000000000f
(XEN)  0000007206000-000001842cfff type=7 attr=000000000000000f
(XEN)  000001842d000-0000022eebfff type=2 attr=000000000000000f
(XEN)  0000022eec000-0000022f2bfff type=4 attr=000000000000000f
(XEN)  0000022f2c000-000002a3fffff type=7 attr=000000000000000f
(XEN)  000002a400000-000002a78bfff type=2 attr=000000000000000f
(XEN)  000002a78c000-000002a87efff type=7 attr=000000000000000f
(XEN)  000002a87f000-000002a8a4fff type=2 attr=000000000000000f
(XEN)  000002a8a5000-000002a9a7fff type=1 attr=000000000000000f
(XEN)  000002a9a8000-000002a9a8fff type=2 attr=000000000000000f
(XEN)  000002a9a9000-000002a9aafff type=7 attr=000000000000000f
(XEN)  000002a9ab000-000002a9abfff type=2 attr=000000000000000f
(XEN)  000002a9ac000-000002a9acfff type=7 attr=000000000000000f
(XEN)  000002a9ad000-000002a9aefff type=2 attr=000000000000000f
(XEN)  000002a9af000-000002a9b4fff type=7 attr=000000000000000f
(XEN)  000002a9b5000-000002aa71fff type=1 attr=000000000000000f
(XEN)  000002aa72000-000002ae32fff type=4 attr=000000000000000f
(XEN)  000002ae33000-000002ae33fff type=10 attr=000000000000000f
(XEN)  000002ae34000-000002ae7dfff type=6 attr=800000000000000f
(XEN)  000002ae7e000-000002aedbfff type=4 attr=000000000000000f
(XEN)  000002aedc000-000002aeddfff type=2 attr=000000000000000f
(XEN)  000002aede000-000002aee0fff type=7 attr=000000000000000f
(XEN)  000002aee1000-000002aeeafff type=2 attr=000000000000000f
(XEN)  000002aeeb000-000002e2c0fff type=4 attr=000000000000000f
(XEN)  000002e2c1000-000002e4e1fff type=7 attr=000000000000000f
(XEN)  000002e4e2000-000002e8c0fff type=3 attr=000000000000000f
(XEN)  000002e8c1000-000002ec63fff type=0 attr=000000000000000f
(XEN)  000002ec64000-000002eddefff type=7 attr=000000000000000f
(XEN)  000002eddf000-000002f3eafff type=10 attr=000000000000000f
(XEN)  000002f3eb000-000002fe72fff type=6 attr=800000000000000f
(XEN)  000002fe73000-000002fffefff type=5 attr=800000000000000f
(XEN)  000002ffff000-000002fffffff type=4 attr=000000000000000f
(XEN)  0000100000000-00008c33fffff type=7 attr=000000000000000f
(XEN)  0000030000000-0000037ffffff type=0 attr=0000000000000000
(XEN)  00000e0000000-00000efffffff type=11 attr=8000000000000001
(XEN)  00000fe000000-00000fe010fff type=11 attr=8000000000000001
(XEN)  00000fec00000-00000fec00fff type=11 attr=8000000000000001
(XEN)  00000fee00000-00000fee00fff type=11 attr=8000000000000001
(XEN)  00000ff000000-00000ffffffff type=11 attr=8000000000000001
(XEN) Initing memory sharing.
(XEN) alt table ffff82d080429678 -> ffff82d08042ac68
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 64 KiB.
(XEN) mwait-idle: MWAIT substates: 0x142120
(XEN) mwait-idle: v0.4.1 model 0x5e
(XEN) mwait-idle: lapic_timer_reliableXEN)  - APIC TPR shadow
(XEN)  - Extended Page Tables (EPT)
(XEN)  - Virtual-Processor Identifiers (VPID)
(XEN)  - Virtual NMI
(XEN)  - MSR direct-access bitmap
(XEN)  - Unrestricted Guest
(XEN)  - VMCS shadowing
(XEN)  - VM Functions
(XEN)  - Virtualisation Exceptions
(XEN)  - Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) [VT-D]INTR-REMAP: Request device [0000:f0:1f.0] fault index 0, iommu reg = ffff82c00071e000
(XEN) [VT-D]INTR-REMAP: reason 22 - Present field in the IRTE entry is clear
(XEN) Brought up 8 CPUs
(XEN) build-id: 5fc07965d87beee52fcec64056ea877408cfef2a
(XEN) traps.c:3451: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] -> ffff82d0803625d3
(XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> ffff82d0803625d3
(XEN) ACPI sleep modes: S3
(XEN) VPMU: *
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xdbd000
(XEN) ELF: phdr: paddr=0x1e00000 memsz=0x16a000
(XEN) ELF: phdr: paddr=0x1f6a000 memsz=0x1a558
(XEN) ELF: phdr: paddr=0x1f85000 memsz=0x2e4000
(XEN) ELF: memory: 0x1000000 -> 0x2269000
(XEN) ELF: note: GUEST_OS = "linux"
(XEN) ELF: note: GUEST_VERSION = "2.6"
(XEN) ELF: note: XEN_VERSION = "xen-3.0"
(XEN) ELF: note: VIRT_BASE = 0xffffffff80000000
(XEN) ELF: note: INIT_P2M = 0x8000000000
(XEN) ELF: note: ENTRY = 0xffffffff81f85180
(XEN) ELF: note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) ELF: note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) ELF: note: SUPPORTED_FEATURES = 0x90d
(XEN) ELF: note: PAE_MODE = "yric"
(XEN) ELF: note: unknown (0xd)
(XEN) ELF: note: SUSPEND_CANCEL = 0x1
(XEN) ELF: note: MOD_START_PFN = 0x1
(XEN) ELF: note: HV_START_LOW = 0xffff800000000000
(XEN) ELF: note: PADDR_OFFSET = 0
(XEN) ELF: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff82269000
(XEN)     virt_entry       = 0xffffffff81f85180
(XEN)     p2m_base         = 0x8000000000
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x2269000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   00000008a0000000->00000008a4000000 (2053663 pages to be allocated)
(XEN)  Init. ramdisk: 00000008bca1f000->00000008c3400000
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff82269000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: 0000008000000000->0000008001000000
(XEN)  Start info:    ffffffff82269000->ffffffff822694b4
(XEN)  Page tables:   ffffffff8226a000->ffffffff8227f000
(XEN)  Boot stack:    ffffffff8227f000->ffffffff82280000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82400000
(XEN)  ENTRY ADDRESS: ffffffff81f85180
(XEN) Dom0 has maximum 8 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81dbd000
(XEN) ELF: phdr 1 at 0xffffffff81e00000 -> 0xffffffff81f6a000
(XEN) ELF: phdr 2 at 0xffffffff81f6a000 -> 0xffffffff81f84558
(XEN) ELF: phdr 3 at 0xffffffff81f85000 -> 0xffffffff820f8000
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) .......................................................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 360kB init memory
mapping kernel into physical memory
about to get started...
[    0.000000] Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017 (Ubuntu 4.8.0-41.44-generic 4.8.17)
[    0.000000] Command line: placeholder root=/dev/sda2 ro console=hvc0 loglevel=8 initcall_debug
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] Released 0 page(s)
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] Xen: [mem 0x0000000000000000-0x0000000000057fff] usable
[    0.000000] Xen: [mem 0x0000000000058000-0x0000000000058fff] reserved
[    0.000000] Xen: [mem 0x0000000000059000-0x000000000009efff] usable
[    0.000000] Xen: [mem 0x000000000009f000-0x00000000000fffff] reserved
[    0.000000] Xen: [mem 0x0000000000100000-0x000000002ae32fff] usable
[    0.000000] Xen: [mem 0x000000002ae33000-0x000000002ae33fff] ACPI NVS
[    0.000000] Xen: [mem 0x000000002ae34000-0x000000002ae7dfff] reserved
[    0.000000] Xen: [mem 0x000000002ae7e000-0x000000002e8c0fff] usable
[    0.000000] Xen: [mem 0x000000002e8c1000-0x000000002ec63fff] reserved
[    0.000000] Xen: [mem 0x000000002ec64000-0x000000002eddefff] usable
[    0.000000] Xen: [mem 0x000000002eddf000-0x000000002f3eafff] ACPI NVS
[    0.000000] Xen: [mem 0x000000002f3eb000-0x000000002fffefff] reserved
[    0.000000] Xen: [mem 0x000000002ffff000-0x000000002fffffff] usable
[    0.000000] Xen: [mem 0x0000000030000000-0x0000000037ffffff] reserved
[    0.000000] Xen: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] Xen: [mem 0x00000000fe000000-0x00000000fe010fff] reserved
[    0.000000] Xen: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] Xen: [mem 0x00000000fed90000-0x00000000fed91fff] reserved
[    0.000000] Xen: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] Xen: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] Xen: [mem 0x0000000100000000-0x00000002d166ffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v2.40 by American Megatrends
[    0.000000] efi:  ESRT=0x2fc39d98  ACPI=0x2ee67000  ACPI 2.0=0x2ee67000  SMBIOS=0xf05e0  SMBIOS 3.0=0x2fb85000  MPS=0xfca00 
[    0.000000] efi: EFI_MEMMAP is not enabled.
[    0.000000] esrt: ESRT header is not in the memory map.
[    0.000000] SMBIOS 3.0.0 present.
[    0.000000] Hypervisor detected: Xen
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x2d1670 max_arch_pfn = 0x400000000
[    0.000000] MTRR: Disabled
[    0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[    0.000000] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WC  WP  UC  UC  
[    0.000000] e820: last_pfn = 0x30000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] BRK [0x0223d000, 0x0223dfff] PGTABLE
[    0.000000] BRK [0x0223e000, 0x0223efff] PGTABLE
[    0.000000] BRK [0x0223f000, 0x0223ffff] PGTABLE
[    0.000000] BRK [0x02240000, 0x02240fff] PGTABLE
[    0.000000] BRK [0x02241000, 0x02241fff] PGTABLE
[    0.000000] BRK [0x02242000, 0x02242fff] PGTABLE
[    0.000000] BRK [0x02243000, 0x02243fff] PGTABLE
[    0.000000] BRK [0x02244000, 0x02244fff] PGTABLE
[    0.000000] BRK [0x02245000, 0x02245fff] PGTABLE
[    0.000000] BRK [0x02246000, 0x02246fff] PGTABLE
[    0.000000] BRK [0x02247000, 0x02247fff] PGTABLE
[    0.000000] BRK [0x02248000, 0x02248fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x04000000-0x0a9e0fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000002EE67000 000024 (v02 SUPERM)
[    0.000000] ACPI: XSDT 0x000000002EE670B0 0000DC (v01 SUPERM SUPERM   01072009 AMI  00010013)
[    0.000000] ACPI: FACP 0x000000002EE8A5A8 00010C (v05                 01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 0x000000002EE67220 023387 (v02 SUPERM SMCI--MB 01072009 INTL 20120913)
[    0.000000] ACPI: FACS 0x000000002F3E9F80 000040
[    0.000000] ACPI: APIC 0x000000002EE8A6B8 0000BC (v03                 01072009 AMI  00010013)
[    0.000000] ACPI: FPDT 0x000000002EE8A778 000044 (v01                 01072009 AMI  00010013)
[    0.000000] ACPI: FIDT 0x000000002EE8A7C0 00009C (v01                 01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 0x000000002EE8A860 00003C (v01 SUPERM SMCI--MB 01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 0x000000002EE8A8A0 000038 (v01 SUPERM SMCI--MB 01072009 AMI. 0005000B)
[    0.000000] ACPI: LPIT 0x000000002EE8A8D8 000094 (v01 INTEL  SKL      00000000 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000002EE8A970 000248 (v02 INTEL  sensrhub 00000000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8ABB8 002BAE (v02 INTEL  PtidDevc 00001000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8D768 000BE3 (v02 INTEL  Ther_Rvp 00001000 INTL 20120913)
[    0.000000] ACPI: DBGP 0x000000002EE8E350 000034 (v01 INTEL           00000000 MSFT 0000005F)
[    0.000000] ACPI: DBG2 0x000000002EE8E388 000054 (v00 INTEL           00000000 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000002EE8E3E0 0006FD (v02 INTEL  xh_rvp08 00000000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8EAE0 00546C (v02 SaSsdt SaSsdt   00003000 INTL 20120913)
[    0.000000] ACPI: UEFI 0x000000002EE93F50 000042 (v01                 00000000      00000000)
[    0.000000] ACPI: SSDT 0x000000002EE93F98 000E73 (v02 CpuRef CpuSsdt  00003000 INTL 20120913)
[    0.000000] ACPI: RMAD 0x000000002EE94E10 0000A8 (v01 INTEL  SKL      00000001 INTL 00000001)
[    0.000000] ACPI: ASF! 0x000000002EE94EB8 0000A5 (v32 INTEL   HCG     00000001 TFSM 000F4240)
[    0.000000] ACPI: EINJ 0x000000002EE94F60 000130 (v01 AMI    AMI.EINJ 00000000 AMI. 00000000)
[    0.000000] ACPI: ERST 0x000000002EE95090 000230 (v01 AMIER  AMI.ERST 00000000 AMI. 00000000)
[    0.000000] ACPI: BERT 0x000000002EE952C0 000030 (v01 AMI    AMI.BERT 00000000 AMI. 00000000)
[    0.000000] ACPI: HEST 0x000000002EE952F0 00027C (v01 AMI    AMI.HEST 00000000 AMI. 00000000)
[    0.000000] ACPI: BGRT 0x000000002EE95570 000038 (v01 SUPERM SMCI--MB 01072009 AMI  00010013)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Setting APIC routing to Xen PV.
[    0.000000] NUMA turned off
[    0.000000] Faking a node at [mem 0x0000000000000000-0x00000002d166ffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x1ff00e000-0x1ff012fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000002d166ffff]
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x0000000000057fff]
[    0.000000]   node   0: [mem 0x0000000000059000-0x000000000009efff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000002ae32fff]
[    0.000000]   node   0: [mem 0x000000002ae7e000-0x000000002e8c0fff]
[    0.000000]   node   0: [mem 0x000000002ec64000-0x000000002eddefff]
[    0.000000]   node   0: [mem 0x000000002ffff000-0x000000002fffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x00000002d166ffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x00000002d166ffff]
[    0.000000] On node 0 totalpages: 2097151
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 2920 pages used for memmap
[    0.000000]   DMA32 zone: 186866 pages, LIFO batch:31
[    0.000000]   Normal zone: 29786 pages used for memmap
[    0.000000]   Normal zone: 1906288 pages, LIFO batch:31
[    0.000000] p2m virtual area at ffffc90000000000, size is 40000000
[    0.000000] Remapped 857712 page(s)
[    0.000000] Reserving Intel graphics memory at 0x0000000038c00000-0x000000003abfffff
[    0.000000] ACPI: PM-Timer IO Port: 0x1808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x00058000-0x00058fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x2ae33000-0x2ae33fff]
[    0.000000] PM: Registered nosave memory: [mem 0x2ae34000-0x2ae7dfff]
[    0.000000] PM: Registered nosave memory: [mem 0x2e8c1000-0x2ec63fff]
[    0.000000] PM: Registered nosave memory: [mem 0x2eddf000-0x2f3eafff]
[    0.000000] PM: Registered nosave memory: [mem 0x2f3eb000-0x2fffefff]
[    0.000000] PM: Registered nosave memory: [mem 0x30000000-0x37ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0x38000000-0x38bfffff]
[    0.000000] PM: Registered nosave memory: [mem 0x38c00000-0x3abfffff]
[    0.000000] PM: Registered nosave memory: [mem 0x3ac00000-0xdfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xe0000000-0xefffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf0000000-0xfdffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe000000-0xfe010fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe011000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfed8ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed90000-0xfed91fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed92000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfeefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfef00000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0x3ac00000-0xdfffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on Xen
[    0.000000] Xen version: 4.9-unstable (preserve-AD)
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] percpu: Embedded 36 pages/cpu @ffff8802d1400000 s107864 r8192 d31400 u262144
[    0.000000] pcpu-alloc: s107864 r8192 d31400 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] xen: PV spinlocks enabled
[    0.000000] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes)
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 2064360
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: placeholder root=/dev/sda2 ro console=hvc0 loglevel=8 initcall_debug
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] software IO TLB [mem 0x2cd400000-0x2d1400000] (64MB) mapped at [ffff8802cd400000-ffff8802d13fffff]
[    0.000000] Memory: 8027612K/8388604K available (8852K kernel code, 1441K rwdata, 3828K rodata, 1556K init, 1296K bss, 360992K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=8
[    0.000000] Using NULL legacy PIC
[    0.000000] NR_IRQS:33024 nr_irqs:488 0
[    0.000000] xen:events: Using FIFO-based ABI
[    0.000000] xen: --> pirq=1 -> irq=1 (gsi=1)
[    0.000000] xen: --> pirq=2 -> irq=2 (gsi=2)
[    0.000000] xen: --> pirq=3 -> irq=3 (gsi=3)
[    0.000000] xen: --> pirq=4 -> irq=4 (gsi=4)
[    0.000000] xen: --> pirq=5 -> irq=5 (gsi=5)
[    0.000000] xen: --> pirq=6 -> irq=6 (gsi=6)
[    0.000000] xen: --> pirq=7 -> irq=7 (gsi=7)
[    0.000000] xen: --> pirq=8 -> irq=8 (gsi=8)
[    0.000000] xen: --> pirq=9 -> irq=9 (gsi=9)
[    0.000000] xen: --> pirq=10 -> irq=10 (gsi=10)
[    0.000000] xen: --> pirq=11 -> irq=11 (gsi=11)
[    0.000000] xen: --> pirq=12 -> irq=12 (gsi=12)
[    0.000000] xen: --> pirq=13 -> irq=13 (gsi=13)
[    0.000000] xen: --> pirq=14 -> irq=14 (gsi=14)
[    0.000000] xen: --> pirq=15 -> irq=15 (gsi=15)
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [hvc0] enabled
[    0.000000] clocksource: xen: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000000] Xen: using vcpuop timer interface
[    0.000000] installing Xen timer for CPU 0
[    0.000000] tsc: Unable to calibrate against PIT
[    0.000000] tsc: HPET/PMTIMER calibration failed
[    0.000000] tsc: Detected 3504.200 MHz processor
[   11.288098] Calibrating delay loop (skipped), value calculated using timer frequency.. 7008.40 BogoMIPS (lpj=14016800)
[   11.288103] pid_max: default: 32768 minimum: 301
[   11.288121] ACPI: Core revision 20160422
[   11.368442] ACPI: 7 ACPI AML tables successfully acquired and loaded
[   11.368445] 
[   11.368674] Security Framework initialized
[   11.368676] Yama: becoming mindful.
[   11.368699] AppArmor: AppArmor initialized
[   11.369679] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[   11.371018] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[   11.371462] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
[   11.371479] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
[   11.371789] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[   11.371791] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[   11.371795] CPU: Physical Processor ID: 0
[   11.371796] CPU: Processor Core ID: 0
[   11.371800] mce: CPU supports 2 MCE banks
[   11.371813] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8
[   11.371815] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4
[   11.372050] Freeing SMP alternatives memory: 32K (ffffffff820ef000 - ffffffff820f7000)
[   11.373699] efi_bgrt: Ignoring BGRT: null image address
[   11.373702] ftrace: allocating 33435 entries in 131 pages
[   11.383774] cpu 0 spinlock event irq 25
[   11.383779] smpboot: APIC(0) Converting physical 0 to logical package 0
[   11.383783] smpboot: Max logical packages: 1
[   11.383786] Could not initialize VPMU for cpu 0, error -95
[   11.383797] calling  trace_init_flags_sys_exit+0x0/0xf @ 1
[   11.383800] initcall trace_init_flags_sys_exit+0x0/0xf returned 0 after 0 usecs
[   11.383803] calling  trace_init_flags_sys_enter+0x0/0xf @ 1
[   11.383805] initcall trace_init_flags_sys_enter+0x0/0xf returned 0 after 0 usecs
[   11.383808] calling  init_hw_perf_events+0x0/0x567 @ 1
[   11.383810] Performance Events: unsupported p6 CPU model 94 no PMU driver, software events only.
[   11.383815] initcall init_hw_perf_events+0x0/0x567 returned 0 after 3 usecs
[   11.383817] calling  xen_init_spinlocks_jump+0x0/0x29 @ 1
[   11.383820] initcall xen_init_spinlocks_jump+0x0/0x29 returned 0 after 0 usecs
[   11.383822] calling  init_real_mode+0x0/0x1ad @ 1
[   11.383838] initcall init_real_mode+0x0/0x1ad returned 0 after 13 usecs
[   11.383841] calling  trace_init_perf_perm_irq_work_exit+0x0/0x13 @ 1
[   11.383843] initcall trace_init_perf_perm_irq_work_exit+0x0/0x13 returned 0 after 0 usecs
[   11.383846] calling  register_trigger_all_cpu_backtrace+0x0/0x16 @ 1
[   11.383849] initcall register_trigger_all_cpu_backtrace+0x0/0x16 returned 0 after 0 usecs
[   11.383852] calling  numachip_system_init+0x0/0x67 @ 1
[   11.383855] initcall numachip_system_init+0x0/0x67 returned 0 after 0 usecs
[   11.383858] calling  kvm_spinlock_init_jump+0x0/0x46 @ 1
[   11.383863] initcall kvm_spinloc[   12.621291] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x3282d0e4408, max_idle_ns: 440795379196 ns
[   12.705220] usb 3-1: new low-speed USB device number 2 using xhci_hcd
[   13.016619] i8042: No controller found
[   13.016636] initcall i8042_init+0x0/0x439 returned -19 after 1159929 usecs
[   13.016639] calling  mousedev_init+0x0/0x81 @ 1
[   13.016788] mousedev: PS/2 mouse device common for all mice
[   13.016818] initcall mousedev_init+0x0/0x81 returned 0 after 171 usecs
[   13.016821] calling  evdev_init+0x0/0x12 @ 1
[   13.017034] initcall evdev_init+0x0/0x12 returned 0 after 206 usecs
[   13.017037] calling  atkbd_init+0x0/0x27 @ 1
[   13.017045] initcall atkbd_init+0x0/0x27 returned 0 after 6 usecs
[   13.017048] calling  elants_i2c_driver_init+0x0/0x14 @ 1
[   13.017070] initcall elants_i2c_driver_init+0x0/0x14 returned 0 after 6 usecs
[   13.017073] calling  uinput_init+0x0/0x12 @ 1
[   13.017109] initcall uinput_init+0x0/0x12 returned 0 after 32 usecs
[   13.017112] calling  cmos_init+0x0/0x69 @ 1
[   13.017185] rtc_cmos 00:04: RTC can wake from S4
[   13.017554] rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
[   13.017683] rtc_cmos 00:04: alarms up to one month, y3k, 242 bytes nvram
[   13.017688] initcall cmos_init+0x0/0x69 returned 0 after 560 usecs
[   13.017691] calling  i2c_dev_init+0x0/0xb9 @ 1
[   13.017693] i2c /dev entries driver
[   13.017696] initcall i2c_dev_init+0x0/0xb9 returned 0 after 2 usecs
[   13.017699] calling  restart_poweroff_driver_init+0x0/0x14 @ 1
[   13.017706] initcall restart_poweroff_driver_init+0x0/0x14 returned 0 after 3 usecs
[   13.017708] calling  dm_init+0x0/0x46 @ 1
[   13.017733] device-mapper: uevent: version 1.0.3
[   13.017802] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[   13.017805] initcall dm_init+0x0/0x46 returned 0 after 92 usecs
[   13.017807] calling  cpufreq_gov_powersave_init+0x0/0x12 @ 1
[   13.017809] initcall cpufreq_gov_powersave_init+0x0/0x12 returned -19 after 0 usecs
[   13.017824] calling  cpufreq_gov_userspace_init+0x0/0x12 @ 1
[   13.017826] initcall cpufreq_gov_userspace_init+0x0/0x12 returned -19 after 0 usecs
[   13.017829] calling  cpufreq_gov_dbs_init+0x0/0x12 @ 1
[   13.017830] initcall cpufreq_gov_dbs_init+0x0/0x12 returned -19 after 0 usecs
[   13.017847] calling  cpufreq_gov_dbs_init+0x0/0x12 @ 1
[   13.017849] initcall cpufreq_gov_dbs_init+0x0/0x12 returned -19 after 0 usecs
[   13.017851] calling  intel_pstate_init+0x0/0x434 @ 1
[   13.017854] intel_pstate: Intel P-state driver initializing
[   13.017862] initcall intel_pstate_init+0x0/0x434 returned -19 after 9 usecs
[   13.017879] calling  ledtrig_disk_init+0x0/0x2e @ 1
[   13.017881] initcall ledtrig_disk_init+0x0/0x2e returned 0 after 0 usecs
[   13.017884] calling  ledtrig_mtd_init+0x0/0x2e @ 1
[   13.017886] initcall ledtrig_mtd_init+0x0/0x2e returned 0 after 0 usecs
[   13.017901] calling  ledtrig_cpu_init+0x0/0xbd @ 1
[   13.018096] ledtrig-cpu: registered to indicate activity on CPUs
[   13.018099] initcall ledtrig_cpu_init+0x0/0xbd returned 0 after 191 usecs
[   13.018101] calling  ledtrig_panic_init+0x0/0x39 @ 1
[   13.018104] initcall ledtrig_panic_init+0x0/0x39 returned 0 after 0 usecs
[   13.018178] calling  efivars_sysfs_init+0x0/0x210 @ 1
[   13.018180] EFI Variables Facility v0.08 2004-May-17
[   13.021393] initcall efivars_sysfs_init+0x0/0x210 returned 0 after 3137 usecs
[   13.021396] calling  esrt_sysfs_init+0x0/0x32c @ 1
[   13.021398] initcall esrt_sysfs_init+0x0/0x32c returned -38 after 0 usecs
[   13.021401] calling  skein_generic_init+0x0/0x56 @ 1
[   13.021518] initcall skein_generic_init+0x0/0x56 returned 0 after 112 usecs
[   13.021521] calling  intel_pmc_core_driver_init+0x0/0x1b @ 1
[   13.021544] initcall intel_pmc_core_driver_init+0x0/0x1b returned 0 after 6 usecs
[   13.021561] calling  gpio_clk_driver_init+0x0/0x14 @ 1
[   13.021567] initcall gpio_clk_driver_init+0x0/0x14 returned 0 after 3 usecs
[   13.021582] calling  extcon_class_init+0x0/0x18 @ 1
[   13.021586] initcall extcon_class_init+0x0/0x18 returned 0 after 1 usecs
[   13.021589] calling  powercap_init+0x0/0x28b @ 1
[   13.021617] initcall powercap_init+0x0/0x28b returned 0 after 25 usecs
[   13.021620] calling  pm_check_save_msr+0x0/0x20 @ 1
[   13.021623] initcall pm_check_save_msr+0x0/0x20 returned 0 after 0 usecs
[   13.021625] calling  sock_diag_init+0x0/0x35 @ 1
[   13.021645] initcall sock_diag_init+0x0/0x35 returned 0 after 16 usecs
[   13.021647] calling  blackhole_init+0x0/0x12 @ 1
[   13.021650] initcall blackhole_init+0x0/0x12 returned 0 after 0 usecs
[   13.021665] calling  gre_offload_init+0x0/0x49 @ 1
[   13.021667] initcall gre_offload_init+0x0/0x49 returned 0 after 0 usecs
[   13.021670] calling  sysctl_ipv4_init+0x0/0x4c @ 1
[   13.021711] initcall sysctl_ipv4_init+0x0/0x4c returned 0 after 38 usecs
[   13.021726] calling  cubictcp_register+0x0/0x5a @ 1
[   13.021728] initcall cubictcp_register+0x0/0x5a returned 0 after 0 usecs
[   13.021730] calling  inet6_init+0x0/0x335 @ 1
[   13.021781] NET: Registered protocol family 10
[   13.021960] initcall inet6_init+0x0/0x335 returned 0 after 221 usecs
[   13.021963] calling  packet_init+0x0/0x42 @ 1
[   13.021964] NET: Registered protocol family 17
[   13.021967] initcall packet_init+0x0/0x42 returned 0 after 2 usecs
[   13.021970] calling  dcbnl_init+0x0/0x4d @ 1
[   13.021972] initcall dcbnl_init+0x0/0x4d returned 0 after 0 usecs
[   13.021974] calling  init_dns_resolver+0x0/0xd3 @ 1
[   13.021978] Key type dns_resolver registered
[   13.021980] initcall init_dns_resolver+0x0/0xd3 returned 0 after 4 usecs
[   13.021983] calling  mcheck_init_device+0x0/0x181 @ 1
[   13.022109] mce: Unable to init device /dev/mcelog (rc: -16)
[   13.022112] initcall mcheck_init_device+0x0/0x181 returned -16 after 122 usecs
[   13.022128] calling  tboot_late_init+0x0/0x27f @ 1
[   13.022130] initcall tboot_late_init+0x0/0x27f returned 0 after 0 usecs
[   13.022132] calling  mcheck_late_init+0x0/0x5b @ 1
[   13.022137] initcall mcheck_late_init+0x0/0x5b returned 0 after 2 usecs
[   13.022139] calling  severities_debugfs_init+0x0/0x3b @ 1
[   13.022142] initcall severities_debugfs_init+0x0/0x3b returned 0 after 0 usecs
[   13.022145] calling  threshold_init_device+0x0/0x4d @ 1
[   13.022148] initcall threshold_init_device+0x0/0x4d returned 0 after 0 usecs
[   13.022151] calling  microcode_init+0x0/0x1d0 @ 1
[   13.022172] microcode: sig=0x506e3, pf=0x2, revision=0x84
[   13.022326] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   13.022343] initcall microcode_init+0x0/0x1d0 returned 0 after 172 usecs
[   13.022346] calling  hpet_insert_resource+0x0/0x24 @ 1
[   13.022349] initcall hpet_insert_resource+0x0/0x24 returned 0 after 0 usecs
[   13.022351] calling  update_mp_table+0x0/0x45f @ 1
[   13.022354] initcall update_mp_table+0x0/0x45f returned 0 after 0 usecs
[   13.022356] calling  lapic_insert_resource+0x0/0x40 @ 1
[   13.022358] initcall lapic_insert_resource+0x0/0x40 returned 0 after 0 usecs
[   13.022361] calling  print_ICs+0x0/0x1b3 @ 1
[   13.022363] initcall print_ICs+0x0/0x1b3 returned 0 after 0 usecs
[   13.022366] calling  pat_memtype_list_init+0x0/0x35 @ 1
[   13.022368] initcall pat_memtype_list_init+0x0/0x35 returned 0 after 0 usecs
[   13.022371] calling  create_tlb_single_page_flush_ceiling+0x0/0x29 @ 1
[   13.022375] initcall create_tlb_single_page_flush_ceiling+0x0/0x29 returned 0 after 1 usecs
[   13.022378] calling  create_init_pkru_value+0x0/0x29 @ 1
[   13.022381] initcall create_init_pkru_value+0x0/0x29 returned 0 after 0 usecs
[   13.022385] calling  init_oops_id+0x0/0x40 @ 1
[   13.022388] initcall init_oops_id+0x0/0x40 returned 0 after 0 usecs
[   13.022390] calling  sched_init_debug+0x0/0x24 @ 1
[   13.022393] initcall sched_init_debug+0x0/0x24 returned 0 after 0 usecs
[   13.022395] calling  pm_qos_power_init+0x0/0xac @ 1
[   13.022467] initcall pm_qos_power_init+0x0/0xac returned 0 after 67 usecs
[   13.022470] calling  pm_debugfs_init+0x0/0x24 @ 1
[   13.022472] initcall pm_debugfs_init+0x0/0x24 returned 0 after 0 usecs
[   13.022475] calling  printk_late_init+0x0/0x65 @ 1
[   13.022478] initcall printk_late_init+0x0/0x65 returned 0 after 0 usecs
[   13.022480] calling  tk_debug_sleep_time_init+0x0/0x3c @ 1
[   13.022483] initcall tk_debug_sleep_time_init+0x0/0x3c returned 0 after 0 usecs
[   13.022486] calling  load_uefi_certs+0x0/0x2a1 @ 1
[   13.022488] initcall load_uefi_certs+0x0/0x2a1 returned 0 after 0 usecs
[   13.022491] calling  debugfs_kprobe_init+0x0/0xcc @ 1
[   13.022496] initcall debugfs_kprobe_init+0x0/0xcc returned 0 after 2 usecs
[   13.022498] calling  taskstats_init+0x0/0x6c @ 1
[   13.022502] registered taskstats version 1
[   13.022504] initcall taskstats_init+0x0/0x6c returned 0 after 3 usecs
[   13.022519] calling  clear_boot_tracer+0x0/0x2e @ 1
[   13.022521] initcall clear_boot_tracer+0x0/0x2e returned 0 after 0 usecs
[   13.022524] calling  register_kprobe_prog_ops+0x0/0x20 @ 1
[   13.022526] initcall register_kprobe_prog_ops+0x0/0x20 returned 0 after 0 usecs
[   13.022529] calling  kdb_ftrace_register+0x0/0x32 @ 1
[   13.022532] initcall kdb_ftrace_register+0x0/0x32 returned 0 after 0 usecs
[   13.022534] calling  register_htab_map+0x0/0x20 @ 1
[   13.022536] initcall register_htab_map+0x0/0x20 returned 0 after 0 usecs
[   13.022539] calling  register_cgroup_array_map+0x0/0x14 @ 1
[   13.022541] initcall register_cgroup_array_map+0x0/0x14 returned 0 after 0 usecs
[   13.022543] calling  register_perf_event_array_map+0x0/0x14 @ 1
[   13.022546] initcall register_perf_event_array_map+0x0/0x14 returned 0 after 0 usecs
[   13.022548] calling  register_prog_array_map+0x0/0x14 @ 1
[   13.022551] initcall register_prog_array_map+0x0/0x14 returned 0 after 0 usecs
[   13.022553] calling  register_array_map+0x0/0x20 @ 1
[   13.022555] initcall register_array_map+0x0/0x20 returned 0 after 0 usecs
[   13.022557] calling  register_stack_map+0x0/0x14 @ 1
[   13.022560] initcall register_stack_map+0x0/0x14 returned 0 after 0 usecs
[   13.022562] calling  load_system_certificate_list+0x0/0x11e @ 1
[   13.022564] Loading compiled-in X.509 certificates
[   13.024913] usb 3-1: New USB device found, idVendor=045e, idProduct=0040
[   13.024917] usb 3-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[   13.024920] usb 3-1: Product: Microsoft 3-Button Mouse with IntelliEye(TM)
[   13.024922] usb 3-1: Manufacturer: Microsoft
[   13.025461] Loaded X.509 cert 'Build time autogenerated kernel key: 01efd8212b4e7a4a90d2d5ccf24572af6c03b153'
[   13.025466] initcall load_system_certificate_list+0x0/0x11e returned 0 after 2832 usecs
[   13.025469] calling  fault_around_debugfs+0x0/0x35 @ 1
[   13.025476] initcall fault_around_debugfs+0x0/0x35 returned 0 after 4 usecs
[   13.025479] calling  max_swapfiles_check+0x0/0x8 @ 1
[   13.025482] initcall max_swapfiles_check+0x0/0x8 returned 0 after 0 usecs
[   13.025484] calling  init_zswap+0x0/0x3ff @ 1
[   13.025497] zswap: loaded using pool lzo/zbud
[   13.025653] initcall init_zswap+0x0/0x3ff returned 0 after 161 usecs
[   13.025655] calling  split_huge_pages_debugfs+0x0/0x35 @ 1
[   13.025658] initcall split_huge_pages_debugfs+0x0/0x35 returned 0 after 0 usecs
[   13.025660] calling  check_early_ioremap_leak+0x0/0x42 @ 1
[   13.025663] initcall check_early_ioremap_leak+0x0/0x42 returned 0 after 0 usecs
[   13.025665] calling  init_root_keyring+0x0/0xb @ 1
[   13.025671] initcall init_root_keyring+0x0/0xb returned 0 after 3 usecs
[   13.025673] calling  big_key_init+0x0/0xe2 @ 1
[   13.029797] Key type big_key registered
[   13.029800] initcall big_key_init+0x0/0xe2 returned 0 after 4027 usecs
[   13.029802] calling  init_trusted+0x0/0xaf @ 1
[   13.031920] Key type trusted registered
[   13.031924] initcall init_trusted+0x0/0xaf returned 0 after 2068 usecs
[   13.031926] calling  init_encrypted+0x0/0x117 @ 1
[   13.034100] Key type encrypted registered
[   13.034104] initcall init_encrypted+0x0/0x117 returned 0 after 2123 usecs
[   13.034107] calling  init_profile_hash+0x0/0x7f @ 1
[   13.034110] AppArmor: AppArmor sha1 policy hashing enabled
[   13.034112] initcall init_profile_hash+0x0/0x7f returned 0 after 2 usecs
[   13.034114] calling  init_ima+0x0/0x30 @ 1
[   13.034116] ima: No TPM chip found, activating TPM-bypass!
[   13.034145] initcall init_ima+0x0/0x30 returned 0 after 27 usecs
[   13.034147] calling  init_evm+0x0/0x51 @ 1
[   13.034148] evm: HMAC attrs: 0x1
[   13.034152] initcall init_evm+0x0/0x51 returned 0 after 3 usecs
[   13.034155] calling  prandom_reseed+0x0/0x2f @ 1
[   13.034161] initcall prandom_reseed+0x0/0x2f returned 0 after 3 usecs
[   13.034164] calling  pci_resource_alignment_sysfs_init+0x0/0x19 @ 1
[   13.034167] initcall pci_resource_alignment_sysfs_init+0x0/0x19 returned 0 after 1 usecs
[   13.034170] calling  pci_sysfs_init+0x0/0x55 @ 1
[   13.035233] initcall pci_sysfs_init+0x0/0x55 returned 0 after 1035 usecs
[   13.035237] calling  bert_init+0x0/0x212 @ 1
[   13.035239] BERT: Can't request iomem region <000000002f3eaf98-000000002f3eafab>.
[   13.035242] initcall bert_init+0x0/0x212 returned -5 after 3 usecs
[   13.035245] calling  boot_wait_for_devices+0x0/0x29 @ 1
[   13.035248] initcall boot_wait_for_devices+0x0/0x29 returned 0 after 0 usecs
[   13.035250] calling  dmar_free_unused_resources+0x0/0xbb @ 1
[   13.035253] initcall dmar_free_unused_resources+0x0/0xbb returned 0 after 0 usecs
[   13.035256] calling  deferred_probe_initcall+0x0/0x70 @ 1
[   13.035304] initcall deferred_probe_initcall+0x0/0x70 returned 0 after 44 usecs
[   13.035307] calling  late_resume_init+0x0/0x1a0 @ 1
[   13.035309]   Magic number: 9:718:360
[   13.035347] acpi INT3470:00: hash matches
[   13.035386] initcall late_resume_init+0x0/0x1a0 returned 0 after 74 usecs
[   13.035388] calling  pm_genpd_debug_init+0x0/0x4b @ 1
[   13.035392] initcall pm_genpd_debug_init+0x0/0x4b returned 0 after 1 usecs
[   13.035395] calling  genpd_poweroff_unused+0x0/0x7e @ 1
[   13.035397] initcall genpd_poweroff_unused+0x0/0x7e returned 0 after 0 usecs
[   13.035400] calling  rtc_hctosys+0x0/0xf7 @ 1
[   13.035526] rtc_cmos 00:04: setting system clock to 2017-03-08 03:23:16 UTC (1488943396)
[   13.035543] initcall rtc_hctosys+0x0/0xf7 returned 0 after 124 usecs
[   13.035546] calling  charger_manager_init+0x0/0x99 @ 1
[   13.035576] initcall charger_manager_init+0x0/0x99 returned 0 after 26 usecs
[   13.035579] calling  acpi_cpufreq_init+0x0/0x26c @ 1
[   13.035609] initcall acpi_cpufreq_init+0x0/0x26c returned -19 after 27 usecs
[   13.035612] calling  powernowk8_init+0x0/0x1a0 @ 1
[   13.035615] initcall powernowk8_init+0x0/0x1a0 returned -19 after 0 usecs
[   13.035617] calling  pcc_cpufreq_init+0x0/0x4a2 @ 1
[   13.035621] initcall pcc_cpufreq_init+0x0/0x4a2 returned -19 after 2 usecs
[   13.035623] calling  centrino_init+0x0/0x2b @ 1
[   13.035625] initcall centrino_init+0x0/0x2b returned -19 after 0 usecs
[   13.035628] calling  edd_init+0x0/0x2d1 @ 1
[   13.035629] BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
[   13.035637] initcall edd_init+0x0/0x2d1 returned 0 after 7 usecs
[   13.035639] calling  firmware_memmap_init+0x0/0x33 @ 1
[   13.035672] initcall firmware_memmap_init+0x0/0x33 returned 0 after 29 usecs
[   13.035674] calling  efi_shutdown_init+0x0/0x31 @ 1
[   13.035677] initcall efi_shutdown_init+0x0/0x31 returned 0 after 0 usecs
[   13.035679] calling  clk_debug_init+0x0/0x147 @ 1
[   13.035684] initcall clk_debug_init+0x0/0x147 returned 0 after 2 usecs
[   13.035686] calling  pci_mmcfg_late_insert_resources+0x0/0x53 @ 1
[   13.035689] initcall pci_mmcfg_late_insert_resources+0x0/0x53 returned 0 after 0 usecs
[   13.035692] calling  register_sk_filter_ops+0x0/0x38 @ 1
[   13.035695] initcall register_sk_filter_ops+0x0/0x38 returned 0 after 0 usecs
[   13.035698] calling  tcp_congestion_default+0x0/0x12 @ 1
[   13.035701] initcall tcp_congestion_default+0x0/0x12 returned 0 after 0 usecs
[   13.035704] calling  software_resume+0x0/0x2f0 @ 1
[   13.035706] PM: Hibernation image not present or could not be loaded.
[   13.035708] initcall software_resume+0x0/0x2f0 returned -2 after 2 usecs
[   13.035711] calling  regulator_ini[   13.983101] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   13.984385] acpi device:0f: registered as cooling_device13
[   13.984578] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input6
[   13.984774] [drm] Initialized i915 1.6.0 20160711 for 0000:00:02.0 on minor 0
[   13.984885] initcall i915_init+0x0/0x62 [i915] returned 0 after 827007 usecs
[   14.276593] fbcon: inteldrmfb (fb0) is primary device
[   14.630920] Console: switching to colour frame buffer device 160x64
[   14.653806] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Will now check root file system ... fsck from util-linux 2.28.2
[/sbin/fsck.ext4 (1) -- /dev/sda2] fsck.ext4 -a -C0 /dev/sda2 
/dev/sda2: clean, 331978/58933248 files, 6275398/235728640 blocks
done.
[   14.903692] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... done.
[   15.053632] [drm] RC6 on
[   15.855822] calling  init_autofs4_fs+0x0/0x26 [autofs4] @ 1
[   15.856446] initcall init_autofs4_fs+0x0/0x26 [autofs4] returned 0 after 563 usecs
[   15.913000] calling  xt_init+0x0/0x1000 [x_tables] @ 1
[   15.913072] initcall xt_init+0x0/0x1000 [x_tables] returned 0 aft15.941274] calling  ip_tables_init+0x0/0x1000 [ip_tables] @ 1
[   15.941319] ip_tables: (C) 2000-2006 Netfilter Core Team
[   15.941331] initcall ip_tables_init+0x0/0x1000 [ip_tables] returned 0 after 15 usecs
[   16.051753] systemd[1]: systemd 231 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[   16.052059] systemd[1]: Detected virtualization xen.
[   16.052077] systemd[1]: Detected architecture x86-64.

Welcome to ^[[1mUbuntu 16.10^[[0m!

[   16.081938] systemd[1]: Set hostname to <konrad-Super-Server>.
[   17.242759] systemd[1]: Reached target Encrypted Volumes.
[^[[0;32m  OK  ^[[0m] Reached target Encrypted Volumes.
[   17.24 on Journal Audit Socket.
[   17.243658] systemd[1]: Listening on Journal Socket.
[^[[0;32m  OK  ^[[0m] Listening on Journal Socket.
[   17.244136] systemd[1]: Created slice System Slice.
[^[[0;32m  OK  ^[[0m] Created slice System Slice.
[   17.265434] systemd[1]: Mounting Debug File System...
         Mounting Debug File System...
[   17.266252] systemd[1]: Created slice system-serial\x2dgetty.slice.
[^[[0;32m  OK  ^[[0m] Created slice system-serial\x2dgetty.slice.
         Starting Create list of required st... nodes for the current kernel...
[^[[0;32m  OK  ^[[0m] Created slice system-systemd\x2dfsck.slice.
         Starting Uncomplicated firewall...
[^[[0;32m  OK  ^[[0m] Reached target User and Group Name Lookups.
[^[[0;32m  OK  ^[[0m] Listening on Journal Socket (/dev/log).
[^[[0;32m  OK  ^[[0m] Listening on udev Kernel Socket.
[^[[0;32m  OK  ^[[0m] Created slice User and Session Slice.
[^[[0;32m  OK  ^[[0m] Listening on udev Control Socket.
[^[[0;32m  OK  ^[[0m] Started Forward Password Requests to Wall Directory Watch.
[^[[0;32m  OK  ^[[0m] Listening on /dev/initctl Compatibility Named Pipe.
         Starting Set the console keyboard layout...
[^[[0;32m  OK  ^[[0m] Reached target Slices.
[^[[0;32m  OK  ^[[0m] Listening on Syslog Socket.
         Starting Journal Service...
[^[[0;32m  OK  ^[[0m] Listening on fsck to fsckd communication Socket.
[^[[0;32m  OK  ^[[0m] Set up automount Arbitrary Executab...ats File System Automount Point.
         Mounting POSIX Message Queue File System...
         Starting Load Kernel Modules...
[^[[0;32m  OK  ^[[0m] Reached target Remote File Systems.
[^[[0;32m  OK  ^[[0m] Started Uncomplicated firewall.
[^[[0;32m  OK  ^[[0m] Started Create list of required sta...ce nodes for the current kernel.
         Starting Create Static Device Nodes in /dev...
[   17.639470] calling  parport_default_proc_register+0x0/0x1000 [parport] @ 311
[   17.639548] initcall parport_default_proc_^G^G^G^G^G^G^G^G^G^G^G^G^G[^[[0;32m  OK  ^[[0m] Mounted POSIX Message Queue File System.
[^[[0;32m  OK  ^[[0m] Mounted Debug File System.
[   17.704154] calling  lp_init_module+0x0/0x1000 [lp] @ 311
[^G^G^[[0;32m  OK  ^[[0m] Started Journal Service.
[   17.809637] lp: driver loaded but no devices found
[   17.809685] initcall lp_init_module+0x0/0x1000 [lp] returned 0 after 
[   17.837844] calling  ppdev_init+0x0/0x1000 [ppdev] @ 311
[   17.843201] ppdev: user-space parallel port driver
[   17.843[   17.864075] calling  parport_pc_init+0x0/0xf23 [parport_pc] @ 311
[   17.864359] parport_pc parport_pc.956: Unable to set cUnable to set coherent dma mask: disabling DMA
[   17.864919] parport_pc parport_pc.632: Unable to set coherent dma mask: disabling DMA
[   17.865214] initcall parport_pc_init+0x0/0xf23 [parport_pc] returned 0 after 1070 usecs
[^[[0;32m  OK  ^[[0m] Started Load Kernel Modules.
^         Starting Apply Kernel Variables...
         Mounting FUSE Control File System...
[^[[0;32m  OK  ^[[0m] Mounted FUSE Control File System.
[^[[0;32m  OK  ^[[0m] Started Apply Kernel Variables.
[^[[0;32m  OK  ^[[0m] Started Create Static Device Nodes in /dev.
         Starting udev Kernel Device Manager...
[^[[0;32m  OK  ^[[0m] Started Set the console keyboard layout.
[^[[0;32m  OK  ^[[0m] Started udev Kernel Device Manager.
         Starting Remount Root and Kernel File Systems...
[^[[0;32m  OK  ^[[0m] Started Remount Root and Kernel File Systems.
         Starting Flush Journal to Persistent Storage...
[^[[0;32m  OK  ^[[0m] Reached target Local File Systems (Pre).
         Starting udev Coldplug all Devices...
         Starting Load/Save Random Seed...
[^[[0;32m  OK  ^[[0m] Started Flush  Persistent Storage.
[^[[0;32m  OK  ^[[0m] Started Load/Save Random Seed.
[^[[0;32m  OK  ^[[0m] Started udev Coldplug all Devices.
[^[[0;32m  OK  ^[[0m] Started Dispatch Password Requests to Console Directory Watch.
[^[[0;32m  OK  ^[[0m] Created slice system-systemd\x2dbacklight.slice.
         Starting Load/Save Screen Backlight...ness of backlight:acpi_video0...
[   19.139877] Error: Driver 'processor_aggregator' is already registered, aborting...
[^[[0;32m  OK  ^[[0m] Found device /dev/hvc0.
[^[[0;32m  OK  ^[[0m] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[^[[0;32m  OK  ^[[0m] Started Load/Save Screen Backlight ...htness of backlight:acpi_video0.
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 EFI\x20System\x20Partition.
         Starting File System Check on /dev/disk/by-uuid/B3D5-AADB...
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 3.
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 3.
        ^G^G^G^G^G^G^G^G^G^G^G^G^G[^[[0;32m  OK  ^[[0m] Started File System Check Daemon to report status.
[^[[0;32m  OK  ^[[0m] Activated swap Swap Partition.
[^[[0;32m  OK  ^[[0m] Activated swap /dev/disk/by-uuid/223b4458-f860-451c-a674-10efe46c43b1.
[^[[0;32m  OK  ^[[0m] Reached target Swap.
[^[[0;32m  OK  ^[[0m] Started File System Check on /dev/disk/by-uuid/B3D5-AADB.
         Mounting /boot/efi...
[^[[0;32m  OK  ^[[0m] Mounted /boot/efi.
[^[[0;32m  OK  ^[[0m] Reached target Local File Systems.
         Starting Clean up any mess left by 0dns-up...
         Starting AppArmor initialization...
         Starting Set console font and keymap...
         Starting Create Volatile Files and Directories...
         Starting Run snappy firstboot setup...
         Starting Tell Plymouth To Write Out Runtime Data...
[^[[0;32m  OK  ^[
[^[[0;32m  OK  ^[[0m] Started Clean up any mess left by 0dns-up.
         Starting Nameserver information manager...
[^[[0;32m  OK  ^[[0m] Started Nameserver information manager.
[^[[0;32m  OK  ^[[0m] Reached target Sound Card.
[^[[0;32m  OK  ^[[0m] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[^[[0;32m  OK  ^[[0m] Started Update UTMP about System Boot/Shutdown.
[^[[0;32m  OK  ^[[0m] Started Network Time Synchronization.
[^[[0;32m  OK  ^[[0m] Reached target System Time Synchronized.
[^[[0;32m  OK  ^[[0m] Started Run snappy firstboot setup.
[^[[0;32m  OK  ^[[0m] Started AppArmor initialization.
[^[[0;32m  OK  ^[[0m] Reached target System Initialization.
[^[[0;32m  OK [^[[0;32m  OK  ^[[0m] Started ACPI Events Check.
         Starting Socket activation for snappy daemon.
[^[[0;32m  OK  ^[[0m] Ste Bus Socket.
[^[[0;32m  OK  ^[[0m] Started Timer to automatically refresh installed snaps.
[^[[0;32m  OK  ^[[0m] Listening on ACPID Listen Socket.
[^[[0;32m  OK  ^[[0m] Started Daily Cleanup of Temporary Directories.
[^[[0;32m  OK  ^[[0m] Reached target Timers.
[^[[0;32m  OK  ^[[0m] Listening on UUID daemon activation socket.
^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G         Starting Raise network interfaces...
[^[[0;32m  OK  ^[[0m] Listening on Socket activation for snappy daemon.
[^[[0;32m  OK  ^[[0m] Reached target Sockets.
[^[[0;32m  OK  ^[[0m] Reached target Basic System.
         Starting LSB: automatic crash report generation...
[^[[0;32m  OK  ^[[0m] Started CUPS Scheduler.
         Starting LSB: daemon to balance interrupts for SMP systems...
         Starting LSB: Speech Dispatcher...
[^[[0;32m  OK  ^[[0m] Started ACPI event daemon.
         Starting Avahi mDNS/DNS-SD Stack...
[^[[0;32m  OK  ^[[0m] Started Cgros and deal with any system changes...
^G^G^G         Starting LSB: Record successful boot for GRUB...
^G[^[[0;32m  OK  ^[[0m] Started Run anacron jobs.
^G^G^G^G^G         Starting Login Service...
^G^G^G         Starting Restore /etc/resolv.conf i...re the ppp link was shut down...
^G^G^G         Starting System Logging Service...
         ^GStarting Accounts Service...
         Starting Thermal Daemon Service...
         Starting Modem Manager...
[^[[0;32m  OK  ^[[0m] Started crash report submission daemon.
         Starting Save/Restore Sound Card State...
[^[[0;32m  OK  ^[[0m] Started Snappy daemon.
[^[[0;32m  OK  ^[[0m] Started D-Bus System Message Bus.
[^[[0;32m  OK  ^[[0m] Started Avahi mDNS/DNS-SD Stack.
         Starting Network Manager...
         Starting Run Click system-level hooks...
[^[[0;32m  OK  ^[[0m] Started Regular background program processing daemon.
[^[[0;32m  OK  ^[[0m] Started Make remote CUPS printerore the ppp link was shut down.
^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Save/Restore Sound Card State.
[^[[0;32m  OK  ^[[0m] Started Thermal Daemon Service.
[^[[0;32m  OK  ^[[0m] Started Login Service.
         Starting Authenticate and Authorize Users to Run Privileged Tasks...
[^[[0;32m  OK  ^[[0m] Started LSB: Speech Dispatcher.
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x004283200015828a
(XEN) traps.c:2863:d0v0 Ddd8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 000001b2 from 0x0000000000000000 to 0x000000000000a200
[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^tion.
^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G[^[[0;32m  OK  ^[[0m] Started Authenticate and Authorize Users to Run Privileged Tasks.
[^[[0;32m  OK  ^[[0m] Started Accounts Service.
[^[[0;32m  OK  ^[[0m] Started Detect the available GPUs and deal with any system changes.
[^[[0;32m  OK  ^[[0m] Started LSB: Record successful boot for GRUB.
[^[[0;32m  OK  ^[[0m] Started LSB: daemon to balance interrupts for SMP systems.
[^[[0;32m  OK  ^[[0m] Started Network Manager.
[^[[0;32m  OK  ^[[0m] Started Raise network interfaces.
[^[[0;32m  OK  ^[[0m] Reached target Network.
         Starting OpenVPN 
^G^G^G         Starting Permit User Sessions...
         Starting Network Name Resolution...
         Starting OpenBSD Secure Shell server...
[^[[0;32m  OK  ^[[0m] Started OpenVPN service.
[^[[0;32m  OK  ^[[0m] Started Permit User Sessions.
[^[[0;32m  OK  ^[[0m] Started Modem Manager.
         Starting Network Manager Script Dispatcher Service...
         Starting Light Display Manager...
         Starting Hold until boot process finishes up...
[^[[0;32m  OK  ^[[0m] Started Hold until boot process finishes up.
[^[[0;32m  OK  ^[[0m] Started Serial Getty on hvc0.
         Starting Set console scheme...
[^[[0;32m  OK  ^[[0m] Started Network Name Resolution.
[^[[0;32m  OK  ^[[0m] Started Set console scheme.
[^[[0;32m  OK  ^[[0m] Created slice system-getty.slice.
[^[[0;32m  OK  ^[[0m] Started Getty on tty1.
[^[[0;32m  OK  ^[[0m] Reached target Login Prompts.
[^[[0;32m  OK  ^[[0m] Started Network Manager Script Dispatcher Service.
         Starting Hostname Service...
[^[[0;32m  OK  ^[[0m] Started Hostname Service.
[^[[0;32m  OK  ^[[0m] Started OpenBSD Secure Shell server.
[^[[0;32m  OK  ^[[0m] Started Light Display Manager.
[^[[0;32m  OK  ^[[0m] Started Run Click system-level hooks.
[^[[0;32m  OK  ^[[0m] Reached target Multi-User System.
[^[[0;32m  OK^G^G^G^G^G^G^G^G^G^G^G^G         Starting Update UTMP about System Runlevel Changes...
         Starting Notify bootloader tha[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Notify bootloader that boot was successful.

Ubuntu 16.10 konrad-Super-Server hvc0

konrad-Super-Server login: 

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-08  3:44             ` Konrad Rzeszutek Wilk
@ 2017-03-08 14:17               ` Daniel Kiper
  2017-03-08 16:46                 ` Konrad Rzeszutek Wilk
  2017-03-09 20:02               ` Doug Goldstein
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-08 14:17 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, Jan Beulich, xen-devel,
	qiaowei.ren, gang.wei, fu.wei

On Tue, Mar 07, 2017 at 10:44:15PM -0500, Konrad Rzeszutek Wilk wrote:
> On Tue, Mar 07, 2017 at 12:39:04AM +0100, Daniel Kiper wrote:
> > On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:
> >
> > [...]
> >
> > > I'm currently at ELC and then on vacation so I don't have access to any
> > > of the machines currently myself. However the machine I most use to test
> > > is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
> > > has one internally. But that's why I gave QEMU as an example.
> > >
> > > I was using qemu master from a few weeks ago. I'll have to find the
> > > revision for you. But the command line I use is:
> > >
> > > -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
> > > -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
> > > isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
> > > stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
> > > -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
> > > -netdev id=net0,type=tap -device
> > > virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
> > > qxl-vga -gdb tcp::14952
> >
> > Sadly, my colleagues and I are not able to reproduce the problem on any of
> > machines available for us (available on the market and some development
> > stuff in our labs). I did tests with QEMU (I am not able to run it with
> > "-device intel-iommu" on my machine; I have to investigate this). Everything
> > works. Joao did some tests on Intel NUC D34010WYK second generation.
> > Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
> > waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
> > have installed on that NUC? I would like to test same config as yours on
> > this machine.
>
> I had a chat with Doug on IRC and:
>  - I had tested earlier on AMD, while he has only Intel boxes,
>  - He was wondering if this was an IOMMU issue.

I had and still have a feeling that it can be related to IOMMU. I will
try to reproduce this on QEMU but first of all I have to check how to
enable this option in my environment (something is broken). Additionally,
there is a chance that the issue spotted by osstest (fixed right now)
played a role here too. So, it will be nice if Doug can do tests with
latest master. Anyway, I will do tests too. Though I am still waiting
for my NUC.

> So to double-check that, I installed Ubuntu 16.10 on my X11SAE
> SuperMicro, which has an Haswell E3-1245 v5 and with IOMMU enabled.
>
> I tested the 'origin/staging' xen.gz build with the upstream grub2
> (I just used the 'master' branch) first and also just booting xen.efi.
>
> Both worked fine.
>
> Then I used v16 of Daniel's patches (this thread). They are also
> now on	git://xenbits.xen.org/people/konradwilk/xen.git mb2.v16
> also the same way - as xen.efi and then using grub.efi and booting it
> (see below)
>
> All worked fine.

Great! Thanks a lot for doing the tests.

> Now in the process I discovered that my patch for grub-mkconfig to
> detect multiboot2 payloads and use those instead of multiboot never
> made it upstream, so I had to modify my grub.cfg by hand (see below).

It will be nice if you post it after GRUB2 2.02 release.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-08 14:17               ` Daniel Kiper
@ 2017-03-08 16:46                 ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 48+ messages in thread
From: Konrad Rzeszutek Wilk @ 2017-03-08 16:46 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3,
	Doug Goldstein, pgnet.dev, julien.grall, Jan Beulich, xen-devel,
	qiaowei.ren, gang.wei, fu.wei

[-- Attachment #1: Type: text/plain, Size: 330 bytes --]

..snip..
> > Now in the process I discovered that my patch for grub-mkconfig to
> > detect multiboot2 payloads and use those instead of multiboot never
> > made it upstream, so I had to modify my grub.cfg by hand (see below).
> 
> It will be nice if you post it after GRUB2 2.02 release.

OK, I will wait (but attaching it here).

[-- Attachment #2: 0001-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch --]
[-- Type: text/plain, Size: 1981 bytes --]

>From 89a85f31602f6d5f7355ffe6e246059e63cab973 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Wed, 8 Mar 2017 11:42:43 -0500
Subject: [PATCH] Use grub-file to figure out whether multiboot2 should be used
 for Xen.gz

The multiboot2 is much more preferable than multiboot. Especially
if booting under EFI where multiboot does not have the functionality
to pass ImageHandler.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 util/grub.d/20_linux_xen.in | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index c48af94..7aae59f 100644
--- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in
@@ -85,6 +85,10 @@ linux_entry ()
   type="$4"
   args="$5"
   xen_args="$6"
+  ver=""
+  if $($grub_file --is-x86-multiboot2 ${xen_dirname}/${xen_basename}); then
+     ver="2"
+  fi
   if [ -z "$boot_device_id" ]; then
       boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
   fi
@@ -122,16 +126,16 @@ linux_entry ()
         else
             xen_rm_opts="no-real-mode edd=off"
         fi
-	multiboot	${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
+	multiboot${ver}	${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
 	echo	'$(echo "$lmessage" | grub_quote)'
-	module	${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
+	module${ver}	${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
     # TRANSLATORS: ramdisk isn't identifier. Should be translated.
     message="$(gettext_printf "Loading initial ramdisk ...")"
     sed "s/^/$submenu_indentation/" << EOF
 	echo	'$(echo "$message" | grub_quote)'
-	module	--nounzip   ${rel_dirname}/${initrd}
+	module${ver}	--nounzip   ${rel_dirname}/${initrd}
 EOF
   fi
   sed "s/^/$submenu_indentation/" << EOF
-- 
2.9.3


[-- Attachment #3: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-06 23:39           ` Daniel Kiper
  2017-03-08  3:44             ` Konrad Rzeszutek Wilk
@ 2017-03-09 15:24             ` Daniel Kiper
  2017-03-09 15:41               ` Andrew Cooper
  2017-03-09 15:45               ` Jan Beulich
  1 sibling, 2 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-03-09 15:24 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Tue, Mar 07, 2017 at 12:39:04AM +0100, Daniel Kiper wrote:
> On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:
>
> [...]
>
> > I'm currently at ELC and then on vacation so I don't have access to any
> > of the machines currently myself. However the machine I most use to test
> > is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
> > has one internally. But that's why I gave QEMU as an example.
> >
> > I was using qemu master from a few weeks ago. I'll have to find the
> > revision for you. But the command line I use is:
> >
> > -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
> > -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
> > isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
> > stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
> > -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
> > -netdev id=net0,type=tap -device
> > virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
> > qxl-vga -gdb tcp::14952
>
> Sadly, my colleagues and I are not able to reproduce the problem on any of
> machines available for us (available on the market and some development
> stuff in our labs). I did tests with QEMU (I am not able to run it with
> "-device intel-iommu" on my machine; I have to investigate this). Everything
> works. Joao did some tests on Intel NUC D34010WYK second generation.
> Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
> waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
> have installed on that NUC? I would like to test same config as yours on
> this machine.

Latest QEMU from git with intel-iommu device enabled works without any issue.
Though it looks that I found a bug in Xen IOMMU code. If I run Xen from master
in QEMU then QEMU complains and crashes:

  qemu-system-x86_64: /srv/dev/qemu/qemu_20170308/hw/i386/intel_iommu.c:1786: vtd_mem_write: Assertion `size == 4' failed.
  Aborted (core dumped)

So, I took a look at dma_msi_set_affinity() and found this:

  dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);

It looks bogus because DMAR_FEADDR_REG is defined in spec as 32-bit wide.
So, applied this patch:

-    dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);
+    dmar_writel(iommu->reg, DMAR_FEADDR_REG, msg.address_lo);
+    if (x2apic_enabled)
+        dmar_writel(iommu->reg, DMAR_FEUADDR_REG, msg.address_hi);

Ant it looks that right now everything works.

If patch make sense I can post it with proper commit message.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-09 15:24             ` Daniel Kiper
@ 2017-03-09 15:41               ` Andrew Cooper
  2017-03-09 15:45               ` Jan Beulich
  1 sibling, 0 replies; 48+ messages in thread
From: Andrew Cooper @ 2017-03-09 15:41 UTC (permalink / raw)
  To: Daniel Kiper, Doug Goldstein
  Cc: Juergen Gross, sstabellini, pgnet.dev, ning.sun, julien.grall,
	Jan Beulich, xen-devel, qiaowei.ren, gang.wei, fu.wei

On 09/03/17 15:24, Daniel Kiper wrote:
> On Tue, Mar 07, 2017 at 12:39:04AM +0100, Daniel Kiper wrote:
>> On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:
>>
>> [...]
>>
>>> I'm currently at ELC and then on vacation so I don't have access to any
>>> of the machines currently myself. However the machine I most use to test
>>> is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
>>> has one internally. But that's why I gave QEMU as an example.
>>>
>>> I was using qemu master from a few weeks ago. I'll have to find the
>>> revision for you. But the command line I use is:
>>>
>>> -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
>>> -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
>>> isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
>>> stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
>>> -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
>>> -netdev id=net0,type=tap -device
>>> virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
>>> qxl-vga -gdb tcp::14952
>> Sadly, my colleagues and I are not able to reproduce the problem on any of
>> machines available for us (available on the market and some development
>> stuff in our labs). I did tests with QEMU (I am not able to run it with
>> "-device intel-iommu" on my machine; I have to investigate this). Everything
>> works. Joao did some tests on Intel NUC D34010WYK second generation.
>> Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
>> waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
>> have installed on that NUC? I would like to test same config as yours on
>> this machine.
> Latest QEMU from git with intel-iommu device enabled works without any issue.
> Though it looks that I found a bug in Xen IOMMU code. If I run Xen from master
> in QEMU then QEMU complains and crashes:
>
>   qemu-system-x86_64: /srv/dev/qemu/qemu_20170308/hw/i386/intel_iommu.c:1786: vtd_mem_write: Assertion `size == 4' failed.
>   Aborted (core dumped)
>
> So, I took a look at dma_msi_set_affinity() and found this:
>
>   dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);
>
> It looks bogus because DMAR_FEADDR_REG is defined in spec as 32-bit wide.
> So, applied this patch:
>
> -    dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);
> +    dmar_writel(iommu->reg, DMAR_FEADDR_REG, msg.address_lo);
> +    if (x2apic_enabled)
> +        dmar_writel(iommu->reg, DMAR_FEUADDR_REG, msg.address_hi);

EFI aside, that is clearly a qemu bug (as Xen shouldn't be able to cause
an assertion like that to be hit), and there is nothing wrong with Xens
code as-is.

All the spec requires is that 32bit fields are accessed as whole
doublewords (rather than smaller units).  There is no restriction on
updating two adjacent 32bit fields with a quadword access. 
(Furthermore, hardware is requires to cope with accesses to a 64bit
field being decomposed into two 32bit accesses.)

~Andrew

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-09 15:24             ` Daniel Kiper
  2017-03-09 15:41               ` Andrew Cooper
@ 2017-03-09 15:45               ` Jan Beulich
  1 sibling, 0 replies; 48+ messages in thread
From: Jan Beulich @ 2017-03-09 15:45 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

>>> On 09.03.17 at 16:24, <daniel.kiper@oracle.com> wrote:
> Though it looks that I found a bug in Xen IOMMU code. If I run Xen from master
> in QEMU then QEMU complains and crashes:
> 
>   qemu-system-x86_64: /srv/dev/qemu/qemu_20170308/hw/i386/intel_iommu.c:1786: 
> vtd_mem_write: Assertion `size == 4' failed.
>   Aborted (core dumped)
> 
> So, I took a look at dma_msi_set_affinity() and found this:
> 
>   dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);
> 
> It looks bogus because DMAR_FEADDR_REG is defined in spec as 32-bit wide.
> So, applied this patch:
> 
> -    dmar_writeq(iommu->reg, DMAR_FEADDR_REG, msg.address);
> +    dmar_writel(iommu->reg, DMAR_FEADDR_REG, msg.address_lo);
> +    if (x2apic_enabled)
> +        dmar_writel(iommu->reg, DMAR_FEUADDR_REG, msg.address_hi);
> 
> Ant it looks that right now everything works.
> 
> If patch make sense I can post it with proper commit message.

Please see commit ae05fd3912 ("VT-d: use qword MMIO access for
MSI address writes") before you consider posting a patch.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-08  3:44             ` Konrad Rzeszutek Wilk
  2017-03-08 14:17               ` Daniel Kiper
@ 2017-03-09 20:02               ` Doug Goldstein
  2017-03-09 22:20                 ` Konrad Rzeszutek Wilk
  2017-03-15 11:35                 ` Daniel Kiper
  1 sibling, 2 replies; 48+ messages in thread
From: Doug Goldstein @ 2017-03-09 20:02 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 3287 bytes --]

On 3/7/17 9:44 PM, Konrad Rzeszutek Wilk wrote:
> On Tue, Mar 07, 2017 at 12:39:04AM +0100, Daniel Kiper wrote:
>> On Wed, Feb 22, 2017 at 09:04:17AM -0800, Doug Goldstein wrote:
>>
>> [...]
>>
>>> I'm currently at ELC and then on vacation so I don't have access to any
>>> of the machines currently myself. However the machine I most use to test
>>> is a NUC5i5MYHE and a NUC5i3MYHE if you want to ask around if someone
>>> has one internally. But that's why I gave QEMU as an example.
>>>
>>> I was using qemu master from a few weeks ago. I'll have to find the
>>> revision for you. But the command line I use is:
>>>
>>> -enable-kvm -M pc-q35-2.8 -device intel-iommu -cpu host -m 2048 -smp 2
>>> -drive if=pflash,format=raw,file=/tmp/tmp.EiR6ixmYzV -global
>>> isa-debugcon.iobase=0x402 -debugcon file:/tmp/tmp.nuvEXUWfnA -monitor
>>> stdio -chardev socket,host=127.0.0.1,port=25914,id=S0,server,nowait
>>> -device isa-serial,chardev=S0 -device piix3-usb-uhci -device usb-tablet
>>> -netdev id=net0,type=tap -device
>>> virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 -boot order=n -device
>>> qxl-vga -gdb tcp::14952
>>
>> Sadly, my colleagues and I are not able to reproduce the problem on any of
>> machines available for us (available on the market and some development
>> stuff in our labs). I did tests with QEMU (I am not able to run it with
>> "-device intel-iommu" on my machine; I have to investigate this). Everything
>> works. Joao did some tests on Intel NUC D34010WYK second generation.
>> Everything works. So, Konrad ordered Intel NUC NUC5i3MYHE for me. I am
>> waiting for delivery. Doug, could you tell me what distro, Xen, etc. you
>> have installed on that NUC? I would like to test same config as yours on
>> this machine.
> 
> I had a chat with Doug on IRC and:
>  - I had tested earlier on AMD, while he has only Intel boxes,
>  - He was wondering if this was an IOMMU issue.
> 
> So to double-check that, I installed Ubuntu 16.10 on my X11SAE
> SuperMicro, which has an Haswell E3-1245 v5 and with IOMMU enabled.
> 
> I tested the 'origin/staging' xen.gz build with the upstream grub2
> (I just used the 'master' branch) first and also just booting xen.efi.
> 
> Both worked fine.

Well if this was really the IOMMU issue then there's already a patch in
staging which noops out part of the memory allocator from the first part
of the series that was causing problems.

> 
> Then I used v16 of Daniel's patches (this thread). They are also
> now on	git://xenbits.xen.org/people/konradwilk/xen.git mb2.v16
> also the same way - as xen.efi and then using grub.efi and booting it
> (see below)
> 
> All worked fine.

<snip>

> 
> konrad-Super-Server login: [  188.181526] reboot: Restarting system
> (XEN) Hardware Dom0 shutdown: rebooting machine
> (XEN) APIC error on CPU0: 40(00)
> 
> ... reboot.

So as I've mentioned you have to run 'xl info' and look at nr_cpus to
see the issue.

<snip>

>          Starting Notify bootloader tha[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Notify bootloader that boot was successful.
> 
> Ubuntu 16.10 konrad-Super-Server hvc0
> 
> konrad-Super-Server login: 
> 

Still missing 'xl info'.


-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-09 20:02               ` Doug Goldstein
@ 2017-03-09 22:20                 ` Konrad Rzeszutek Wilk
  2017-03-15 11:35                 ` Daniel Kiper
  1 sibling, 0 replies; 48+ messages in thread
From: Konrad Rzeszutek Wilk @ 2017-03-09 22:20 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3,
	Daniel Kiper, pgnet.dev, julien.grall, Jan Beulich, xen-devel,
	qiaowei.ren, gang.wei, fu.wei

> > All worked fine.
> 
> <snip>
> 
> > 
> > konrad-Super-Server login: [  188.181526] reboot: Restarting system
> > (XEN) Hardware Dom0 shutdown: rebooting machine
> > (XEN) APIC error on CPU0: 40(00)
> > 
> > ... reboot.
> 
> So as I've mentioned you have to run 'xl info' and look at nr_cpus to
> see the issue.

Odd, I must have missed it. Either way see the inline serial capture.
With both 'xl info' reporting expected values.
> 
> <snip>
> 
> >          Starting Notify bootloader tha[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Notify bootloader that boot was successful.
> > 
> > Ubuntu 16.10 konrad-Super-Server hvc0
> > 
> > konrad-Super-Server login: 
> > 
> 
> Still missing 'xl info'.
> 
^[[25;1H^[[1;33;40mfs0:\> cd efi^[[25;14H^[[0;37;40m

^[[25;1H^[[1;33;40mfs0:\EFI> cd xen^[[25;17H^[[0;37;40m

^[[25;1H^[[1;33;40mfs0:\EFI\xen> xen^[[25;18H^[[0;37;40m
 Xen 4.9-unstable
(XEN) Xen version 4.9-unstable (konrad@) (gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005) debug=y  Tue Mar  7 22:13:08 EST 2017
(XEN) Latest ChangeSet: Tue Feb 21 20:19:58 2017 +0100 git:e4ccbd0
(XEN) Bootloader: EFI
(XEN) Command line: console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
(XEN) Xen image load base address: 0x29800000
(XEN) Video information:
(XEN)  VGA is graphics mode 1280x1024, 32 bpp
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) EFI RAM map:
(XEN)  0000000000000000 - 0000000000058000 (usable)
(XEN)  0000000000058000 - 0000000000059000 (reserved)
(XEN)  0000000000059000 - 000000000009f000 (usable)
(XEN)  000000000009f000 - 00000000000a0000 (reserved)
(XEN)  0000000000100000 - 000000002ae33000 (usable)
(XEN)  000000002ae33000 - 000000002ae34000 (ACPI NVS)
(XEN)  000000002ae34000 - 000000002ae7e000 (reserved)
(XEN)  000000002ae7e000 - 000000002e8c1000 (usable)
(XEN)  000000002e8c1000 - 000000002ec64000 (reserved)
(XEN)  000000002ec64000 - 000000002eddf000 (usable)
(XEN)  000000002eddf000 - 000000002f3eb000 (ACPI NVS)
(XEN)  000000002f3eb000 - 000000002ffff000 (reserved)
(XEN)  000000002ffff000 - 0000000030000000 (usable)
(XEN)  0000000030000000 - 0000000038000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fe000000 - 00000000fe011000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 00000008c3400000 (usable)
(XEN) ACPI: RSDP 2EE67000, 0024 (r2 SUPERM)
(XEN) ACPI: XSDT 2EE670B0, 00DC (r1 SUPERM   SUPERM  1072009 AMI     10013)
(XEN) -MB  1072009 INTL 20120913)
(XEN) ACPI: FACS 2F3E9F80, 0040
(XEN) ACPI: APIC 2EE8A6B8, 00BC (r3                  1072009 AMI     10013)
(XEN) ACPI: FPDT 2EE8A778, 0044 (r1                  1072009 AMI     10013)
(XEN) ACPI: FIDT 2EE8A7C0, 009C (r1                  1072009 AMI     10013)
(XEN) ACPI: MCFG 2EE8A860, 003C (r1 SUPERM SMCI--MB  1072009 MSFT       97)
(XEN) ACPI: HPET 2EE8A8A0, 0038 (r1 SUPERM SMCI--MB  1072009 AMI.    5000B)
(XEN) ACPI: LPIT 2EE8A8D8, 0094 (r1 INTEL       SKL        0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8A970, 0248 (r2 INTEL  sensrhub        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8ABB8, 2BAE (r2 INTEL  PtidDevc     1000 INTL 20120913)
(XEN) ACPI: SSDT 2EE8D768, 0BE3 (r2 INTEL  Ther_Rvp     1000 INTL 20120913)
(XEN) ACPI: DBGP 2EE8E350, 0034 (r1 INTEL                  0 MSFT       5F)
(XEN) ACPI: DBG2 2EE8E388, 0054 (r0 INTEL                  0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8E3E0, 06FD (r2  INTEL xh_rvp08        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8EAE0, 546C (r2 SaSsdt  SaSsdt      3000 INTL 20120913)
(XEN) ACPI: UEFI 2EE93F50, 0042 (r1                        0             0)
(XEN) ACPI: SSDT 2EE93F98, 0E73 (r2 CpuRef  CpuSsdt     3000 INTL 20120913)
(XEN) ACPI: DMAR 2EE94E10, 00A8 (r1 INTEL      SKL         1 INTL        1)
(XEN) ACPI: ASF! 2EE94EB8, 00A5 (r32 INTEL       HCG        1 TFSM    F4240)
(XEN) ACPI: EINJ 2EE94F60, 0130 (r1    AMI AMI.EINJ        0 AMI.        0)
(XEN) ACPI: ERST 2EE95090, 0230 (r1  AMIER AMI.ERST        0 AMI.        0)
(XEN) ACPI: BERT 2EE952C0, 0030 (r1    AMI AMI.BERT        0 AMI.        0)
(XEN) ACPI: HEST 2EE952F0, 027C (r1    AMI AMI.HEST        0 AMI.        0)
(XEN) ACPI: BGRT 2EE95570, 0038 (r1 SUPERM SMCI--MB  1072009 AMI     10013)
(XEN) System RAM: 32541MB (33322560kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-00000008c3400000
(XEN) Domain heap initialised
(XEN) Allocated console ring of 1048576 KiB.
(XEN) vesafb: framebuffer at 0x90000000, mapped to 0xffff82c000201000, using 5120k, total 5120k
(XEN) vesafb: mode is 1280x1024driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (32 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT - 2f3e9f80/0000000000000000, using 32
(XEN) ACPI:             wakeup_vec[2f3e9f8c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) [VT-D]Host address width 39
(XEN) [VT-D]found ACPI_DMAR_DRHD:
(XEN) [VT-D]  dmaru->address = fed90000
(XEN) [VT-D]drhd->address = fed90000 iommu->reg = ffff82c00071c000
(XEN) [VT-D]cap = 1c0000c40660462 ecap = 7e3ff0505e
(XEN) [VT-D] endpoint: 0000:00:02.0
(XEN) [VT-D]found ACPI_DMAR_DRHD:
(XEN) [VT-D]  dmaru->address = fed91000
(XEN) [VT-D]drhd->address = fed91000 iommu->reg = ffff82c00071e000
(XEN) [VT-D]cap = d2008c40660462 ecap = f050da
(XEN) [VT-D] IOAPIC: 0000:f0:1f.0
(XEN) [VT-D] MSI HPET: 0000:00:1f.0
(XEN) [VT-D]  flags: INCLUDE_ALL
(XEN) [VT-D]found ACPI_DMAR_RMRR:
(XEN) [VT-D] endpoint: 0000:00:14.0
(XEN) [VT-D]dmar.c:638:   RMRR region: base_addr 2e9ab000 end_addr 2e9cafff
(XEN) [VT-D]found ACPI_DMAR_RMRR:
(XEN) [VT-D]  RMRR address range 38400000..3abfffff not in reserved memory; need "iommu_inclusive_mapping=1"?
(XEN) [VT-D] endpoint: 0000:00:02.0
(XEN) [VT-D]dmar.c:638:   RMRR region: base_addr 38400000 end_addr 3abfffff
(XEN) Xen ERST support is initialized.
(XEN) HEST: Table parsing has been initialized
(XEN) ACPI: BGRT: invalidating v1 image at 0x2c713018
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 24 GSI, 1528 MSI/MSI-X
(XEN) Not enabling x2APIC (upon firmware request)
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank 0 extended MCE MSR 0
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 23.999MHz HPET
(XEN) Detected 3504.115 MHz processor.
(XEN) EFI memory map:
(XEN)  0000000000000-0000000007fff type=3 attr=000000000000000f
(XEN)  0000000008000-0000000057fff type=7 attr=000000000000000f
(XEN)  0000000058000-0000000058fff type=0 attr=000000000000000f
(XEN)  0000000059000-000000005bfff type=7 attr=000000000000000f
(XEN)  000000005c000-000000005efff type=2 attr=000000000000000f
(XEN)  000000005f000-000000005ffff type=4 attr=000000000000000f
(XEN)  0000000060000-000000009efff type=3 attr=000000000000000f
(XEN)  000000009f000-000000009ffff type=0 attr=000000000000000f
(XEN)  0000000100000-0000022eebfff type=7 attr=000000000000000f
(XEN)  0000022eec000-0000022f2bfff type=4 attr=000000000000000f
(XEN)  0000022f2c000-0000026910fff type=7 attr=000000000000000f
(XEN)  0000026911000-00000297a7fff type=2 attr=000000000000000f
(XEN)  00000297a8000-000002a9a7fff type=1 attr=000000000000000f
(XEN)  000002a9a8000-000002a9a8fff type=2 attr=000000000000000f
(XEN)  000002a9a9000-000002a9aafff type=7 attr=000000000000000f
(XEN)  000002a9ab000-000002a9abfff type=2 attr=000000000000000f
(XEN)  000002a9ac000-000002a9acfff type=7 attr=000000000000000f
(XEN)  000002a9ad000-000002a9aefff type=2 attr=000000000000000f
(XEN)  000002a9af000-000002a9b4fff type=7 attr=000000000000000f
(XEN)  000002a9b5000-000002aa71fff type=1 attr=000000000000000f
(XEN)  000002aa72000-000002ae32fff type=4 attr=000000000000000f
(XEN)  000002ae33000-000002ae33fff type=10 attr=000000000000000f
(XEN)  000002ae34000-000002ae7dfff type=6 attr=800000000000000f
(XEN)  000002ae7e000-000002aedbfff type=4 attr=000000000000000f
(XEN)  000002aedc000-000002aeddfff type=2 attr=000000000000000f
(XEN)  000002aede000-000002aee0fff type=7 attr=000000000000000f
(XEN)  000002aee1000-000002aeeafff type=2 attr=000000000000000f
(XEN)  000002aeeb000-000002e2c0fff type=4 attr=000000000000000f
(XEN)  000002e2c1000-000002e4e1fff type=7 attr=000000000000000f
(XEN)  000002e4e2000-000002e8c0fff type=3 attr=000000000000000f
(XEN)  000002e8c1000-000002ec63fff type=0 attr=000000000000000f
(XEN)  000002ec64000-000002eddefff type=7 attr=000000000000000f
(XEN)  000002eddf000-000002f3eafff type=10 attr=000000000000000f
(XEN)  000002f3eb000-000002fe72fff type=6 attr=800000000000000f
(XEN)  000002fe73000-000002fffefff type=5 attr=800000000000000f
(XEN)  000002ffff000-000002fffffff type=4 attr=000000000000000f
(XEN)  0000100000000-00008c33fffff type=7 attr=000000000000000f
(XEN)  0000030000000-0000037ffffff type=0 attr=0000000000000000
(XEN)  00000e0000000-00000efffffff type=11 attr=8000000000000001
(XEN)  00000fe000000-00000fe010fff type=11 attr=8000000000000001
(XEN)  00000fec00000-00000fec00fff type=11 attr=8000000000000001
(XEN)  00000fee00000-00000fee00fff type=11 attr=8000000000000001
(XEN)  00000ff000000-00000ffffffff type=11 attr=8000000000000001
(XEN) Initing memory sharing.
(XEN) alt table ffff82d080658690 -> ffff82d080659c80
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) TSC deadline timer enabled
(XEN) mwait-idle: MWAIT substates: 0x142120
(XEN) mwait-idle: v0.4.1 model 0x5e
(XEN) mwait-idle: lapic_timer_reliable_states 0xffffffff
(XEN) VMX: Supported advanced features:
(XEN)  - APIC MMIO access virtualisation
(XEN)  - APIC TPR shadow
(XEN)  - Extended Page Tables (EPT)
(XEN)  - Virtual-Processor Identifiers (VPID)
(XEN)  - Virtual NMI
(XEN)  - MSR direct-access bitmap
(XEN)  - Unrestricted Guest
(XEN)  - VMCS shadowing
(XEN)  - VM Functions
(XEN)  - Virtualisation Exceptions
(XEN)  - Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) [VT-D]INTR-REMAP: Request device [0000:f0:1f.0] fault index 2a00, iommu reg = ffff82c00071e000
(XEN) [VT-D]INTR-REMAP: reason 25 - Blocked a compatibility format interrupt request
(XEN) Brought up 8 CPUs
(XEN) build-id: 2e8d5e7d6382866f8230d37bb12cc752
(XEN) traps.c:3451: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] -> ffff82d0803625be
(XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> ffff82d0803625be
(XEN) ACPI sleep modes: S3
(XENoll: Machine check polling timer started.
(XEN) Dom0 has maximum 792 PIRQs
(XEN) NX (Execute Disable) protection active
(XEN) *** LOADING DOMAIN 0 ***
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xdbd000
(XEN) ELF: phdr: paddr=0x1e00000 memsz=0x16a000
(XEN) ELF: phdr: paddr=0x1f6a000 memsz=0x1a558
(XEN) ELF: phdr: paddr=0x1f85000 memsz=0x2e4000
(XEN) ELF: memory: 0x1000000 -> 0x2269000
(XEN) ELF: note: GUEST_OS = "linux"
(XEN) ELF: note: GUEST_VERSION = "2.6"
(XEN) ELF: note: XEN_VERSION = "xen-3.0"
(XEN) ELF: note: VIRT_BASE = 0xffffffff80000000
(XEN) ELF: note: INIT_P2M = 0x8000000000
(XEN) ELF: note: ENTRY = 0xffffffff81f85180
(XEN) ELF: note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) ELF: note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) ELF: note: SUPPORTED_FEATURES = 0x90d
(XEN) ELF: note: PAE_MODE = "y= 0x1
(XEN) ELF: note: HV_START_LOW = 0xffff800000000000
(XEN) ELF: note: PADDR_OFFSET = 0
(XEN) ELF: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff82269000
(XEN)     virt_entry       = 0xffffffff81f85180
(XEN)     p2m_base         = 0x8000000000
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x2269000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   00000008a4000000->00000008a8000000 (7897528 pages to be allocated)
(XEN)  Init. ramdisk: 00000008c0cb4000->00000008c33ff905
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff82269000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: 0000008000000000->0000008003c74820
(XEN)  Start info:    ffffffff82269000->ffffffff822694b4
(XEN)  Page tables:   ffffffff8226a000->ffffffff8227f000
(XEN)  Boot stack:    ffffffff8227f000->ffffffff82280000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82400000
(XEN)  ENTRY ADDRESS: ffffffff81f85180
(XEN) Dom0 has maximum 8 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81dbd000
(XEN) ELF: phdr 1 at 0xffffffff81e00000 -> 0xffffffff81f6a000
(XEN) ELF: phdr 2 at 0xffffffff81f6a000 -> 0xffffffff81f84558
(XEN) ELF: phdr 3 at 0xffffffff81f85000 -> 0xffffffff820f8000
[    0.000000] efi: EFI_MEMMAP is not enabled.
[    0.000000] esrt: ESRT header is not in the memory map.
(XEN) d0: Forcing write emulation on MFNs e0000-effff
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.2
(XEN) PCI add device 0000:00:16.0
(XEN) PCI add device 0000:00:16.3
(XEN) PCI add device 0000:00:17.0
(XEN) PCI add device 0000:00:1c.0
(XEN) PCI add device 0000:00:1c.5
(XEN) PCI add device 0000:00:1c.6
(XEN) PCI add device 0000:00:1c.7
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1f.0
(XEN) PCI add device 0000:00:1f.2
(XEN) PCI add device 0000:00:1f.3
(XEN) PCI add device 0000:00:1f.4
(XEN) PCI add device 0000:00:1f.6
(XEN) PCI add device 0000:3a:00.0
(XEN) PCI add device 0000:3b:00.0
(XEN) PCI add device 0000:3d:00.0
(XEN) d0: Forcing read-only access to MFN fed00
[   59.590566] mce: Unable to init device /dev/mcelog (rc: -16)
[   59.603192] BERT: Can't request iomem region <000000002f3eaG^G^G^G^G
\^G^G^G^G^G^G^G^G^G^G^G/dev/sda2: clean, 298594/58933248 files, 6158548/235728640 blocks
[   64.397941] parport_pc parport_pc.956: Unable to set coherent dma mask: disabling DMA
[   64.398227] parport_pc parport_pc.mask: disabling DMA
[   64.398541] parport_pc parport_pc.632: Unable to set coherent dma mask: disabling DMA
[   65.681080] Error: Driver 'processor_aggregator' is already registered, aborting...
[   65.723464] Error: Driver 'processor_aggregator' is already registered, aborting...
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x004283200015828a
(XEN) traps.c:2863:d0v0 D000dd8280 to 0x0042832000dc8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042032000dd8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 000001b2 from 0x0000000000000000 to 0x000000000000a200

Ubuntu 16.10 konrad-Super-Server hvc0

konrad-Super-Server login: ro\b \b\b \bkonrad
Password: 
Last login: Wed Mar  8 14:02:06 EST 2017 on ttyS0
xl indo\b \b\b \bfoWelcome to Ubuntu 16.10 (GNU/Linux 4.8.0-39-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

13 packages can be updated.
4 updates are security updates.


sudo /bin/bash
konrad@konrad-Super-Server:~$ xl info
root@konrad-Super-Server:~/xen/dist/install/var# xl info
host                   : konrad-Super-Server
release                : 4.8.0-39-generic
version                : #42-Ubuntu SMP Mon Feb 20 11:47:27 UTC 2017
machine                : x86_64
nr_cpus                : 8
max_cpu_id             : 7
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 2
cpu_mhz                : 3504
hw_caps                : bfebfbff:77faf3ff:2c100800:00000121:0000000f:009c6fbf:00000000:00000100
virt_caps              : hvm hvm_directio
total_memory           : 32541
free_memory            : 129
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 9
xen_extra              : -unstable
xen_version            : 4.9-unstable
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : Tue Feb 21 20:19:58 2017 +0100 git:e4ccbd0
xen_commandline        : console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
cc_compiler            : gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
cc_compile_by          : konrad
cc_compile_domain      : 
cc_compile_date        : Tue Mar  7 22:13:08 EST 2017
build_id               : 2e8d5e7d6382866f8230d37bb12cc752
xend_config_format     : 4
root@konrad-Super-Server:~/xen/dist/install/var# efibootmgr -v
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0002,0001,0007,0004,0008,0006,0005,0000
Boot0000  Oracle VM Server	Ve....B..Gd-.;.A..MQ..L.I.B.A. .C.L. .S.l.o.t. .0.0.F.E. .v.0.1.0.5...\x7f.....BO..NO........q.I.B.A. .G.E. .S.l.o.t. .3.A.0.0. .v.1.4.0.4............\x7f.............rN.D+..,.\:.....\x7f.....B..Gd-.;.A..MQ..L.I.B.A. .G.E. .S.l.o.t. .3.A.0.0. .v.1.4.0.4...\x7f.....BO
Boot0003* UEFI: Built-in EFI Shell	VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
Boot0004* GRUB2	HD(1,GPT,89d637bf-cf8c-49cd-8f43-6a3e4dec3a66,0x800,0x100000)/File(\EFI\GRUB2\GRUB2.EFI)
Boot0005* CD/DVD Drive	BBS(CDROM,,0x0)..GO..NO........o.H.L.-.D.T.-.S.T. .B.D.-.R.E. . .W.H.1.4.N.S.4.0............\x7f........A......................\x7f.....>..Gd-.;.A..MQ..L.9.K.F.A.5.2.0.C.5.7. .3. . . . . . . . ...\x7f.....BO
Boot0006* Hard Drive	BBS(HD,,0x0)..GO..NO........o.W.D.C. .W.D.1.0.0.1.F.A.L.S.-.0.0.E.8.B.0............\x7f........A......................\x7f.....>..Gd-.;.A..MQ..L. . . . .W. .-.D.M.W.T.A.4.V.8.0.9.1.5.8...\x7f.....BO
Boot0007* Xen	HD(1,GPT,89d637bf-cf8c-49cd-8f43-6a3e4dec3a66,0x800,0x100000)/File(\EFI\XEN\XEN.EFI)
Boot0008* Linux	HD(1,GPT,89d637bf-cf8c-49cd-8f43-6a3e4dec3a66,0x800,0x100000)/File(\EFI\XEN\VMLINUZ)c.o.n.s.o.l.e.=.t.t.y.S.0.,.1.1.5.2.0.0. .r.o.o.t.=.U.U.I.D.=.3.f.1.e.3.5.f.b.-.9.9.0.7.-.4.8.d.1.-.b.6.2.1.-.4.2.3.6.9.d.5.a.d.8.8.f. .r.w. .i.n.i.t.r.d.=./.E.F.I./.x.e.n./.i.n.i.t.r.d...i.m.g.
root@konrad-Super-Server:~/xen/dist/install/var# \a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\aefibootmgr -v\b^[[Kn 4
BootNext: 0004
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0002,0001,0007,0004,0008,0006,0005,0000
Boot0000  Oracle VM Server
Boot0001* ubuntu
Boot0002* Network Card
Boot0003* UEFI: Built-in EFI Shell
Boot0004* GRUB2
Boot0005* CD/DVD Drive
Boot0006* Hard Drive
Boot0007* Xen
Boot0008* Linux
root@konrad-Super-Server:~/xen/dist/install/var# reboot
[^[[0;1;31mFAILED^[[0m] Failed unmounting /proc/xen.
[^[[0;32m  OK  ^[[0m] Unmounted /run/user/1000.
[^[[0;32m  OK  ^[[0m] Unmounted /boot/efi.
[^[[0;32m  OK  ^[[0m] Reached target Unmount All Filesystems.
[^[[0;32m  OK  ^[[0m] Stock on /dev/disk/by-uuid/B3D5-AADB.
[^[[0;32m  OK  ^[[0m] Stopped target Local File Systems (Pre).
[^[[0;32m  OK  ^[[0m] Stopped Remount Root and Kernel File Systems.
[^[[0;32m  OK  ^[[0m] Stopped Create Static Device Nodes in /dev.
[^[[0;32m  OK  ^[[0m] Removed slice system-systemd\x2dfsck.slice.
[^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Unattended Upgrades Shutdown.
[^[[0;32m  OK  ^[[0m] Reached target Shutdown.
[  230.516091] reboot: Restarting system
(XEN) Hardware Dom0 shutdown: rebooting machine
(XEN) APIC error on CPU0: 40(00)
^[[2J^[[1;1H^[[2J^[[1;1H^[[1;1H€\b \b^[[02;00H^[[0m^[[2;37;40m                                                                                ^[[03;00HPXE 2.1 Build 091 ^[[02;00HInitializing Intel(R) Boot Agent GE v1.4.04                                     ^[[04;00HPress Ctrl+S to enter the Setup Menu.                                           ^[[05;00H                                                                                ^[[06;00H                                                                                ^[[07;00H                                                                                ^[[08;00H                                                                                ^[[09;00H                                                                                ^[[10;00H                                                                                ^[[11;00H                                                                                ^[[12;00H                                                                                ^[[13;00H                                                                                ^[[14;00H                                                                                ^[[15;00H                                                                                ^[[16;00H                                                                                ^[[17;00H                                                                                ^[[18;00H                                                                                ^[[19;00H                                                                                ^[[20;00H                                                                                ^[[21;00H                                                                                ^[[22;00H                                                                                ^[[23;00H                                                                                ^[[24;00H                                                                                ^[[25;00H                                                                               ^[[25;00H^[[04;39H^[[01;00H                                                                                ^[[04;00HPress Ctrl+S to enter the Setup Menu..                                          ^[[04;39H^[[2J^[[1;1H^[[2J^[[1;1H^[[1;1H€\b \b^[[02;00H                                                                                ^[[03;00H                                                                                ^[[04;00HPress Ctrl+S to enter the Setup Menu.                                           ^[[05;00H                                                                                ^[[06;00H                                                                                ^[[07;00H                                                                                ^[[08;00H                                                                                ^[[09;00H                                                                                ^[[10;00H                                                                                ^[[11;00H                                                                                ^[[12;00H                                                                                ^[[13;00H                                                                                ^[[14;00H                                                                                ^[[15;00H                                                                                ^[[16;00H                                                                                ^[[17;00H                                                                                ^[[18;00H                                                                                ^[[19;00H                                                                                ^[[20;00H                                                                                ^[[21;00H                                                                                ^[[22;00H                                                                                ^[[23;00H                                                                                ^[[24;00H                                                                                ^[[25;00H                                                                               ^[[25;00H^[[04;39H^[[01;00H                                                                                ^[[02;00HInitializing Intel(R) Boot Agent CL v0.1.05                                     ^[[03;00HPXE 2.1 Build 092 (WfM 2.0)                                                     ^[[04;00HPress Ctrl+S to enter the Setup Menu..                                          ^[[04;39H^[[2J^[[1;1H^[[2J^[[1;1H^[[1;1H^[[0;30;47mWelcome to GRUB!

^[[0;37;40m^[[H^[[J^[[1;1H^[[?25l^[[m^[[H^[[J^[[1;1H^[[2;28HGNU GRUB  version 2.02~rc1

^[[m^[[4;2H+----------------------------------------------------------------------------+^[[5;2H|^[[5;79H|^[[6;2H|^[[6;79H|^[[7;2H|^[[7;79H|^[[8;2H|^[[8;79H|^[[9;2H|^[[9;79H|^[[10;2H|^[[10;79H|^[[11;2H|^[[11;79H|^[[12;2H|^[[12;79H|^[[13;2H|^[[13;79H|^[[14;2H|^[[14;79H|^[[15;2H|^[[15;79H|^[[16;2H|^[[16;79H|^[[17;2H+----------------------------------------------------------------------------+^[[m^[[18;2H^[[19;2H^[[m     Use the ^ and v keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.                           ^[[5;80H ^[[7m^[[5;3H*Ubuntu GNU/Linux, with Xen hypervisor                                      ^[[m^[[5;78H^[[m^[[m^[[6;3H Advanced options for Ubuntu GNU/Linux (with Xen hypervisor)                ^[[m^[[6;78H^[[m^[[m^[[7;3H                                                                            ^[[m^[[7;78H^[[m^[[m^[[8;3H                                                                            ^[[m^[[8;78H^[[m^[[m^[[9;3H                                                                            ^[[m^[[9;78H^[[m^[[m^[[10;3H                                                                            ^[[m^[[10;78H^[[m^[[m^[[11;3H                                                                            ^[[m^[[11;78H^[[m^[[m^[[12;3H                                                                            ^[[m^[[12;78H^[[m^[[m^[[13;3H                                                                            ^[[m^[[13;78H^[[m^[[m^[[14;3H                                                                            ^[[m^[[14;78H^[[m^[[m^[[15;3H                                                                            ^[[m^[[15;78H^[[m^[[m^[[16;3H                                                                            ^[[m^[[16;78H^[[m^[[16;80H ^[[5;78H^[[22;1H   The highlighted entry will be executed automatically in 10s.                ^[[5;78H^[[22;1H   The highlighted entry will be executed automatically in 9s.                 ^[[5;78H^[[22;1H   The highlighted entry will be executed automatically in 8s.                 ^[[5;78H^[[22;1H                                                                               ^[[23;1H                                                                               ^[[5;78H^[[?25h^[[H^[[J^[[1;1H^[[H^[[J^[[1;1HLoading Xen xen ...
Loading Linux 4.8.0-41-generic ...
 Xen 4.9-unstable
(XEN) Xen version 4.9-unstable (konrad@) (gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005) debug=y  Tue Mar  7 214M no-real-mode edd=off
(XEN) Video information:
(XEN)  VGA is graphics mode 1280x1024, 32 bpp
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) EFI RAM map:
(XEN)  0000000000000000 - 0000000000058000 (usable)
(XEN)  0000000000058000 - 0000000000059000 (reserved)
(XEN)  0000000000059000 - 000000000009f000 (usable)
(XEN)  000000000009f000 - 00000000000a0000 (reserved)
(XEN)  0000000000100000 - 000000002ae33000 (usable)
(XEN)  000000002ae33000 - 000000002ae34000 (ACPI NVS)
(XEN)  000000002ae34000 - 000000002ae7e000 (reserved)
(XEN)  000000002ae7e000 - 000000002e8c1000 (usable)
(XEN)  000000002e8c1000 - 000000002ec64000 (reserved)
(XEN)  000000002ec64000 - 000000002eddf000 (usable)
(XEN)  000000002eddf000 - 000000002f3eb000 (ACPI NVS)
(XEN)  000000002f3eb000 - 000000002ffff000 (reserved)
(XEN)  000000002ffff000 - 0000000030000000 (usable)
(XEN)  0000000030000000 - 0000000038000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fe000000 - 00000000fe011000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 00000008c3400000 (usable)
(XEN) Kdump: 512MB (524288kB) at 0x4000000
(XEN) ACPI: RSDP 2EE67000, 0024 (r2 SUPERM)
(XEN) ACPI: XSDT 2EE670B0, 00DC (r1 SUPERM   SUPERM  1072009 AMI     10013)
(XEN) EN) ACPI: APIC 2EE8A6B8, 00BC (r3                  1072009 AMI     10013)
(XEN) ACPI: FPDT 2EE8A778, 0044 (r1                  1072009 AMI     10013)
(XEN) ACPI: FIDT 2EE8A7C0, 009C (r1                  1072009 AMI     10013)
(XEN) ACPI: MCFG 2EE8A860, 003C (r1 SUPERM SMCI--MB  1072009 MSFT       97)
(XEN) ACPI: HPET 2EE8A8A0, 0038 (r1 SUPERM SMCI--MB  1072009 AMI.    5000B)
(XEN) ACPI: LPIT 2EE8A8D8, 0094 (r1 INTEL       SKL        0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8A970, 0248 (r2 INTEL  sensrhub        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8ABB8, 2BAE (r2 INTEL  PtidDevc     1000 INTL 20120913)
(XEN) ACPI: SSDT 2EE8D768, 0BE3 (r2 INTEL  Ther_Rvp     1000 INTL 20120913)
(XEN) ACPI: DBGP 2EE8E350, 0034 (r1 INTEL                  0 MSFT       5F)
(XEN) ACPI: DBG2 2EE8E388, 0054 (r0 INTEL                  0 MSFT       5F)
(XEN) ACPI: SSDT 2EE8E3E0, 06FD (r2  INTEL xh_rvp08        0 INTL 20120913)
(XEN) ACPI: SSDT 2EE8EAE0, 546C (r2 SaSsdt  SaSsdt      3000 INTL 20120913)
(XEN) ACPI: UEFI 2EE93F50, 0042 (r1                        0             0)
(XEN) ACPI: SSDT 2EE93F98, 0E73 (r2 CpuRef  CpuSsdt     3000 INTL 20120913)
(XEN) ACPI: BGRT 2EE94E10, 0038 (r1 SUPERM SMCI--MB  1072009 AMI     10013)
(XEN) ACPI: DMAR 2EE94E48, 00A8 (r1 INTEL      SKL         1 INTL        1)
(XEN) ACPI: ASF! 2EE94EF0, 00A5 (r32 INTEL       HCG        1 TFSM    F4240)
(XEN) ACPI: EINJ 2EE94F98, 0130 (r1    AMI AMI.EINJ        0 AMI.        0)
(XEN) ACPI: ERST 2EE950C8, 0230 (r1  AMIER AMI.ERST        0 AMI.        0)
(XEN) ACPI: BERT 2EE952F8, 0030 (r1    AMI AMI.BERT        0 AMI.        0)
(XEN) ACPI: HEST 2EE95328, 027C (r1    AMI AMI.HEST        0 AMI.        0)
(XEN) System RAM: 32541MB (33322560kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-00000008c3400000
(XEN) Domain heap initialised
(XEN) vesafb: framebuffer at 0x90000000, mapped to 0xffff82c000201000, using 5120k, total 5120k
(XEN) vesafb: mode is 1280x1024b: Truecolor: size=8:8:8:8, shift=24:16:8:0
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 94 (0x5e), Stepping 3 (raw 000506e3)
(XEN) SMBIOS 3.0 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1808 (32 bits)
(XEN) ACPI: v5 SLEEP INFO: control[0:0], status[0:0]
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:1804,1:0], pm1x_evt[1:1800,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT - 2f3e9f80/0000000000000000, using 32
(XEN) ACPI:             wakeup_vec[2f3e9f8c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x04] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x06] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x01] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x03] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x05] enabled)
(XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x8086a701 base: 0xfed00000
(XEN) [VT-D]  RMRR address range 38400000..3abfffff not in reserved memory; need "iommu_inclusive_mapping=1"?
(XEN) Xen ERST support is initialized.
(XEN) HEST: Table parsing has been initialized
(XEN) ACPI: BGRT: invalidating v1 image at 0x2c713018
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 24 GSI, 1528 MSI/MSI-X
(XEN) Not enabling x2APIC (upon firmware request)
(XEN) xstate: size: 0x440 and states: 0x1f
(XEN) mce_intel.c:735: MCA Capability: BCAST 1 SER 0 CMCI 1 firstbank 0 extended MCE MSR 0
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 23.999MHz HPET
(XEN) Detected 3504.203 MHz processor.
(XEN) EFI memory map:
(XEN)  0000000000000-000000bfff type=2 attr=000000000000000f
(XEN)  000000000c000-0000000047fff type=7 attr=000000000000000f
(XEN)  0000000048000-0000000057fff type=2 attr=000000000000000f
(XEN)  0000000058000-0000000058fff type=0 attr=000000000000000f
(XEN)  0000000059000-000000005efff type=7 attr=000000000000000f
(XEN)  000000005f000-000000005ffff type=4 attr=000000000000000f
(XEN)  0000000060000-000000009efff type=3 attr=000000000000000f
(XEN)  000000009f000-000000009ffff type=0 attr=000000000000000f
(XEN)  0000000100000-0000007561fff type=2 attr=000000000000000f
(XEN)  0000007562000-00000183f6fff type=7 attr=000000000000000f
(XEN)  00000183f7000-0000022eebfff type=2 attr=000000000000000f
(XEN)  0000022eec000-0000022f2bfff type=4 attr=000000000000000f
(XEN)  0000022f2c000-000002a96efff type=7 attr=000000000000000f
(XEN)  000002a96f000-000002aa71fff type=1 attr=000000000000000f
(XEN)  000002aa72000-000002ae32fff type=4 attr=000000000000000f
(XEN)  000002ae33000-000002ae33fff type=10 attr=000000000000000f
(XEN)  000002ae34000-000002ae7dfff type=6 attr=800000000000000f
(XEN)  000002ae7e000-000002aedbfff type=4 attr=000000000000000f
(XEN)  000002aedc000-000002bd90fff type=7 attr=000000000000000f
(XEN)  000002bd91000-000002e2c0fff type=4 attr=000000000000000f
(XEN)  000002e2c1000-000002e4e1fff type=7 attr=000000000000000f
(XEN)  000002e4e2000-000002e8c0fff type=3 attr=000000000000000f
(XEN)  000002e8c1000-000002ec63fff type=0 attr=000000000000000f
(XEN)  000002ec64000-000002eddefff type=7 attr=000000000000000f
(XEN)  000002eddf000-000002f3eafff type=10 attr=000000000000000f
(XEN)  000002f3eb000-000002fe72fff type=6 attr=800000000000000f
(XEN)  000002fe73000-000002fffefff type=5 attr=800000000000000f
(XEN)  000002ffff000-000002fffffff type=4 attr=000000000000000f
(XEN)  0000100000000-00008c33fffff type=7 attr=000000000000000f
(XEN)  0000030000000-0000037ffffff type=0 attr=0000000000000000
(XEN)  00000e0000000-00000efffffff type=11 attr=8000000000000001
(XEN)  00000fe000000-00000fe010fff type=11 attr=8000000000000001
(XEN)  00000fec00000-00000fec00fff type=11 attr=8000000000000001
(XEN)  00000fee00000-00000fee00fff type=11 attr=8000000000000001
(XEN)  00000ff000000-00000ffffffff type=11 attr=8000000000000001
(XEN) Initing memory sharing.
(XEN) alt table ffff82d0802fc678 -> ffff82d0802fdc38
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) nr_sockets: 1
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 64 KiB.
(XEN) mwait-idle: MWAIT substates: 0x142120
(XEN) mwait-idle: v0.4.1 model 0x5e
(XEN) mwait-idle: lapic_timer_reliable - Unrestricted Guest
(XEN)  - VMCS shadowing
(XEN)  - VM Functions
(XEN)  - Virtualisation Exceptions
(XEN)  - Page Modification Logging
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) [VT-D]INTR-REMAP: Request device [0000:f0:1f.0] fault index 0, iommu reg = ffff82c00071e000
(XEN) [VT-D]INTR-REMAP: reason 22 - Present field in the IRTE entry is clear
(XEN) Brought up 8 CPUs
(XEN) build-id: 61e0302359f0a97fe8b4cced75da81d0345a6091
(XEN) traps.c:3451: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] -> ffff82d08025253b
(XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> ffff82d08025253b
(XEN) ACPI sleep modes: S3
(XEN) VPMU: disabled
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Dom0 has maximum 792 PIRQs
(XEN) NX (Execute Disable) protection active
(XEN) *** LOADING DOMAIN 0 ***
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xdbd000
(XEN) ELF: phdr: paddr=0x1e00000 memsz=0x16a000
(XEN) ELF: phdr: paddr=0x1f6a000 memsz=0x1a558
(XEN) ELF: phdr: paddr=0x1f85000 memsz=0x2e4000
(XEN) ELF: memory: 0x1000000 -> 0x2269000
(XEN) ELF: note: GUEST_OS = "linux"
(XEN) ELF: note: GUEST_VERSION = "2.6"
(XEN) ELF: note: XEN_VERSION = "xen-3.0"
(XEN) ELF: note: VIRT_BASE = 0xffffffff80000000
(XEN) ELF: note: INIT_P2M = 0x8000000000
(XEN) ELF: note: ENTRY = 0xffffffff81f85180
(XEN) ELF: note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) ELF: note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) ELF: note: SUPPORTED_FEATURES = 0x90d
(XEN) ELF: notAE_MODE = "yes"
(XEN) ELF: note: LOADER = "generic"
(XEN) ELF: note: unknown (0xd)
(XEN) ELF: note: SUSPEND_CANCEL = 0x1
(XEN) ELF: note: MOD_START_PFN = 0x1
(XEN) ELF: note: HV_START_LOW = 0xffff800000000000
(XEN) ELF: note: PADDR_OFFSET = 0
(XEN) ELF: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff82269000
(XEN)     virt_entry       = 0xffffffff81f85180
(XEN)     p2m_base         = 0x8000000000
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x2269000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   00000008a0000000->00000008a4000000 (2053663 pages to be allocated)
(XEN)  Init. ramdisk: 00000008bca1f000->00000008c33ffc00
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff82269000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: 0000008000000000->0000008001000000
(XEN)  Start info:    ffffffff82269000->ffffffff822694b4
(XEN)  Page tables:   ffffffff8226a000->ffffffff8227f000
(XEN)  Boot stack:    ffffffff8227f000->ffffffff82280000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82400000
(XEN)  ENTRY ADDRESS: ffffffff81f85180
(XEN) Dom0 has maximum 8 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81dbd000
(XEN) ELF: phdr 1 at 0xffffffff81e00000 -> 0xffffffff81f6a000
(XEN) ELF: phdr 2 at 0xffffffff81f6a000 -> 0xffffffff81f84558
(XEN) ELF: phdr 3 at 0xffffffff81f85000 -> 0xffffffff820f8000
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) .......................................................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 348kB init memory
mapping kernel[    0.000000] Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017 (Ubuntu 4.8.0-41.44-generic 4.8.17)
[    0.000000] Command line: placeholder root=/dev/sda2 ro console=hvc0 loglevel=8 initcall_debug
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] Released 0 page(s)
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] Xen: [mem 0x0000000000000000-0x0000000000057fff] usable
[    0.000000] Xen: [mem 0x0000000000058000-0x0000000000058fff] reserved
[    0.000000] Xen: [mem 0x0000000000059000-0x000000000009efff] usable
[    0.000000] Xen: [mem 0x000000000009f000-0x00000000000fffff] reserved
[    0.000000] Xen: [mem 0x0000000000100000-0x000000002ae32fff] usable
[    0.000000] Xen: [mem 0x000000002ae33000-0x000000002ae33fff] ACPI NVS
[    0.000000] Xen: [mem 0x000000002ae34000-0x000000002ae7dfff] reserved
[    0.000000] Xen: [mem 0x000000002ae7e000-0x000000002e8c0fff] usable
[    0.000000] Xen: [mem 0x000000002e8c1000-0x000000002ec63fff] reserved
[    0.000000] Xen: [mem 0x000000002ec64000-0x000000002eddefff] usable
[    0.000000] Xen: [mem 0x000000002eddf000-0x000000002f3eafff] ACPI NVS
[    0.000000] Xen: [mem 0x000000002f3eb000-0x000000002fffefff] reserved
[    0.000000] Xen: [mem 0x000000002ffff000-0x000000002fffffff] usable
[    0.000000] Xen: [mem 0x0000000030000000-0x0000000037ffffff] reserved
[    0.000000] Xen: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] Xen: [mem 0x00000000fe000000-0x00000000fe010fff] reserved
[    0.000000] Xen: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] Xen: [mem 0x00000000fed90000-0x00000000fed91fff] reserved
[    0.000000] Xen: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] Xen: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] Xen: [mem 0x0000000100000000-0x00000002d166ffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v2.40 by American Megatrends
[    0.000000] efi:  ESRT=0x2fc39d98  ACPI=0x2ee67000  ACPI 2.0=0x2ee67000  SMBIOS=0xf05e0  SMBIOS 3.0=0x2fb85000  MPS=0xfca00 
[    0.000000] efi: EFI_MEMMAP is not enabled.
[    0.000000] esrt: ESRT header is not in the memory map.
[    0.000000] SMBIOS 3.0.0 present.
[    0.000000] Hypervisor detected: Xen
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x2d1670 max_arch_pfn = 0x400000000
[    0.000000] MTRR: Disabled
[    0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[    0.000000] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WC  WP  UC  UC  
[    0.000000] e820: last_pfn = 0x30000 max_arch_pfn = 0x400000000
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] BRK [0x0223d000, 0x0223dfff] PGTABLE
[    0.000000] BRK [0x0223e000, 0x0223efff] PGTABLE
[    0.000000] BRK [0x0223f000, 0x0223ffff] PGTABLE
[    0.000000] BRK [0x02240000, 0x02240fff] PGTABLE
[    0.000000] BRK [0x02241000, 0x02241fff] PGTABLE
[    0.000000] BRK [0x02242000, 0x02242fff] PGTABLE
[    0.000000] BRK [0x02243000, 0x02243fff] PGTABLE
[    0.000000] BRK [0x02244000, 0x02244fff] PGTABLE
[    0.000000] BRK [0x02245000, 0x02245fff] PGTABLE
[    0.000000] BRK [0x02246000, 0x02246fff] PGTABLE
[    0.000000] BRK [0x02247000, 0x02247fff] PGTABLE
[    0.000000] BRK [0x02248000, 0x02248fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x04000000-0x0a9e0fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000002EE67000 000024 (v02 SUPERM)
[    0.000000] ACPI: XSDT 0x000000002EE670B0 0000DC (v01 SUPERM SUPERM   01072009 AMI  00010013)
[    0.000000] ACPI: FACP 0x000000002EE8A5A8 00010C (v05                 01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 0x000000002EE67220 023387 (v02 SUPERM SMCI--MB 01072009 INTL 20120913)
[    0.000000] ACPI: FACS 0x000000002F3E9F80 000040
[    0.000000] ACPI: APIC 0x000000002EE8A6B8 0000BC (v03                 01072009 AMI  00010013)
[    0.000000] ACPI: FPDT 0x000000002EE8A778 000044 (v01                 01072009 AMI  00010013)
[    0.000000] ACPI: FIDT 0x000000002EE8A7C0 00009C (v01                 01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 0x000000002EE8A860 00003C (v01 SUPERM SMCI--MB 01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 0x000000002EE8A8A0 000038 (v01 SUPERM SMCI--MB 01072009 AMI. 0005000B)
[    0.000000] ACPI: LPIT 0x000000002EE8A8D8 000094 (v01 INTEL  SKL      00000000 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000002EE8A970 000248 (v02 INTEL  sensrhub 00000000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8ABB8 002BAE (v02 INTEL  PtidDevc 00001000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8D768 000BE3 (v02 INTEL  Ther_Rvp 00001000 INTL 20120913)
[    0.000000] ACPI: DBGP 0x000000002EE8E350 000034 (v01 INTEL           00000000 MSFT 0000005F)
[    0.000000] ACPI: DBG2 0x000000002EE8E388 000054 (v00 INTEL           00000000 MSFT 0000005F)
[    0.000000] ACPI: SSDT 0x000000002EE8E3E0 0006FD (v02 INTEL  xh_rvp08 00000000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x000000002EE8EAE0 00546C (v02 SaSsdt SaSsdt   00003000 INTL 20120913)
[    0.000000] ACPI: UEFI 0x000000002EE93F50 000042 (v01                 00000000      00000000)
[    0.000000] ACPI: SSDT 0x000000002EE93F98 000E73 (v02 CpuRef CpuSsdt  00003000 INTL 20120913)
[    0.000000] ACPI: BGRT 0x000000002EE94E10 000038 (v01 SUPERM SMCI--MB 01072009 AMI  00010013)
[    0.000000] ACPI: RMAD 0x000000002EE94E48 0000A8 (v01 INTEL  SKL      00000001 INTL 00000001)
[    0.000000] ACPI: ASF! 0x000000002EE94EF0 0000A5 (v32 INTEL   HCG     00000001 TFSM 000F4240)
[    0.000000] ACPI: EINJ 0x000000002EE94F98 000130 (v01 AMI    AMI.EINJ 00000000 AMI. 00000000)
[    0.000000] ACPI: ERST 0x000000002EE950C8 000230 (v01 AMIER  AMI.ERST 00000000 AMI. 00000000)
[    0.000000] ACPI: BERT 0x000000002EE952F8 000030 (v01 AMI    AMI.BERT 00000000 AMI. 00000000)
[    0.000000] ACPI: HEST 0x000000002EE95328 00027C (v01 AMI    AMI.HEST 00000000 AMI. 00000000)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Setting APIC routing to Xen PV.
[    0.000000] NUMA turned off
[    0.000000] Faking a node at [mem 0x0000000000000000-0x00000002d166ffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x1ff00e000-0x1ff012fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000002d166ffff]
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x0000000000057fff]
[    0.000000]   node   0: [mem 0x0000000000059000-0x000000000009efff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000002ae32fff]
[    0.000000]   node   0: [mem 0x000000002ae7e000-0x000000002e8c0fff]
[    0.000000]   node   0: [mem 0x000000002ec64000-0x000000002eddefff]
[    0.000000]   node   0: [mem 0x000000002ffff000-0x000000002fffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x00000002d166ffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x00000002d166ffff]
[    0.000000] On node 0 totalpages: 2097151
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 2920 pages used for memmap
[    0.000000]   DMA32 zone: 186866 pages, LIFO batch:31
[    0.000000]   Normal zone: 29786 pages used for memmap
[    0.000000]   Normal zone: 1906288 pages, LIFO batch:31
[    0.000000] p2m virtual area at ffffc90000000000, size is 40000000
[    0.000000] Remapped 857712 page(s)
[    0.000000] Reserving Intel graphics memory at 0x0000000038c00000-0x000000003abfffff
[    0.000000] ACPI: PM-Timer IO Port: 0x1808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x00058000-0x00058fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x2ae33000-0x2ae33fff]
[    0.000000] PM: Registered nosave memory: [mem 0x2ae34000-0x2ae7dfff]
[    0.000000] PM: Registered nosave memory: [mem 0x2e8c1000-0x2ec63fff]
[    0.000000] PM: Registered nosave memory: [mem 0x2eddf000-0x2f3eafff]
[    0.000000] PM: Registered nosave memory: [mem 0x2f3eb000-0x2fffefff]
[    0.000000] PM: Registered nosave memory: [mem 0x30000000-0x37ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0x38000000-0x38bfffff]
[    0.000000] PM: Registered nosave memory: [mem 0x38c00000-0x3abfffff]
[    0.000000] PM: Registered nosave memory: [mem 0x3ac00000-0xdfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xe0000000-0xefffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf0000000-0xfdffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe000000-0xfe010fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfe011000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfed8ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed90000-0xfed91fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed92000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfeefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfef00000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0x3ac00000-0xdfffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on Xen
[    0.000000] Xen version: 4.9-unstable (preserve-AD)
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] percpu: Embedded 36 pages/cpu @ffff8802d1400000 s107864 r8192 d31400 u262144
[    0.000000] pcpu-alloc: s107864 r8192 d31400 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] xen: PV spinlocks enabled
[    0.000000] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes)
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 2064360
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: placeholder root=/dev/sda2 ro console=hvc0 loglevel=8 initcall_debug
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] software IO TLB [mem 0x2cd400000-0x2d1400000] (64MB) mapped at [ffff8802cd400000-ffff8802d13fffff]
[    0.000000] Memory: 8027612K/8388604K available (8852K kernel code, 1441K rwdata, 3828K rodata, 1556K init, 1296K bss, 360992K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=8
[    0.000000] Using NULL legacy PIC
[    0.000000] NR_IRQS:33024 nr_irqs:488 0
[    0.000000] xen:events: Using FIFO-based ABI
[    0.000000] xen: --> pirq=1 -> irq=1 (gsi=1)
[    0.000000] xen: --> pirq=2 -> irq=2 (gsi=2)
[    0.000000] xen: --> pirq=3 -> irq=3 (gsi=3)
[    0.000000] xen: --> pirq=4 -> irq=4 (gsi=4)
[    0.000000] xen: --> pirq=5 -> irq=5 (gsi=5)
[    0.000000] xen: --> pirq=6 -> irq=6 (gsi=6)
[    0.000000] xen: --> pirq=7 -> irq=7 (gsi=7)
[    0.000000] xen: --> pirq=8 -> irq=8 (gsi=8)
[    0.000000] xen: --> pirq=9 -> irq=9 (gsi=9)
[    0.000000] xen: --> pirq=10 -> irq=10 (gsi=10)
[    0.000000] xen: --> pirq=11 -> irq=11 (gsi=11)
[    0.000000] xen: --> pirq=12 -> irq=12 (gsi=12)
[    0.000000] xen: --> pirq=13 -> irq=13 (gsi=13)
[    0.000000] xen: --> pirq=14 -> irq=14 (gsi=14)
[    0.000000] xen: --> pirq=15 -> irq=15 (gsi=15)
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [hvc0] enabled
[    0.000000] clocksource: xen: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000000] Xen: using vcpuop timer interface
[    0.000000] installing Xen timer for CPU 0
[    0.000000] tsc: Unable to calibrate against PIT
[    0.000000] tsc: HPET/PMTIMER calibration failed
[    0.000000] tsc: Detected 3504.202 MHz processor
[   10.825510] Calibrating delay loop (skipped), value calculated using timer frequency.. 7008.40 BogoMIPS (lpj=14016808)
[   10.825514] pid_max: default: 32768 minimum: 301
[   10.825526] ACPI: Core revision 20160422
[   10.904699] ACPI: 7 ACPI AML tables successfully acquired and loaded
[   10.904703] 
[   10.904930] Security Framework initialized
[   10.904932] Yama: becoming mindful.
[   10.905001] AppArmor: AppArmor initialized
[   10.905930] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[   10.907267] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[   10.907709] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
[   10.907772] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
[   10.908035] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[   10.908037] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[   10.908040] CPU: Physical Processor ID: 0
[   10.908042] CPU: Processor Core ID: 0
[   10.908046] mce: CPU supports 2 MCE banks
[   10.908060] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8
[   10.908062] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4
[   10.908303] Freeing SMP alternatives memory: 32K (ffffffff820ef000 - ffffffff820f7000)
[   10.910137] efi_bgrt: Ignoring BGRT: null image address
[   10.910140] ftrace: allocating 33435 entries in 131 pages
[   10.920011] cpu 0 spinlock event irq 25
[   10.920020] smpboot: APIC(0) Converting physical 0 to logical package 0
[   10.920025] smpboot: Max logical packages: 1
[   10.920028] Could not initialize VPMU for cpu 0, error -95
[   10.920038] calling  trace_init_flags_sys_exit+0x0/0xf @ 1
[   10.920041] initcall trace_init_flags_sys_exit+0x0/0xf returned 0 after 0 usecs
[   10.920044] calling  trace_init_flags_sys_enter+0x0/0xf @ 1
[   10.920047] initcall trace_init_flags_sys_enter+0x0/0xf returned 0 after 0 usecs
[   10.920050] calling  init_hw_perf_events+0x0/0x567 @ 1
[   10.920051] Performance Events: unsupported p6 CPU model 94 no PMU driver, software events only.
[   10.920056] initcall init_hw_perf_events+0x0/0x567 returned 0 after 3 usecs
[   10.920059] calling  xen_init_spinlocks_jump+0x0/0x29 @ 1
[   10.920061] initcall xen_init_spinlocks_jump+0x0/0x29 returned 0 after 0 usecs
[   10.920064] calling  init_real_mode+0x0/0x1ad @ 1
[   10.920079] initcall init_real_mode+0x0/0x1ad returned 0 after 12 usecs
[   10.920082] calling  trace_init_perf_perm_irq_work_exit+0x0/0x13 @ 1
[   10.920084] initcall trace_init_perf_perm_irq_work_exit+0x0/0x13 returned 0 after 0 usecs
[   10.920087] calling  register_trigger_all_cpu_backtrace+0x0/0x16 @ 1
[   10.920090] initcall register_trigger_all_cpu_backtrace+0x0/0x16 returned 0 after 0 usecs
[   10.920093] calling  numachip_system_init+0x0/0x67 @ 1
[   10.920095] initcall numachip_system_init+0x0/0x67 returned 0 after 0 usecs
[   10.920098] calling  kvm_spinlock_init_jump+0x0/0x46 @ 1
[   10.920100] init[   12.157466] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x3282d2c2a1f, max_idle_ns: 440795317688 ns
[   12.570136] i8042: No controller found
[   12.570173] initcall i8042_init+0x0/0x439 returned -19 after 1172926 usecs
[   12.570189] calling  mousedev_init+0x0/0x81 @ 1
[   12.570378] mousedev: PS/2 mouse device common for all mice
[   12.570383] initcall mousedev_init+0x0/0x81 returned 0 after 186 usecs
[   12.570386] calling  evdev_init+0x0/0x12 @ 1
[   12.570586] initcall evdev_init+0x0/0x12 returned 0 after 191 usecs
[   12.570590] calling  atkbd_init+0x0/0x27 @ 1
[   12.570600] initcall atkbd_init+0x0/0x27 returned 0 after 7 usecs
[   12.570603] calling  elants_i2c_driver_init+0x0/0x14 @ 1
[   12.570613] initcall elants_i2c_driver_init+0x0/0x14 returned 0 after 6 usecs
[   12.570615] calling  uinput_init+0x0/0x12 @ 1
[   12.570652] initcall uinput_init+0x0/0x12 returned 0 after 32 usecs
[   12.570654] calling  cmos_init+0x0/0x69 @ 1
[   12.570695] rtc_cmos 00:04: RTC can wake from S4
[   12.571059] rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
[   12.571204] rtc_cmos 00:04: alarms up to one month, y3k, 242 bytes nvram
[   12.571210] initcall cmos_init+0x0/0x69 returned 0 after 539 usecs
[   12.571212] calling  i2c_dev_init+0x0/0xb9 @ 1
[   12.571214] i2c /dev entries driver
[   12.571221] initcall i2c_dev_init+0x0/0xb9 returned 0 after 6 usecs
[   12.571224] calling  restart_poweroff_driver_init+0x0/0x14 @ 1
[   12.571232] initcall restart_poweroff_driver_init+0x0/0x14 returned 0 after 4 usecs
[   12.571234] calling  dm_init+0x0/0x46 @ 1
[   12.571264] device-mapper: uevent: version 1.0.3
[   12.571334] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[   12.571337] initcall dm_init+0x0/0x46 returned 0 after 99 usecs
[   12.571339] calling  cpufreq_gov_powersave_init+0x0/0x12 @ 1
[   12.571342] initcall cpufreq_gov_powersave_init+0x0/0x12 returned -19 after 0 usecs
[   12.571344] calling  cpufreq_gov_userspace_init+0x0/0x12 @ 1
[   12.571346] initcall cpufreq_gov_userspace_init+0x0/0x12 returned -19 after 0 usecs
[   12.571348] calling  cpufreq_gov_dbs_init+0x0/0x12 @ 1
[   12.571350] initcall cpufreq_gov_dbs_init+0x0/0x12 returned -19 after 0 usecs
[   12.571352] calling  cpufreq_gov_dbs_init+0x0/0x12 @ 1
[   12.571354] initcall cpufreq_gov_dbs_init+0x0/0x12 returned -19 after 0 usecs
[   12.571356] calling  intel_pstate_init+0x0/0x434 @ 1
[   12.571359] intel_pstate: Intel P-state driver initializing
[   12.571368] initcall intel_pstate_init+0x0/0x434 returned -19 after 9 usecs
[   12.571370] calling  ledtrig_disk_init+0x0/0x2e @ 1
[   12.571373] initcall ledtrig_disk_init+0x0/0x2e returned 0 after 0 usecs
[   12.571375] calling  ledtrig_mtd_init+0x0/0x2e @ 1
[   12.571377] initcall ledtrig_mtd_init+0x0/0x2e returned 0 after 0 usecs
[   12.571379] calling  ledtrig_cpu_init+0x0/0xbd @ 1
[   12.571582] ledtrig-cpu: registered to indicate activity on CPUs
[   12.571599] initcall ledtrig_cpu_init+0x0/0xbd returned 0 after 212 usecs
[   12.571601] calling  ledtrig_panic_init+0x0/0x39 @ 1
[   12.571604] initcall ledtrig_panic_init+0x0/0x39 returned 0 after 0 usecs
[   12.571607] calling  efivars_sysfs_init+0x0/0x210 @ 1
[   12.571609] EFI Variables Facility v0.08 2004-May-17
[   12.575032] initcall efivars_sysfs_init+0x0/0x210 returned 0 after 3341 usecs
[   12.575035] calling  esrt_sysfs_init+0x0/0x32c @ 1
[   12.575037] initcall esrt_sysfs_init+0x0/0x32c returned -38 after 0 usecs
[   12.575039] calling  skein_generic_init+0x0/0x56 @ 1
[   12.575464] initcall skein_generic_init+0x0/0x56 returned 0 after 412 usecs
[   12.575466] calling  intel_pmc_core_driver_init+0x0/0x1b @ 1
[   12.575491] initcall intel_pmc_core_driver_init+0x0/0x1b returned 0 after 21 usecs
[   12.575507] calling  gpio_clk_driver_init+0x0/0x14 @ 1
[   12.575513] initcall gpio_clk_driver_init+0x0/0x14 returned 0 after 3 usecs
[   12.575528] calling  extcon_class_init+0x0/0x18 @ 1
[   12.575532] initcall extcon_class_init+0x0/0x18 returned 0 after 1 usecs
[   12.575534] calling  powercap_init+0x0/0x28b @ 1
[   12.575549] initcall powercap_init+0x0/0x28b returned 0 after 12 usecs
[   12.575552] calling  pm_check_save_msr+0x0/0x20 @ 1
[   12.575555] initcall pm_check_save_msr+0x0/0x20 returned 0 after 0 usecs
[   12.575558] calling  sock_diag_init+0x0/0x35 @ 1
[   12.575580] initcall sock_diag_init+0x0/0x35 returned 0 after 19 usecs
[   12.575582] calling  blackhole_init+0x0/0x12 @ 1
[   12.575600] initcall blackhole_init+0x0/0x12 returned 0 after 0 usecs
[   12.575602] calling  gre_offload_init+0x0/0x49 @ 1
[   12.575604] initcall gre_offload_init+0x0/0x49 returned 0 after 0 usecs
[   12.575606] calling  sysctl_ipv4_init+0x0/0x4c @ 1
[   12.575646] initcall sysctl_ipv4_init+0x0/0x4c returned 0 after 36 usecs
[   12.575648] calling  cubictcp_register+0x0/0x5a @ 1
[   12.575650] initcall cubictcp_register+0x0/0x5a returned 0 after 0 usecs
[   12.575653] calling  inet6_init+0x0/0x335 @ 1
[   12.575707] NET: Registered protocol family 10
[   12.575912] initcall inet6_init+0x0/0x335 returned 0 after 250 usecs
[   12.575915] calling  packet_init+0x0/0x42 @ 1
[   12.575917] NET: Registered protocol family 17
[   12.575920] initcall packet_init+0x0/0x42 returned 0 after 2 usecs
[   12.575922] calling  dcbnl_init+0x0/0x4d @ 1
[   12.575924] initcall dcbnl_init+0x0/0x4d returned 0 after 0 usecs
[   12.575926] calling  init_dns_resolver+0x0/0xd3 @ 1
[   12.575931] Key type dns_resolver registered
[   12.575933] initcall init_dns_resolver+0x0/0xd3 returned 0 after 4 usecs
[   12.575935] calling  mcheck_init_device+0x0/0x181 @ 1
[   12.576056] mce: Unable to init device /dev/mcelog (rc: -16)
[   12.576059] initcall mcheck_init_device+0x0/0x181 returned -16 after 118 usecs
[   12.576076] calling  tboot_late_init+0x0/0x27f @ 1
[   12.576078] initcall tboot_late_init+0x0/0x27f returned 0 after 0 usecs
[   12.576081] calling  mcheck_late_init+0x0/0x5b @ 1
[   12.576085] initcall mcheck_late_init+0x0/0x5b returned 0 after 2 usecs
[   12.576087] calling  severities_debugfs_init+0x0/0x3b @ 1
[   12.576090] initcall severities_debugfs_init+0x0/0x3b returned 0 after 0 usecs
[   12.576093] calling  threshold_init_device+0x0/0x4d @ 1
[   12.576096] initcall threshold_init_device+0x0/0x4d returned 0 after 0 usecs
[   12.576099] calling  microcode_init+0x0/0x1d0 @ 1
[   12.576120] microcode: sig=0x506e3, pf=0x2, revision=0x84
[   12.576226] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   12.576229] initcall microcode_init+0x0/0x1d0 returned 0 after 125 usecs
[   12.576232] calling  hpet_insert_resource+0x0/0x24 @ 1
[   12.576235] initcall hpet_insert_resource+0x0/0x24 returned 0 after 0 usecs
[   12.576238] calling  update_mp_table+0x0/0x45f @ 1
[   12.576240] initcall update_mp_table+0x0/0x45f returned 0 after 0 usecs
[   12.576242] calling  lapic_insert_resource+0x0/0x40 @ 1
[   12.576245] initcall lapic_insert_resource+0x0/0x40 returned 0 after 0 usecs
[   12.576247] calling  print_ICs+0x0/0x1b3 @ 1
[   12.576250] initcall print_ICs+0x0/0x1b3 returned 0 after 0 usecs
[   12.576252] calling  pat_memtype_list_init+0x0/0x35 @ 1
[   12.576255] initcall pat_memtype_list_init+0x0/0x35 returned 0 after 0 usecs
[   12.576258] calling  create_tlb_single_page_flush_ceiling+0x0/0x29 @ 1
[   12.576262] initcall create_tlb_single_page_flush_ceiling+0x0/0x29 returned 0 after 1 usecs
[   12.576265] calling  create_init_pkru_value+0x0/0x29 @ 1
[   12.576268] initcall create_init_pkru_value+0x0/0x29 returned 0 after 0 usecs
[   12.576271] calling  init_oops_id+0x0/0x40 @ 1
[   12.576274] initcall init_oops_id+0x0/0x40 returned 0 after 0 usecs
[   12.576277] calling  sched_init_debug+0x0/0x24 @ 1
[   12.576279] initcall sched_init_debug+0x0/0x24 returned 0 after 0 usecs
[   12.576282] calling  pm_qos_power_init+0x0/0xac @ 1
[   12.576347] initcall pm_qos_power_init+0x0/0xac returned 0 after 61 usecs
[   12.576350] calling  pm_debugfs_init+0x0/0x24 @ 1
[   12.576352] initcall pm_debugfs_init+0x0/0x24 returned 0 after 0 usecs
[   12.576355] calling  printk_late_init+0x0/0x65 @ 1
[   12.576357] initcall printk_late_init+0x0/0x65 returned 0 after 0 usecs
[   12.576360] calling  tk_debug_sleep_time_init+0x0/0x3c @ 1
[   12.576363] initcall tk_debug_sleep_time_init+0x0/0x3c returned 0 after 0 usecs
[   12.576366] calling  load_uefi_certs+0x0/0x2a1 @ 1
[   12.576368] initcall load_uefi_certs+0x0/0x2a1 returned 0 after 0 usecs
[   12.576371] calling  debugfs_kprobe_init+0x0/0xcc @ 1
[   12.576378] initcall debugfs_kprobe_init+0x0/0xcc returned 0 after 4 usecs
[   12.576381] calling  taskstats_init+0x0/0x6c @ 1
[   12.576385] registered taskstats version 1
[   12.576386] initcall taskstats_init+0x0/0x6c returned 0 after 3 usecs
[   12.576389] calling  clear_boot_tracer+0x0/0x2e @ 1
[   12.576391] initcall clear_boot_tracer+0x0/0x2e returned 0 after 0 usecs
[   12.576393] calling  register_kprobe_prog_ops+0x0/0x20 @ 1
[   12.576396] initcall register_kprobe_prog_ops+0x0/0x20 returned 0 after 0 usecs
[   12.576398] calling  kdb_ftrace_register+0x0/0x32 @ 1
[   12.576406] initcall kdb_ftrace_register+0x0/0x32 returned 0 after 5 usecs
[   12.576408] calling  register_htab_map+0x0/0x20 @ 1
[   12.576411] initcall register_htab_map+0x0/0x20 returned 0 after 0 usecs
[   12.576413] calling  register_cgroup_array_map+0x0/0x14 @ 1
[   12.576416] initcall register_cgroup_array_map+0x0/0x14 returned 0 after 0 usecs
[   12.576419] calling  register_perf_event_array_map+0x0/0x14 @ 1
[   12.576421] initcall register_perf_event_array_map+0x0/0x14 returned 0 after 0 usecs
[   12.576423] calling  register_prog_array_map+0x0/0x14 @ 1
[   12.576426] initcall register_prog_array_map+0x0/0x14 returned 0 after 0 usecs
[   12.576428] calling  register_array_map+0x0/0x20 @ 1
[   12.576430] initcall register_array_map+0x0/0x20 returned 0 after 0 usecs
[   12.576433] calling  register_stack_map+0x0/0x14 @ 1
[   12.576435] initcall register_stack_map+0x0/0x14 returned 0 after 0 usecs
[   12.576437] calling  load_system_certificate_list+0x0/0x11e @ 1
[   12.576439] Loading compiled-in X.509 certificates
[   12.579112] Loaded X.509 cert 'Build time autogenerated kernel key: 01efd8212b4e7a4a90d2d5ccf24572af6c03b153'
[   12.579118] initcall load_system_certificate_list+0x0/0x11e returned 0 after 2614 usecs
[   12.579122] calling  fault_around_debugfs+0x0/0x35 @ 1
[   12.579129] initcall fault_around_debugfs+0x0/0x35 returned 0 after 4 usecs
[   12.579132] calling  max_swapfiles_check+0x0/0x8 @ 1
[   12.579134] initcall max_swapfiles_check+0x0/0x8 returned 0 after 0 usecs
[   12.579137] calling  init_zswap+0x0/0x3ff @ 1
[   12.579149] zswap: loaded using pool lzo/zbud
[   12.579308] initcall init_zswap+0x0/0x3ff returned 0 after 163 usecs
[   12.579310] calling  split_huge_pages_debugfs+0x0/0x35 @ 1
[   12.579313] initcall split_huge_pages_debugfs+0x0/0x35 returned 0 after 0 usecs
[   12.579315] calling  check_early_ioremap_leak+0x0/0x42 @ 1
[   12.579318] initcall check_early_ioremap_leak+0x0/0x42 returned 0 after 0 usecs
[   12.579320] calling  init_root_keyring+0x0/0xb @ 1
[   12.579326] initcall init_root_keyring+0x0/0xb returned 0 after 4 usecs
[   12.579329] calling  big_key_init+0x0/0xe2 @ 1
[   12.583387] Key type big_key registered
[   12.583390] initcall big_key_init+0x0/0xe2 returned 0 after 3963 usecs
[   12.583392] calling  init_trusted+0x0/0xaf @ 1
[   12.585377] Key type trusted registered
[   12.585379] initcall init_trusted+0x0/0xaf returned 0 after 1938 usecs
[   12.585382] calling  init_encrypted+0x0/0x117 @ 1
[   12.587375] Key type encrypted registered
[   12.587377] initcall init_encrypted+0x0/0x117 returned 0 after 1946 usecs
[   12.587379] calling  init_profile_hash+0x0/0x7f @ 1
[   12.587382] AppArmor: AppArmor sha1 policy hashing enabled
[   12.587384] initcall init_profile_hash+0x0/0x7f returned 0 after 2 usecs
[   12.587386] calling  init_ima+0x0/0x30 @ 1
[   12.587388] ima: No TPM chip found, activating TPM-bypass!
[   12.587412] initcall init_ima+0x0/0x30 returned 0 after 23 usecs
[   12.587415] calling  init_evm+0x0/0x51 @ 1
[   12.587416] evm: HMAC attrs: 0x1
[   12.587419] initcall init_evm+0x0/0x51 returned 0 after 2 usecs
[   12.587421] calling  prandom_reseed+0x0/0x2f @ 1
[   12.587427] initcall prandom_reseed+0x0/0x2f returned 0 after 3 usecs
[   12.587430] calling  pci_resource_alignment_sysfs_init+0x0/0x19 @ 1
[   12.587434] initcall pci_resource_alignment_sysfs_init+0x0/0x19 returned 0 after 1 usecs
[   12.587437] calling  pci_sysfs_init+0x0/0x55 @ 1
[   12.588502] initcall pci_sysfs_init+0x0/0x55 returned 0 after 1037 usecs
[   12.588505] calling  bert_init+0x0/0x212 @ 1
[   12.588509] BERT: Can't request iomem region <000000002f3eaf98-000000002f3eafab>.
[   12.588511] initcall bert_init+0x0/0x212 returned -5 after 3 usecs
[   12.588514] calling  boot_wait_for_devices+0x0/0x29 @ 1
[   12.588517] initcall boot_wait_for_devices+0x0/0x29 returned 0 after 0 usecs
[   12.588520] calling  dmar_free_unused_resources+0x0/0xbb @ 1
[   12.588522] initcall dmar_free_unused_resources+0x0/0xbb returned 0 after 0 usecs
[   12.588525] calling  deferred_probe_initcall+0x0/0x70 @ 1
[   12.588569] initcall deferred_probe_initcall+0x0/0x70 returned 0 after 39 usecs
[   12.588572] calling  late_resume_init+0x0/0x1a0 @ 1
[   12.588574]   Magic number: 9:710:299
[   12.588640] initcall late_resume_init+0x0/0x1a0 returned 0 after 64 usecs
[   12.588643] calling  pm_genpd_debug_init+0x0/0x4b @ 1
[   12.588647] initcall pm_genpd_debug_init+0x0/0x4b returned 0 after 1 usecs
[   12.588649] calling  genpd_poweroff_unused+0x0/0x7e @ 1
[   12.588651] initcall genpd_poweroff_unused+0x0/0x7e returned 0 after 0 usecs
[   12.588654] calling  rtc_hctosys+0x0/0xf7 @ 1
[   12.588766] rtc_cmos 00:04: setting system clock to 2017-03-09 22:15:30 UTC (1489097730)
[   12.588770] initcall rtc_hctosys+0x0/0xf7 returned 0 after 110 usecs
[   12.588773] calling  charger_manager_init+0x0/0x99 @ 1
[   12.588802] initcall charger_manager_init+0x0/0x99 returned 0 after 26 usecs
[   12.588818] calling  acpi_cpufreq_init+0x0/0x26c @ 1
[   12.588853] initcall acpi_cpufreq_init+0x0/0x26c returned -19 after 31 usecs
[   12.588856] calling  powernowk8_init+0x0/0x1a0 @ 1
[   12.588858] initcall powernowk8_init+0x0/0x1a0 returned -19 after 0 usecs
[   12.588861] calling  pcc_cpufreq_init+0x0/0x4a2 @ 1
[   12.588865] initcall pcc_cpufreq_init+0x0/0x4a2 returned -19 after 2 usecs
[   12.588867] calling  centrino_init+0x0/0x2b @ 1
[   12.588869] initcall centrino_init+0x0/0x2b returned -19 after 0 usecs
[   12.588871] calling  edd_init+0x0/0x2d1 @ 1
[   12.588886] BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
[   12.588893] initcall edd_init+0x0/0x2d1 returned 0 after 19 usecs
[   12.588896] calling  firmware_memmap_init+0x0/0x33 @ 1
[   12.588927] initcall firmware_memmap_init+0x0/0x33 returned 0 after 28 usecs
[   12.588930] calling  efi_shutdown_init+0x0/0x31 @ 1
[   12.588932] initcall efi_shutdown_init+0x0/0x31 returned 0 after 0 usecs
[   12.588935] calling  clk_debug_init+0x0/0x147 @ 1
[   12.588940] initcall clk_debug_init+0x0/0x147 returned 0 after 3 usecs
[   12.588943] calling  pci_mmcfg_late_insert_resources+0x0/0x53 @ 1
[   12.588945] initcall pci_mmcfg_late_insert_resources+0x0/0x53 returned 0 after 0 usecs
[   12.588948] calling  register_sk_filter_ops+0x0/0x38 @ 1
[   12.588951] initcall register_sk_filter_ops+0x0/0x38 returned 0 after 0 usecs
[   12.588954] calling  tcp_congestion_default+0x0/0x12 @ 1
[   12.588957] initcall tcp_congestion_default+0x0/0x12 returned 0 after 0 usecs
[   12.588960] calling  software_resume+0x0/0x2f0 @ 1
[   12.588962] PM: Hibernation image not present or could not be loaded.
[   12.588964] initcall software_resume+0x0/0x2f0 returned -2 after 2 usecs
[   12.588967] calling  regulator_init_complete+0x0/0x1f @ 1
[   12.588970] initcall regulator_init_complete+0x0/0x1f returned 0 after 0 usecs
[   12.588973] calling  clk_disable_unused+0x0/0x160 @ 1
[   12.588976] initcall clk_disable_unused+0x0/0x160 returned 0 after 0 usecs
^G^G^G^G^G^G^G^G^G^G^G^G[   12.589328] Freeing unused kernel memory: 1556K (ffffffff81f[   13.537103] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   13.538526] acpi device:0f: registered as cooling_device13
[   13.538740] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
[   13.538955] [drm] Initialized i915 1.6.0 20160711 for 0000:00:02.0 on minor 0
[   13.539081] initcall i915_init+0x0/0x62 [i915] returned 0 after 832253 usecs
[   13.571419] usb 3-2: New USB device found, idVendor=1c4f, idProduct=0002
[   13.571432] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   13.571441] usb 3-2: Product: USB Keyboard
[   13.571447] usb 3-2: Manufacturer: SIGMACHIP
[   13.580904] calling  hid_init+0x0/0x1000 [usbhid] @ 205
[   13.614711] usbcore: registered new interface driver usbhid
[   13.614723] usbhid: USB HID core driver
[   13.614739] initcall hid_init+0x0/0x1000 [usbhid] returned 0 after 33022 usecs
[   13.618155] calling  hid_generic_init+0x0/0x1000 [hid_generic] @ 205
[   13.618531] input: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) as /devices/pci0000:00/0000:00:1c.7/0000:3d:00.0/usb3/3-1/3-1:1.0/0003:045E:0040.0001/input/input4
[   13.618928] hid-generic 0003:045E:0040.0001: input,hidraw0: USB HID v1.10 Mouse [Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)] on usb-0000:3d:00.0-1/input0
[   13.619301] input: SIGMACHIP USB Keyboard as /devices/pci0000:00/0000:00:1c.7/0000:3d:00.0/usb3/3-2/3-2:1.0/0003:1C4F:0002.0002/input/input5
[   13.677945] hid-generic 0003:1C4F:0002.0002: input,hidraw1: USB HID v1.10 Keyboard [SIGMACHIP USB Keyboard] on usb-0000:3d:00.0-2/input0
[   13.678356] input: SIGMACHIP USB Keyboard as /devices/pci0000:00/0000:00:1c.7/0000:3d:00.0/usb3/3-2/3-2:1.1/0003:1C4F:0002.0003/input/input6
[   13.738124] hid-generic 0003:1C4F:0002.0003: input,hidraw2: USB HID v1.10 Device [SIGMACHIP USB Keyboard] on usb-0000:3d:00.0-2/input1
[   13.738175] initcall hid_generic_init+0x0/0x1000 [hid_generic] returned 0 after 117187 usecs
[   13.831271] fbcon: inteldrmfb (fb0) is primary device
[   14.200740] Console: switching to colour frame buffer device 160x64
[   14.223209] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system G^G^G^Gdone.
^G^G^G^G^GBegin: Will now check root file system ... fsck from util-linux 2.28.2
[/sbin/fsck.ext4 (1) -- /dev/sda2] fsck.ext4 -a -C0 /dev/sda2 
/dev/sda2: clean, 299440/58933248 files, 6209304/235728640 blocks
done.
[   14.501754] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... done.
[   14.653879] [drm] RC6 on
[   15.520476] calling  init_autofs4_fs+0x0/0x26 [autofs4] @ 1
[   15.520770] initcall init_autofs4_fs+0x0/0x26 [autofs4] retu[   15.573717] calling  xt_init+0x0/0x1000 [x_tables] @ 1
[   15.573758] initcall xt_init+0x0/0x1000 [x_tables] returned 0 after 2 usecs
[   15.597333] calling  ip_tables_init+0x0/0x1000 [ip_tables] @ 1
[   15.597376] ip_tables: (C) 2000-2006 Netfilter Core Team[   15.716614] systemd[1]: systemd 231 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBC15.716877] systemd[1]: Detected virtualization xen.
[   15.716897] systemd[1]: Detected architecture x86-64.
^G
Welcome to ^[[1mUbuntu 16.10^[[0m!

[   15.746623] systemd[1]: Set hostname to <konrad-Super-Server>.
[   17.201618] systemd[1]: Listening on udev Control Socket.
[^[[0;32m  OK  ^[[0m] Listening on udev Control Socket.
[   17.20ournal Socket.
[   17.202603] systemd[1]: Listening on Syslog Socket.
[^[[0;32m  OK  ^[[0m] Listening on Syslog Socket.
[   17.203049] systemd[1]: Created slice User and Session Slice.
[^[[0;32m  OK  ^[[0m] Created slice User and Session Slice.
[   17.203276] systemd[1]: Listening on Journal Socket (/dev/log).
[^[[0;32m  OK  ^[[0m] Listening on Journal Socket (/dev/log).
[^[[0;32m  OK  ^[[0m] Reached target Encrypted Volumes.
[^[[0;32m  OK  ^[[0m] Created slice System Slice.
[^[[0;32m  OK  ^[[0m] Created slice system-serial\x2dgetty.slice.
^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G         Mounting Debug File System...
^G^G^G^G^G^G^G^G^G^G         Starting Set the console keyboard layout...
^G^G[^[[0;32m  OK  ^[[0m] Created slice system-systemd\x2dfsck.slice.
         Mounting POSIX Message Queue File System...
[^[[0;32m  OK  ^[[0m] Reached target Slices.
         Starting Load Kernel Modules...
[^[[0;32m  OK  ^[[0m] Listening on /dev/initctl Compatibility Named Pipe.
[^[[0;32m  OK  ^[[0m] Listening on Journal Audit Socket.
         Starting Journal Service...
[^[[0;32m  OK  ^[[0m] Set up automount Arbitrary Executab...ats File System Automount Point.
         Starting Uncomplicated firewall...
[^[[0;32m  OK  ^[[0m] Listening on fsck to fsckd communication Socket.
         Starting Create list of required st... nodes for the current kernel...
[^[[0;32m  OK  ^[[0m] Listening on udev Kernel Socket.
[^[[0;32m  OK  ^[[0m] Reached target Remote File Systems.
[^[[0;32m  OK  ^[[0m] Reached target User and Group Name Lookups.
[   17.420386] calling  parport_default_proc_register+0x0/0x1000 [parport] @ 308
[   17.420461] initcall parport_default_proc_ed 0 after 30 usecs
[^[[0;32m  OK  ^[[0m] Started Uncomplicated firewall.
[^[[0;32m  OK  ^[[0m] Started Create list of required sta...ce nodes for the current kernel.
[   17.485426] calling  lp_init_module+0x0/0x1000 [lp] @ 308
         Starting Create Static Device Nodes in /dev...
[^[[0;32m  OK  ^[[0m] Mounted POSIX Message Queue File System.
[^[[0;32m  OK  ^[[0m] Mounted Debug File System.
[^[[0;32m  OK  ^[[
[   17.657874] lp: driver loaded but no devices found
[   17.657917] initcall lp_init_module+0x0/0x1000 [lp] returned 0 after [   17.685721] calling  ppdev_init+0x0/0x1000 [ppdev] @ 308
[   17.690781] ppdev: user-space parallel port driver
[   17.690[   17.720345] calling  parport_pc_init+0x0/0xf23 [parport_pc] @ 308
[   17.720527] parport_pc parport_pc.956: Unable to set c  17.720813] parport_pc parport_pc.888: Unable to set coherent dma mask: disabling DMA
[   17.721114] parport_pc parport_pc.632: Unable to set coherent dma mask: disabling DMA
[   17.721404] initcall parport_pc_init+0x0/0xf23 [parport_pc] returned 0 after 995 usecs
[^[[0;32m  OK  ^[[0m^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G] Started Load Kernel Modules.
         Starting Apply Kernel Variables...
         Mounting FUSE Control File System...
[^[[0;32m  OK  ^[[0m] Mounted FUSE Control File System.
[^[[0;32m  OK  ^[[0m] Started Apply Kernel Variables.
[^[[0;32m  OK  ^[[0m] Started Set the console keyboard layout.
[^[[0;32m  OK  ^[[0m] Started Create Static Device Nodes in /dev.
         Starting udev Kernel Device Manager...
[^[[0;32m  OK  ^[[0m] Started udev Kernel Device Manager.
         Starting Remount Root and Kernel File Systems...
[^[[0;32m  OK  ^[[0m] Started Remount Root and Kernel File Systems.
         Starting Flush Journal to Persistent Storage...
 m Seed...
[^[[0;32m  OK  ^[[0m] Reached target Local File Systems (Pre).
         Starting udev Coldplug all Devices...
[^[[0;32m  OK  ^[[0m] Started Flush Journal to Persistent Storage.
[^[[0;32m  OK  ^[[0m] Started Load/Save Random Seed.
[^[[0;32m  OK  ^[[0m] Started udev Coldplug all Devices.
[^[[0;32m  OK  ^[[0m] Started Dispatch Password Requests to Console Directory Watch.
[   19.080226] Error: Driver 'processor_aggregator' is already registered, aborting...
[^[[0;32m  OK  ^[[0m] Created slice system-systemd\x2dbacklight.slice.
         Starting Load/Save Screen Backlight...ness of ba^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G[^[[0;32m  OK  ^[[0m] Started Load/Save Screen Backlight ...htness of backlight:acpi_video0.
[^[[0;32m  OK  ^[[0m] Found device /dev/hvc0.
[^[[0;32m  OK  ^[[0m] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 3.
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 3.
         Activating swap Swap Partition...
[^[[0;32m  OK  ^[[0m] Reached target Sound Card.
[^[[0;32m  OK  ^[[0m] Found device WDC_WD1001FALS-00E8B0 EFI\x20System\x20Partition.
         Starting File System Check on /dev/disk/by-uuid/B3D5-AADB...
[^[[0;32m  OK  ^[[0m] Activated swap Swap Partition.
[^[[0;32m  OK  ^[[0m] Activated swap /dev/disk/by-uuid/223b4458-f860-451c-a67OK  ^[[0m] Reached target Swap.
[^[[0;32m  OK  ^[[0m] Started File System Check Daemon to report status.
[^[[0;32m  OK  ^[[0m] Started File System Check on /dev/disk/by-uuid/B3D5-AADB.
         Mounting /boot/efi...
[^[[0;32m  OK  ^[[0m] Mounted /boot/efi.
[^[[0;32m  OK  ^[[0m] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
         Starting Tell Plymouth To Write Out Runtime Data...
             Starting Clean up any mess left by 0dns-up...^G^G^G^G^G^G^G^G^G^G^G
         Starting Set console font and keymap...[^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^G^[[0;32m  OK  ^[[0m] Started Clean up any mess left by 0dns-up.
         Starting Nameser^G^G^G^G^G^G^G^G[^[[0;32m  OK  ^[[0m] Started Set console font and keymap.
[^[[0;32m  OK  ^[[0m] Started Nameserver information manager.
[^[[0;32m  OK  ^[[0m] Started Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[^[[0;32m  OK  ^[[0m] Started Update UTMP about System Boot/Shutdown.
[^[[0;32m  OK  ^[[0m] Started Network Time Synchronization.
[^[[0;32m  OK  ^[[0m] Reached target System Time Synchronized.
[^[[0;32m  OK  ^[[0m] Started AppArmor initialization.
[^[[0;32m  OK  ^[[0m] Reached target System Initialization.
[^[[0;32m  OK  ^[[0m] Listening on ACPID Listen Socket.
[^[[0;32m  OK  ^[[0m] Started ACPI Events Check.
[^[[0;32m  OK  ^[[0m] Listening on UUID daemon activation socket.
[^[[0;32m  OK ;32m  OK  ^[[0m] Listening on CUPS Scheduler.
[^[[0;32m  OK  ^[[0m] Started Timer to automatically refresh installed snaps.
[^[[0;32m  OK  ^[[0m] Started Daily apt activities.
[^[[0;32m  OK  ^[[0m] Reached target Timers.
[^[[0;32m  OK  ^[[0m] Listening on D-Bus System Message Bus Socket.
^G[^[[0;32m  OK  ^[[0m] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
         ^G^G^G^G^G^G^G^G^GStarting Socket activation for snappy daemon.
^G^G^G^G^G^G^G^G^G^G^G         Starting Raise network interfaces...
[^[[0;32m  OK  ^[[0m] Listening on Socket activation for snappy daemon.
[^[[0;32m  OK  ^[[0m] Reached target Sockets.
[^[[0;32m  OK  ^[[0m] Reached target Basic System.
[^[[0;32m  OK  ^[[0m] Started Cgroup management daemon.
         Starting LSB: automatic crash report generation...
         Starting System Logging Service...
         Starting Detect the available GPUs and deal with any system changes...
[^[[0;32m  OK  ^[[0m] Started ACPI event daemon.
         Starting LSB: daemon to balance interrupts for SMP systems...
[^[[0;32m  OK  ^[[0m] Started D-Bus System Message Bus.
         Starting LSB: Record successful boot for GRUB...
         Starting Network Manager...
[^[[0;32m  OK  ^[[0m] Started R^G^G^G         Starting Modem Manager...
^G^G^G^G^G^G^G^G^G^G         Starting Thermal Daemon Service...
         Starting Run Click system-level hooks...
         Starting LSB: Speech Dispatcher...
[^[[0;32m  OK  ^[[0m] Started crash report submission daemon.
         Starting Save/Restore Sound Card State...
         Starting Avahi mDNS/DNS-SD Stack...
[^[[0;32m  OK  ^[[0m] Started Regular background program processing daemon.
         Starting Login Service...
[^[[0;32m  OK  ^[[0m] Started CUPS Scheduler.
         Starting Restore /etc/resolv.conf i...re the ppp link was shut down...
[^[[0;32m  OK  ^[[0m] Started Snappy daemon.
         Starting Auto import assertions from block devices...
[^[[0;32m  OK  ^[[0m] Started System Logging Service.
[^[[0;32m  OK  ^[[0m] Started Detect the available GPUs and deal with any system changes.
[^[[0;32m  OK  ^[[0m] Started Restore /etc/resolv.conf if...fore the ppp link was shut down.
[^[[0;32m  OK  ^[[0m] Started Auto import assertions from block devices.
[^[[0;32m  OK  ^[[0m] Started Save/Restore Sound Card State.
[^[[0;32m  OK  ^[[0m] Started Avahi mDNS/DNS-SD Stack.
[^[[0;32m  OK  ^[[0m] Started Make remote CUPS printers available locally.
[^[[0;32m  OK  ^[[0m] Started LSB: Speech Dispatcher.
[^[[0;32m  OK  ^[[0m] Started LSB: automatic crash report generation.
[^[[0;32m  OK  ^[[0m] Started Login Service.
[^[[0;32m  OK  ^[[0m] Started LSB: daemon to balance interrupts for SMP systems.
[^[[0;32m  OK  ^[[0m] Started Thermal Daemon Service.
[^[[0;32m  OK  ^[[0m] Started LSB: Record successful boot for GRUB.
         Starting Authenticate and Authorize Users to Run Privileged Tasks...
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x004283200015828a
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042832000dd0280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042832000dc8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 00000610 from 0x0042832000dd8280 to 0x0042032000dd8280
(XEN) traps.c:2863:d0v0 Domain attempted WRMSR 000001b2 from 0x0000000000000000 to 0x000000000000a200
[^[[0;32m  OK  ^[[0m] Started Raise network interfaces.
[^[[0;32m  OK  ^[[0m] Started Authenticate and Authorize Users to Run Priv^G^G^G^G[^[[0;32m  OK  ^[[0m] Started Accounts Service.
[^[[0;32m  OK  ^[[0m] Started Network Manager.
[^[[0;32m  OK  ^[[0m] Reached target Network.
         Starting OpenBSD Secure Shell server...
         Starting Network Name Resolution...
         Starting Permit User Sessions...
         Starting OpenVPN service...
[^[[0;32m  OK  ^[[0m] Started Modem Manager.
         Starting Network Manager Script Dispatcher Service...
[^[[0;32m  OK  ^[[0m] Started Permit User Sessions.
         Starting Hold until boot process finishes up...
         Starting Light Display Manager...
[^[[0;32m  OK  ^[[0m] Started Hold until boot process finishes up.
         Starting Set console scheme...
[^[[0;32m  OK  ^[[0m] Started Serial Getty on hvc0.
[^[[0;32m  OK  ^[[0m] Started OpenVPN service.
[^[[0;32m  OK  ^[[0m] Started Network Name Resolution.
[^[[0;32m  OK  ^[[0m] Started Network Manager Script Dispatcher Service.
[^[[0;32m  OK  ^[[0m] Started Set console scheme.
[^[[0;32m  OK  ^[[0m] Created slice system-getty.slice.
[^[[0;32m  OK  ^[[0m] Started Getty on tty1.
[^[[0;32m  OK  ^[[0m] Reached target Login Prompts.
         Starting Hostname Service...
[^[[0;32m  OK  ^[[0m] Started Hostname Service.
[^[[0;32m  OK  ^[[0m] Started OpenBSD Secure Shell server.
[^[[0;32m  OK  ^[[0m] Started Light Display Manager.

Ubuntu 16.10 konrad-Super-Server hvc0

konrad-Super-Server login: konrad
Password: 
Last login: Thu Mar  9 17:12:39 EST 2017 from 192.168.106.1 on pts/4
sudo /bin/bash
Welcome to Ubuntu 16.10 (GNU/Linux 4.8.0-41-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management: ical.com
 * Support:        https://ubuntu.com/advantage

7 packages can be updated.
0 updates are security updates.

^G^G^G^G^G^G^Gkonrad@konrad-Super-Server:~$ sudo /bin/bash
p[sudo] password for konrad: 
Sorry, try again.
[sudo] password for konrad: 
root@konrad-Super-Server:~# xl info
xencall: error: Could not obtain handle on privileged command interface: No such file or directory
Segmentation fault (core dumped)
root@konrad-Super-Server:~# /etc/init.d/xencommons start
Starting /usr/local/sbin/xenstored...Setting domain 0 name, domid and JSON config...
Done setting up Dom0
Starting xenconsoled...
Starting QEMU as disk backend for dom0
xl info
root@konrad-Super-Server:~# xl info
host                   : konrad-Super-Server
release                : 4.8.0-41-generic17
machine                : x86_64
nr_cpus                : 8
max_cpu_id             : 7
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 2
cpu_mhz                : 3504
hw_caps                : bfebfbff:77faf3ff:2c100800:00000121:0000000f:009c6fbf:00000000:00000100
virt_caps              : hvm hvm_directio
total_memory           : 32541
free_memory            : 23407
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 9
xen_extra              : -unstable
xen_version            : 4.9-unstable
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : Thu Mar 2 17:15:26 2017 -0800 git:caf053f
xen_commandline        : placeholder loglvl=all guest_loglvl=all dom0_mem=max:8G console=com1,vga com1=115200,8n1 crashkernel=512M@64M no-real-mode edd=off
cc_compiler            : gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
cc_compile_by          : konrad
cc_compile_domain      : 
cc_compile_date        : Tue Mar  7 21:30:46 EST 2017
build_id               : 61e0302359f0a97fe8b4cced75da81d0345a6091
xend_config_format     : 4
root@konrad-Super-Server:~# \a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-09 20:02               ` Doug Goldstein
  2017-03-09 22:20                 ` Konrad Rzeszutek Wilk
@ 2017-03-15 11:35                 ` Daniel Kiper
  2017-03-15 14:27                   ` Doug Goldstein
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-15 11:35 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

[-- Attachment #1: Type: text/plain, Size: 749 bytes --]

On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:

[...]

> Still missing 'xl info'.

Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
version (it is the latest one). Installed latest Debian testing (Debian
GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
patches, on it. Everything works (I left machine working last night).
Guest boots without any issue. Please take look at attached logs.

Doug, could you tell me how exactly did you test your machine? I need OS
type, version, C version (GCC, clang, anything else), bintuils version,
etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.

Daniel

[-- Attachment #2: dmesg --]
[-- Type: text/plain, Size: 52139 bytes --]

[    0.000000] Linux version 4.9.0-2-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170221 (Debian 6.3.0-8) ) #1 SMP Debian 4.9.13-1 (2017-02-27)
[    0.000000] Command line: placeholder root=/dev/mapper/vg00-root ro quiet
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] Released 0 page(s)
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] Xen: [mem 0x0000000000000000-0x0000000000057fff] usable
[    0.000000] Xen: [mem 0x0000000000058000-0x0000000000058fff] reserved
[    0.000000] Xen: [mem 0x0000000000059000-0x000000000009dfff] usable
[    0.000000] Xen: [mem 0x000000000009e000-0x00000000000fffff] reserved
[    0.000000] Xen: [mem 0x0000000000100000-0x000000009d8c0fff] usable
[    0.000000] Xen: [mem 0x000000009d8c1000-0x000000009dd80fff] reserved
[    0.000000] Xen: [mem 0x000000009dd81000-0x00000000a2283fff] usable
[    0.000000] Xen: [mem 0x00000000a2284000-0x00000000a233efff] reserved
[    0.000000] Xen: [mem 0x00000000a233f000-0x00000000a2363fff] ACPI data
[    0.000000] Xen: [mem 0x00000000a2364000-0x00000000a2c93fff] ACPI NVS
[    0.000000] Xen: [mem 0x00000000a2c94000-0x00000000a2ffefff] reserved
[    0.000000] Xen: [mem 0x00000000a2fff000-0x00000000a2ffffff] usable
[    0.000000] Xen: [mem 0x00000000a3800000-0x00000000a7ffffff] reserved
[    0.000000] Xen: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[    0.000000] Xen: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] Xen: [mem 0x00000000fed00000-0x00000000fed03fff] reserved
[    0.000000] Xen: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] Xen: [mem 0x00000000fed90000-0x00000000fed91fff] reserved
[    0.000000] Xen: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] Xen: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] Xen: [mem 0x0000000100000000-0x000000015e29dfff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v2.40 by American Megatrends
[    0.000000] efi:  ACPI=0xa2346000  ACPI 2.0=0xa2346000  ESRT=0xa2ee7b98  SMBIOS=0xa2ee7d18 
[    0.000000] SMBIOS 2.8 present.
[    0.000000] DMI:                  /NUC5i3MYBE, BIOS MYBDWi30.86A.0041.2017.0116.2158 01/16/2017
[    0.000000] Hypervisor detected: Xen
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x15e29e max_arch_pfn = 0x400000000
[    0.000000] MTRR: Disabled
[    0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[    0.000000] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WC  WP  UC  UC  
[    0.000000] e820: last_pfn = 0xa3000 max_arch_pfn = 0x400000000
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] BRK [0x01f2b000, 0x01f2bfff] PGTABLE
[    0.000000] BRK [0x01f2c000, 0x01f2cfff] PGTABLE
[    0.000000] BRK [0x01f2d000, 0x01f2dfff] PGTABLE
[    0.000000] BRK [0x01f2e000, 0x01f2efff] PGTABLE
[    0.000000] BRK [0x01f2f000, 0x01f2ffff] PGTABLE
[    0.000000] BRK [0x01f30000, 0x01f30fff] PGTABLE
[    0.000000] BRK [0x01f31000, 0x01f31fff] PGTABLE
[    0.000000] BRK [0x01f32000, 0x01f32fff] PGTABLE
[    0.000000] BRK [0x01f33000, 0x01f33fff] PGTABLE
[    0.000000] BRK [0x01f34000, 0x01f34fff] PGTABLE
[    0.000000] BRK [0x01f35000, 0x01f35fff] PGTABLE
[    0.000000] BRK [0x01f36000, 0x01f36fff] PGTABLE
[    0.000000] RAMDISK: [mem 0x02000000-0x03263fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000A2346000 000024 (v02 INTEL )
[    0.000000] ACPI: XSDT 0x00000000A2346098 0000B4 (v01 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: FACP 0x00000000A235BA30 00010C (v05 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 0x00000000A23461E0 01584F (v02 INTEL  NUC5i3MY 01072009 INTL 20120913)
[    0.000000] ACPI: FACS 0x00000000A2C92F80 000040
[    0.000000] ACPI: APIC 0x00000000A235BB40 000084 (v03 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: FPDT 0x00000000A235BBC8 000044 (v01 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: FIDT 0x00000000A235BC10 00009C (v01 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 0x00000000A235BCB0 00003C (v01 INTEL  NUC5i3MY 01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 0x00000000A235BCF0 000038 (v01 INTEL  NUC5i3MY 01072009 AMI. 0005000B)
[    0.000000] ACPI: SSDT 0x00000000A235BD28 000315 (v01 INTEL  NUC5i3MY 00001000 INTL 20120913)
[    0.000000] ACPI: UEFI 0x00000000A235C040 000042 (v01 INTEL  NUC5i3MY 00000000      00000000)
[    0.000000] ACPI: LPIT 0x00000000A235C088 000094 (v01 INTEL  NUC5i3MY 00000000      00000000)
[    0.000000] ACPI: SSDT 0x00000000A235C120 000C7D (v02 INTEL  NUC5i3MY 00001000 INTL 20120913)
[    0.000000] ACPI: ASF! 0x00000000A235CDA0 0000A0 (v32 INTEL  NUC5i3MY 00000001 TFSM 000F4240)
[    0.000000] ACPI: SSDT 0x00000000A235CE40 000539 (v02 INTEL  NUC5i3MY 00003000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x00000000A235D380 000B74 (v02 INTEL  NUC5i3MY 00003000 INTL 20120913)
[    0.000000] ACPI: TPM2 0x00000000A235DEF8 000034 (v03 INTEL  NUC5i3MY 00000001 AMI  00000000)
[    0.000000] ACPI: SSDT 0x00000000A235DF30 000041 (v01 INTEL  NUC5i3MY 00001000 INTL 20120913)
[    0.000000] ACPI: SSDT 0x00000000A235DF78 005C05 (v02 INTEL  NUC5i3MY 00003000 INTL 20120913)
[    0.000000] ACPI: RMAD 0x00000000A2363B80 0000B0 (v01 INTEL  NUC5i3MY 00000001 INTL 00000001)
[    0.000000] ACPI: BGRT 0x00000000A2363C30 000038 (v01 INTEL  NUC5i3MY 01072009 AMI  00010013)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Setting APIC routing to Xen PV.
[    0.000000] NUMA turned off
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000015e29dfff]
[    0.000000] NODE_DATA(0) allocated [mem 0xa1a94000-0xa1a98fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000015e29dfff]
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x0000000000057fff]
[    0.000000]   node   0: [mem 0x0000000000059000-0x000000000009dfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000009d8c0fff]
[    0.000000]   node   0: [mem 0x000000009dd81000-0x00000000a2283fff]
[    0.000000]   node   0: [mem 0x00000000a2fff000-0x00000000a2ffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000015e29dfff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000015e29dfff]
[    0.000000] On node 0 totalpages: 1048575
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3996 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 10296 pages used for memmap
[    0.000000]   DMA32 zone: 658885 pages, LIFO batch:31
[    0.000000]   Normal zone: 6027 pages used for memmap
[    0.000000]   Normal zone: 385694 pages, LIFO batch:31
[    0.000000] p2m virtual area at ffffc90000000000, size is 40000000
[    0.000000] Remapped 385694 page(s)
[    0.000000] Reserving Intel graphics memory at 0x00000000a4000000-0x00000000a7ffffff
[    0.000000] ACPI: PM-Timer IO Port: 0x1808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] res dfl lint[0x5c])
[    0.000000] ACPI: NMI not connected to LINT 1!
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] res dfl lint[0xfc])
[    0.000000] ACPI: NMI not connected to LINT 1!
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] res dfl lint[0xca])
[    0.000000] ACPI: NMI not connected to LINT 1!
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] res dfl lint[0xc2])
[    0.000000] ACPI: NMI not connected to LINT 1!
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-39
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x00058000-0x00058fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x9d8c1000-0x9dd80fff]
[    0.000000] PM: Registered nosave memory: [mem 0xa2284000-0xa233efff]
[    0.000000] PM: Registered nosave memory: [mem 0xa233f000-0xa2363fff]
[    0.000000] PM: Registered nosave memory: [mem 0xa2364000-0xa2c93fff]
[    0.000000] PM: Registered nosave memory: [mem 0xa2c94000-0xa2ffefff]
[    0.000000] PM: Registered nosave memory: [mem 0xa3000000-0xa37fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xa3800000-0xa7ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xa8000000-0xf7ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf8000000-0xfbffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfc000000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfecfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed00000-0xfed03fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed04000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xfed8ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed90000-0xfed91fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed92000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfeefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfef00000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0xa8000000-0xf7ffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on Xen
[    0.000000] Xen version: 4.9-unstable (preserve-AD)
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] percpu: Embedded 35 pages/cpu @ffff88015e000000 s103384 r8192 d31784 u524288
[    0.000000] pcpu-alloc: s103384 r8192 d31784 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] xen: PV spinlocks enabled
[    0.000000] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes)
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1032167
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: placeholder root=/dev/mapper/vg00-root ro quiet
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] software IO TLB [mem 0x15a000000-0x15e000000] (64MB) mapped at [ffff88015a000000-ffff88015dffffff]
[    0.000000] Memory: 4009008K/4194300K available (6142K kernel code, 1129K rwdata, 2844K rodata, 1392K init, 684K bss, 185292K reserved, 0K cma-reserved)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
[    0.000000] Using NULL legacy PIC
[    0.000000] NR_IRQS:33024 nr_irqs:728 0
[    0.000000] xen:events: Using FIFO-based ABI
[    0.000000] xen: --> pirq=1 -> irq=1 (gsi=1)
[    0.000000] xen: --> pirq=2 -> irq=2 (gsi=2)
[    0.000000] xen: --> pirq=3 -> irq=3 (gsi=3)
[    0.000000] xen: --> pirq=4 -> irq=4 (gsi=4)
[    0.000000] xen: --> pirq=5 -> irq=5 (gsi=5)
[    0.000000] xen: --> pirq=6 -> irq=6 (gsi=6)
[    0.000000] xen: --> pirq=7 -> irq=7 (gsi=7)
[    0.000000] xen: --> pirq=8 -> irq=8 (gsi=8)
[    0.000000] xen: --> pirq=9 -> irq=9 (gsi=9)
[    0.000000] xen: --> pirq=10 -> irq=10 (gsi=10)
[    0.000000] xen: --> pirq=11 -> irq=11 (gsi=11)
[    0.000000] xen: --> pirq=12 -> irq=12 (gsi=12)
[    0.000000] xen: --> pirq=13 -> irq=13 (gsi=13)
[    0.000000] xen: --> pirq=14 -> irq=14 (gsi=14)
[    0.000000] xen: --> pirq=15 -> irq=15 (gsi=15)
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] clocksource: xen: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000000] Xen: using vcpuop timer interface
[    0.000000] installing Xen timer for CPU 0
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2095.002 MHz processor
[    5.735892] Calibrating delay loop (skipped), value calculated using timer frequency.. 4190.30 BogoMIPS (lpj=8380616)
[    5.735895] pid_max: default: 32768 minimum: 301
[    5.735911] ACPI: Core revision 20160831
[    5.761559] ACPI: 7 ACPI AML tables successfully acquired and loaded
[    5.761956] Security Framework initialized
[    5.761957] Yama: disabled by default; enable with sysctl kernel.yama.*
[    5.761962] AppArmor: AppArmor disabled by boot time parameter
[    5.762710] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    5.763798] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    5.764180] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    5.764194] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    5.764480] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    5.764481] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    5.764484] CPU: Physical Processor ID: 0
[    5.764484] CPU: Processor Core ID: 0
[    5.764488] mce: CPU supports 2 MCE banks
[    5.764507] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8
[    5.764507] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4
[    5.764824] Freeing SMP alternatives memory: 24K (ffffffff81e78000 - ffffffff81e7e000)
[    5.766524] efi_bgrt: Ignoring BGRT: null image address
[    5.766526] ------------[ cut here ]------------
[    5.766531] WARNING: CPU: 0 PID: 0 at /build/linux-QtSjAP/linux-4.9.13/mm/page_alloc.c:3520 __alloc_pages_slowpath+0xaea/0xbc0
[    5.766532] Modules linked in:
[    5.766535] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.0-2-amd64 #1 Debian 4.9.13-1
[    5.766536] Hardware name:                  /NUC5i3MYBE, BIOS MYBDWi30.86A.0041.2017.0116.2158 01/16/2017
[    5.766538]  0000000000000000 ffffffff81328594 0000000000000000 0000000000000000
[    5.766541]  ffffffff81076dde 0000000000000000 0000000000000000 0000000000000000
[    5.766543]  0000000000000034 0000000000000000 ffffffff81c03e10 ffffffff81185a1a
[    5.766546] Call Trace:
[    5.766550]  [<ffffffff81328594>] ? dump_stack+0x5c/0x78
[    5.766553]  [<ffffffff81076dde>] ? __warn+0xbe/0xe0
[    5.766555]  [<ffffffff81185a1a>] ? __alloc_pages_slowpath+0xaea/0xbc0
[    5.766557]  [<ffffffff81015ef1>] ? __raw_callee_save_xen_pte_val+0x11/0x1e
[    5.766559]  [<ffffffff81183e15>] ? __zone_watermark_ok+0x5/0xe0
[    5.766560]  [<ffffffff81184497>] ? get_page_from_freelist+0x437/0xb40
[    5.766562]  [<ffffffff81016310>] ? xen_mc_issue+0x70/0x70
[    5.766564]  [<ffffffff810c0f00>] ? pv_hash+0x60/0xb0
[    5.766567]  [<ffffffff810c0cc0>] ? __raw_callee_save___pv_queued_spin_unlock_slowpath+0x20/0x20
[    5.766569]  [<ffffffff813d6ea9>] ? acpi_hw_read_port+0x52/0xc8
[    5.766571]  [<ffffffff81185cee>] ? __alloc_pages_nodemask+0x1fe/0x260
[    5.766574]  [<ffffffff811d5a66>] ? alloc_page_interleave+0x36/0x80
[    5.766576]  [<ffffffff811d607c>] ? alloc_pages_current+0xec/0x140
[    5.766578]  [<ffffffff81d873c1>] ? efi_memmap_alloc+0x2e/0x59
[    5.766580]  [<ffffffff81d55030>] ? efi_free_boot_services+0x3f/0x16c
[    5.766583]  [<ffffffff81d36f4d>] ? start_kernel+0x439/0x463
[    5.766584]  [<ffffffff81d3c076>] ? xen_start_kernel+0x50c/0x516
[    5.766587] ---[ end trace baec6a03ba09fa96 ]---
[    5.766588] efi: Failed to allocate new EFI memmap
[    5.766593] ftrace: allocating 24999 entries in 98 pages
[    5.776995] cpu 0 spinlock event irq 41
[    5.776998] smpboot: Max logical packages: 1
[    5.777001] VPMU disabled by hypervisor.
[    5.777013] Performance Events: unsupported p6 CPU model 61 no PMU driver, software events only.
[    5.777606] NMI watchdog: disabled (cpu0): hardware events not enabled
[    5.777607] NMI watchdog: Shutting down hard lockup detector on all cpus
[    5.777719] installing Xen timer for CPU 1
[    5.777995] cpu 1 spinlock event irq 53
[    5.778114] installing Xen timer for CPU 2
[    5.778326] cpu 2 spinlock event irq 60
[    5.778439] installing Xen timer for CPU 3
[    5.778644] cpu 3 spinlock event irq 67
[    5.778655] x86: Booted up 1 node, 4 CPUs
[    5.779104] devtmpfs: initialized
[    5.779164] x86/mm: Memory block size: 128MB
[    5.781300] PM: Registering ACPI NVS region [mem 0xa2364000-0xa2c93fff] (9633792 bytes)
[    5.781559] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    5.781577] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    5.781648] pinctrl core: initialized pinctrl subsystem
[    5.781768] NET: Registered protocol family 16
[    5.781776] xen:grant_table: Grant tables using version 1 layout
[    5.781787] Grant table initialized
[    5.782167] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    5.782168] ACPI: bus type PCI registered
[    5.782169] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    5.782340] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[    5.782341] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[    5.793917] PCI: Using configuration type 1 for base access
[    5.805950] ACPI: Added _OSI(Module Device)
[    5.805951] ACPI: Added _OSI(Processor Device)
[    5.805952] ACPI: Added _OSI(3.0 _SCP Extensions)
[    5.805953] ACPI: Added _OSI(Processor Aggregator Device)
[    5.806247] xen: registering gsi 9 triggering 0 polarity 0
[    5.807155] ACPI: Executed 18 blocks of module-level executable AML code
[    5.818924] ACPI: Dynamic OEM Table Load:
[    5.818930] ACPI: SSDT 0xFFFF8801592DE800 0003D3 (v02 PmRef  Cpu0Cst  00003001 INTL 20120913)
[    5.819551] ACPI: Dynamic OEM Table Load:
[    5.819556] ACPI: SSDT 0xFFFF880159255800 0005AA (v02 PmRef  ApIst    00003000 INTL 20120913)
[    5.820064] ACPI: Dynamic OEM Table Load:
[    5.820068] ACPI: SSDT 0xFFFF8801592E9E00 000119 (v02 PmRef  ApCst    00003000 INTL 20120913)
[    5.822499] ACPI: Interpreter enabled
[    5.822530] ACPI: (supports S0 S3 S4 S5)
[    5.822530] ACPI: Using IOAPIC for interrupt routing
[    5.822569] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    5.826236] ACPI: Power Resource [PG00] (on)
[    5.826755] ACPI: Power Resource [PG01] (on)
[    5.827281] ACPI: Power Resource [PG02] (on)
[    5.829945] ACPI: Power Resource [WRST] (off)
[    5.830360] ACPI: Power Resource [WRST] (off)
[    5.830770] ACPI: Power Resource [WRST] (off)
[    5.831189] ACPI: Power Resource [WRST] (off)
[    5.831595] ACPI: Power Resource [WRST] (off)
[    5.832006] ACPI: Power Resource [WRST] (off)
[    5.832413] ACPI: Power Resource [WRST] (off)
[    5.832819] ACPI: Power Resource [WRST] (off)
[    5.842159] ACPI: Power Resource [FN00] (off)
[    5.842251] ACPI: Power Resource [FN01] (off)
[    5.842340] ACPI: Power Resource [FN02] (off)
[    5.842430] ACPI: Power Resource [FN03] (off)
[    5.842523] ACPI: Power Resource [FN04] (off)
[    5.843714] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[    5.843720] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    5.843949] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[    5.844562] PCI host bridge to bus 0000:00
[    5.844564] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    5.844566] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    5.844567] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[    5.844568] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff window]
[    5.844570] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff window]
[    5.844571] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff window]
[    5.844572] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff window]
[    5.844573] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff window]
[    5.844574] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff window]
[    5.844575] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff window]
[    5.844576] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff window]
[    5.844577] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff window]
[    5.844578] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff window]
[    5.844580] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff window]
[    5.844581] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff window]
[    5.844582] pci_bus 0000:00: root bus resource [mem 0xa8000000-0xdfffffff window]
[    5.844583] pci_bus 0000:00: root bus resource [mem 0xfe000000-0xfe113fff window]
[    5.844584] pci_bus 0000:00: root bus resource [bus 00-3e]
[    5.844602] pci 0000:00:00.0: [8086:1604] type 00 class 0x060000
[    5.844840] pci 0000:00:02.0: [8086:1616] type 00 class 0x030000
[    5.844880] pci 0000:00:02.0: reg 0x10: [mem 0xa9000000-0xa9ffffff 64bit]
[    5.844904] pci 0000:00:02.0: reg 0x18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    5.844919] pci 0000:00:02.0: reg 0x20: [io  0x3000-0x303f]
[    5.845188] pci 0000:00:03.0: [8086:160c] type 00 class 0x040300
[    5.845215] pci 0000:00:03.0: reg 0x10: [mem 0xaa034000-0xaa037fff 64bit]
[    5.845489] pci 0000:00:14.0: [8086:9cb1] type 00 class 0x0c0330
[    5.845532] pci 0000:00:14.0: reg 0x10: [mem 0xaa020000-0xaa02ffff 64bit]
[    5.845691] pci 0000:00:14.0: PME# supported from D3hot D3cold
[    5.845770] pci 0000:00:14.0: System wakeup disabled by ACPI
[    5.845844] pci 0000:00:16.0: [8086:9cba] type 00 class 0x078000
[    5.845890] pci 0000:00:16.0: reg 0x10: [mem 0xaa03d000-0xaa03d01f 64bit]
[    5.846059] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    5.846252] pci 0000:00:19.0: [8086:15a3] type 00 class 0x020000
[    5.846288] pci 0000:00:19.0: reg 0x10: [mem 0xaa000000-0xaa01ffff]
[    5.846306] pci 0000:00:19.0: reg 0x14: [mem 0xaa03b000-0xaa03bfff]
[    5.846324] pci 0000:00:19.0: reg 0x18: [io  0x3080-0x309f]
[    5.846478] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold
[    5.846557] pci 0000:00:19.0: System wakeup disabled by ACPI
[    5.846630] pci 0000:00:1b.0: [8086:9ca0] type 00 class 0x040300
[    5.846668] pci 0000:00:1b.0: reg 0x10: [mem 0xaa030000-0xaa033fff 64bit]
[    5.846802] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    5.846925] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    5.847006] pci 0000:00:1d.0: [8086:9ca6] type 00 class 0x0c0320
[    5.847045] pci 0000:00:1d.0: reg 0x10: [mem 0xaa03a000-0xaa03a3ff]
[    5.847246] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    5.847328] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    5.847401] pci 0000:00:1f.0: [8086:9cc3] type 00 class 0x060100
[    5.847752] pci 0000:00:1f.2: [8086:9c83] type 00 class 0x010601
[    5.847786] pci 0000:00:1f.2: reg 0x10: [io  0x30d0-0x30d7]
[    5.847804] pci 0000:00:1f.2: reg 0x14: [io  0x30c0-0x30c3]
[    5.847821] pci 0000:00:1f.2: reg 0x18: [io  0x30b0-0x30b7]
[    5.847839] pci 0000:00:1f.2: reg 0x1c: [io  0x30a0-0x30a3]
[    5.847856] pci 0000:00:1f.2: reg 0x20: [io  0x3060-0x307f]
[    5.847874] pci 0000:00:1f.2: reg 0x24: [mem 0xaa039000-0xaa0397ff]
[    5.847975] pci 0000:00:1f.2: PME# supported from D3hot
[    5.848099] pci 0000:00:1f.3: [8086:9ca2] type 00 class 0x0c0500
[    5.848134] pci 0000:00:1f.3: reg 0x10: [mem 0xaa038000-0xaa0380ff 64bit]
[    5.848185] pci 0000:00:1f.3: reg 0x20: [io  0x3040-0x305f]
[    5.850114] xen: registering gsi 7 triggering 0 polarity 1
[    5.850936] xen: registering gsi 7 triggering 0 polarity 1
[    5.850938] Already setup the GSI :7
[    5.851515] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.851607] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.851695] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.851785] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.851872] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.851959] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.852048] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.852135] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    5.852690] ACPI: Enabled 4 GPEs in block 00 to 7F
[    5.852806] xen:balloon: Initialising balloon driver
[    5.852852] xen_balloon: Initialising balloon driver
[    5.852966] vgaarb: setting as boot device: PCI:0000:00:02.0
[    5.852967] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    5.852969] vgaarb: loaded
[    5.852970] vgaarb: bridge control possible 0000:00:02.0
[    5.853010] Registered efivars operations
[    5.855995] PCI: Using ACPI for IRQ routing
[    5.857109] random: fast init done
[    5.860562] PCI: pci_cache_line_size set to 64 bytes
[    5.860627] e820: reserve RAM buffer [mem 0x00058000-0x0005ffff]
[    5.860628] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff]
[    5.860629] e820: reserve RAM buffer [mem 0x9d8c1000-0x9fffffff]
[    5.860630] e820: reserve RAM buffer [mem 0xa2284000-0xa3ffffff]
[    5.860631] e820: reserve RAM buffer [mem 0xa3000000-0xa3ffffff]
[    5.860632] e820: reserve RAM buffer [mem 0x15e29e000-0x15fffffff]
[    5.860866] clocksource: Switched to clocksource xen
[    5.867472] VFS: Disk quotas dquot_6.6.0
[    5.867522] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    5.867548] hugetlbfs: disabling because there are no supported hugepage sizes
[    5.867589] pnp: PnP ACPI init
[    5.867839] system 00:00: [io  0x0a00-0x0a0f] has been reserved
[    5.867842] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    5.868221] xen: registering gsi 4 triggering 1 polarity 0
[    5.868247] pnp 00:01: [dma 0 disabled]
[    5.868296] pnp 00:01: Plug and Play ACPI device, IDs PNP0501 (active)
[    5.868439] system 00:02: [io  0x0680-0x069f] has been reserved
[    5.868440] system 00:02: [io  0xffff] has been reserved
[    5.868442] system 00:02: [io  0xffff] has been reserved
[    5.868443] system 00:02: [io  0xffff] has been reserved
[    5.868444] system 00:02: [io  0x1800-0x18fe] has been reserved
[    5.868446] system 00:02: [io  0x164e-0x164f] has been reserved
[    5.868448] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[    5.868482] xen: registering gsi 8 triggering 1 polarity 0
[    5.868518] pnp 00:03: Plug and Play ACPI device, IDs PNP0b00 (active)
[    5.868564] system 00:04: [io  0x1854-0x1857] has been reserved
[    5.868566] system 00:04: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    5.868860] system 00:05: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    5.868874] system 00:05: [mem 0xfed10000-0xfed17fff] has been reserved
[    5.868875] system 00:05: [mem 0xfed18000-0xfed18fff] has been reserved
[    5.868877] system 00:05: [mem 0xfed19000-0xfed19fff] has been reserved
[    5.868878] system 00:05: [mem 0xf8000000-0xfbffffff] has been reserved
[    5.868879] system 00:05: [mem 0xfed20000-0xfed3ffff] has been reserved
[    5.868881] system 00:05: [mem 0xfed90000-0xfed93fff] could not be reserved
[    5.868882] system 00:05: [mem 0xfed45000-0xfed8ffff] has been reserved
[    5.868884] system 00:05: [mem 0xff000000-0xffffffff] has been reserved
[    5.868885] system 00:05: [mem 0xfee00000-0xfeefffff] has been reserved
[    5.868886] system 00:05: [mem 0xa8010000-0xa801ffff] has been reserved
[    5.868888] system 00:05: [mem 0xa8000000-0xa800ffff] has been reserved
[    5.868890] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
[    5.869566] system 00:06: [mem 0xfe104000-0xfe104fff] has been reserved
[    5.869567] system 00:06: [mem 0xfe106000-0xfe106fff] has been reserved
[    5.869569] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[    5.870918] pnp: PnP ACPI: found 7 devices
[    5.881341] PM-Timer failed consistency check  (0xffffff) - aborting.
[    5.881348] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    5.881349] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    5.881350] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[    5.881352] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff window]
[    5.881353] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff window]
[    5.881354] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff window]
[    5.881355] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff window]
[    5.881356] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff window]
[    5.881357] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff window]
[    5.881358] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff window]
[    5.881359] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff window]
[    5.881360] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff window]
[    5.881361] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff window]
[    5.881362] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff window]
[    5.881364] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff window]
[    5.881365] pci_bus 0000:00: resource 19 [mem 0xa8000000-0xdfffffff window]
[    5.881366] pci_bus 0000:00: resource 20 [mem 0xfe000000-0xfe113fff window]
[    5.881583] NET: Registered protocol family 2
[    5.881809] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    5.881932] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    5.881990] TCP: Hash tables configured (established 32768 bind 32768)
[    5.882022] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    5.882041] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    5.882105] NET: Registered protocol family 1
[    5.882131] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    5.882243] xen: registering gsi 21 triggering 0 polarity 1
[    5.882262] xen: --> pirq=21 -> irq=21 (gsi=21)
[    5.882540] xen: registering gsi 23 triggering 0 polarity 1
[    5.882551] xen: --> pirq=23 -> irq=23 (gsi=23)
[    5.882695] PCI: CLS 0 bytes, default 64
[    5.882737] Unpacking initramfs...
[    6.240762] Freeing initrd memory: 18832K (ffff880002000000 - ffff880003264000)
[    6.241193] audit: initializing netlink subsys (disabled)
[    6.241210] audit: type=2000 audit(1489509590.404:1): initialized
[    6.241476] Initialise system trusted keyrings
[    6.241671] workingset: timestamp_bits=40 max_order=20 bucket_order=0
[    6.241748] zbud: loaded
[    6.284814] Key type asymmetric registered
[    6.284815] Asymmetric key parser 'x509' registered
[    6.284847] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    6.284903] io scheduler noop registered
[    6.284904] io scheduler deadline registered
[    6.284921] io scheduler cfq registered (default)
[    6.284982] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    6.284986] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    6.285006] efifb: probing for efifb
[    6.285512] efifb: framebuffer at 0xb0000000, using 3072k, total 3072k
[    6.285513] efifb: mode is 1024x768x32, linelength=4096, pages=1
[    6.285514] efifb: scrolling: redraw
[    6.285515] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    6.287322] Console: switching to colour frame buffer device 128x48
[    6.289031] fb0: EFI VGA frame buffer device
[    6.289039] intel_idle: MWAIT substates: 0x11142120
[    6.289040] intel_idle: v0.4.1 model 0x3D
[    6.289043] intel_idle: intel_idle yielding to none
[    6.289384] Monitor-Mwait will be used to enter C-1 state
[    6.289388] Monitor-Mwait will be used to enter C-2 state
[    6.289390] Monitor-Mwait will be used to enter C-3 state
[    6.289985] Warning: Processor Platform Limit not supported.
[    6.290024] GHES: HEST is not enabled!
[    6.290494] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    6.311637] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    6.312252] hpet_acpi_add: no address or irqs in _CRS
[    6.312273] Linux agpgart interface v0.103
[    6.312310] AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    6.312311] AMD IOMMUv2 functionality not available on this system
[    6.312691] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    6.315451] serio: i8042 KBD port at 0x60,0x64 irq 1
[    6.315456] serio: i8042 AUX port at 0x60,0x64 irq 12
[    6.315614] mousedev: PS/2 mouse device common for all mice
[    6.315669] rtc_cmos 00:03: RTC can wake from S4
[    6.315871] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[    6.315931] rtc_cmos 00:03: alarms up to one month, y3k, 242 bytes nvram
[    6.316012] ledtrig-cpu: registered to indicate activity on CPUs
[    6.316608] NET: Registered protocol family 10
[    6.316840] mip6: Mobile IPv6
[    6.316842] NET: Registered protocol family 17
[    6.316844] mpls_gso: MPLS GSO support
[    6.316988] mce: Unable to init device /dev/mcelog (rc: -16)
[    6.317058] microcode: sig=0x306d4, pf=0x40, revision=0x21
[    6.317135] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    6.317274] registered taskstats version 1
[    6.317275] Loading compiled-in X.509 certificates
[    6.320214] alg: No test for pkcs1pad(rsa,sha256) (pkcs1pad(rsa-generic,sha256))
[    6.320480] Loaded X.509 cert 'Debian Project: Ben Hutchings: 008a018dca80932630'
[    6.320500] zswap: loaded using pool lzo/zbud
[    6.321170] rtc_cmos 00:03: setting system clock to 2017-03-14 16:39:51 UTC (1489509591)
[    6.321238] PM: Hibernation image not present or could not be loaded.
[    6.321762] Freeing unused kernel memory: 1392K (ffffffff81d1c000 - ffffffff81e78000)
[    6.321763] Write protecting the kernel read-only data: 12288k
[    6.326369] Freeing unused kernel memory: 2032K (ffff880001604000 - ffff880001800000)
[    6.326964] Freeing unused kernel memory: 1252K (ffff880001ac7000 - ffff880001c00000)
[    6.326969] ------------[ cut here ]------------
[    6.326974] WARNING: CPU: 3 PID: 1 at /build/linux-QtSjAP/linux-4.9.13/arch/x86/mm/dump_pagetables.c:226 note_page+0x633/0x7d0
[    6.326976] x86/mm: Found insecure W+X mapping at address ffff880000000000/0xffff880000000000
[    6.326976] Modules linked in:
[    6.326980] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G        W       4.9.0-2-amd64 #1 Debian 4.9.13-1
[    6.326980] Hardware name:                  /NUC5i3MYBE, BIOS MYBDWi30.86A.0041.2017.0116.2158 01/16/2017
[    6.326982]  0000000000000000 ffffffff81328594 ffffc90040653dd8 0000000000000000
[    6.326985]  ffffffff81076dde ffffc90040653ed0 ffffc90040653e30 0000000000000004
[    6.326987]  0000000000000000 ffffc90040653ed0 0000000000000000 ffffffff81076e5f
[    6.326989] Call Trace:
[    6.326994]  [<ffffffff81328594>] ? dump_stack+0x5c/0x78
[    6.326996]  [<ffffffff81076dde>] ? __warn+0xbe/0xe0
[    6.326998]  [<ffffffff81076e5f>] ? warn_slowpath_fmt+0x5f/0x80
[    6.327000]  [<ffffffff810cdf26>] ? vprintk_emit+0x316/0x4d0
[    6.327002]  [<ffffffff81068353>] ? note_page+0x633/0x7d0
[    6.327005]  [<ffffffff810687c3>] ? ptdump_walk_pgd_level_core+0x2d3/0x3f0
[    6.327007]  [<ffffffff815ed9e0>] ? rest_init+0x80/0x80
[    6.327009]  [<ffffffff815eda06>] ? kernel_init+0x26/0x100
[    6.327011]  [<ffffffff815fb135>] ? ret_from_fork+0x25/0x30
[    6.327012] ---[ end trace baec6a03ba09fa98 ]---
[    6.340532] x86/mm: Checked W+X mappings: FAILED, 4090 W+X pages found.
[    6.420275] FUJITSU Extended Socket Network Device Driver - version 1.1 - Copyright (c) 2015 FUJITSU LIMITED
[    6.424282] sdhci: Secure Digital Host Controller Interface driver
[    6.424283] sdhci: Copyright(c) Pierre Ossman
[    6.431706] pps_core: LinuxPPS API ver. 1 registered
[    6.431707] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    6.432512] PTP clock support registered
[    6.439422] ACPI: bus type USB registered
[    6.439453] usbcore: registered new interface driver usbfs
[    6.439468] usbcore: registered new interface driver hub
[    6.439526] usbcore: registered new device driver usb
[    6.440230] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    6.440231] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    6.442994] SCSI subsystem initialized
[    6.444227] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    6.445284] ehci-pci: EHCI PCI platform driver
[    6.445775] thermal LNXTHERM:00: registered as thermal_zone0
[    6.445776] ACPI: Thermal Zone [TZ00] (28 C)
[    6.452812] thermal LNXTHERM:01: registered as thermal_zone1
[    6.452814] ACPI: Thermal Zone [TZ01] (30 C)
[    6.453020] libata version 3.00 loaded.
[    6.468679] AVX2 version of gcm_enc/dec engaged.
[    6.468681] AES CTR mode by8 optimization enabled
[    6.471090] xen: registering gsi 20 triggering 0 polarity 1
[    6.471119] xen: --> pirq=20 -> irq=20 (gsi=20)
[    6.471299] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[    6.565141] e1000e 0000:00:19.0 0000:00:19.0 (uninitialized): registered PHC clock
[    6.657141] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) f4:4d:30:64:a0:8c
[    6.657143] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[    6.657176] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
[    6.657416] xen: registering gsi 23 triggering 0 polarity 1
[    6.657422] Already setup the GSI :23
[    6.657482] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    6.657490] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 1
[    6.657515] ehci-pci 0000:00:1d.0: debug port 2
[    6.658123] e1000e 0000:00:19.0 enp0s25: renamed from eth0
[    6.661456] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    6.661506] ehci-pci 0000:00:1d.0: irq 23, io mem 0xaa03a000
[    6.676922] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    6.676971] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    6.676972] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.676973] usb usb1: Product: EHCI Host Controller
[    6.676974] usb usb1: Manufacturer: Linux 4.9.0-2-amd64 ehci_hcd
[    6.676975] usb usb1: SerialNumber: 0000:00:1d.0
[    6.677151] hub 1-0:1.0: USB hub found
[    6.677160] hub 1-0:1.0: 2 ports detected
[    6.677546] xen: registering gsi 21 triggering 0 polarity 1
[    6.677552] Already setup the GSI :21
[    6.677618] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    6.677626] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    6.678704] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0004b810
[    6.678715] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[    6.679068] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    6.679070] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.679071] usb usb2: Product: xHCI Host Controller
[    6.679072] usb usb2: Manufacturer: Linux 4.9.0-2-amd64 xhci-hcd
[    6.679073] usb usb2: SerialNumber: 0000:00:14.0
[    6.679278] hub 2-0:1.0: USB hub found
[    6.679305] hub 2-0:1.0: 11 ports detected
[    6.683746] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    6.683750] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[    6.683786] usb usb3: New USB device found, idVendor=1d6b, idProduct=0003
[    6.683787] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.683788] usb usb3: Product: xHCI Host Controller
[    6.683789] usb usb3: Manufacturer: Linux 4.9.0-2-amd64 xhci-hcd
[    6.683790] usb usb3: SerialNumber: 0000:00:14.0
[    6.683952] hub 3-0:1.0: USB hub found
[    6.683965] hub 3-0:1.0: 4 ports detected
[    6.686022] ahci 0000:00:1f.2: version 3.0
[    6.686178] xen: registering gsi 19 triggering 0 polarity 1
[    6.686203] xen: --> pirq=19 -> irq=19 (gsi=19)
[    6.696484] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 2 ports 6 Gbps 0x1 impl SATA mode
[    6.696487] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo only pio slum part deso sadm sds apst 
[    6.697097] scsi host0: ahci
[    6.697249] scsi host1: ahci
[    6.697303] ata1: SATA max UDMA/133 abar m2048@0xaa039000 port 0xaa039100 irq 74
[    6.697304] ata2: DUMMY
[    6.725350] xen: registering gsi 18 triggering 0 polarity 1
[    6.725377] xen: --> pirq=18 -> irq=18 (gsi=18)
[    6.725430] i801_smbus 0000:00:1f.3: SPD Write Disable is set
[    6.725498] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[    6.730077] hidraw: raw HID events driver (C) Jiri Kosina
[    7.004914] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    7.008912] usb 2-2: new low-speed USB device number 2 using xhci_hcd
[    7.011968] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    7.012994] ata1.00: ATA-8: HGST HTS545050A7E680, GR2OA230, max UDMA/133
[    7.012996] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    7.014044] ata1.00: configured for UDMA/133
[    7.014285] scsi 0:0:0:0: Direct-Access     ATA      HGST HTS545050A7 A230 PQ: 0 ANSI: 5
[    7.051455] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[    7.051458] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    7.051516] sd 0:0:0:0: [sda] Write Protect is off
[    7.051519] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    7.051556] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    7.153498] usb 1-1: New USB device found, idVendor=8087, idProduct=8001
[    7.153500] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    7.153726] hub 1-1:1.0: USB hub found
[    7.153819] hub 1-1:1.0: 8 ports detected
[    7.156424] usb 2-2: New USB device found, idVendor=04f2, idProduct=0116
[    7.156426] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    7.156427] usb 2-2: Product: USB Keyboard
[    7.156428] usb 2-2: Manufacturer: CHICONY
[    7.163223] usbcore: registered new interface driver usbhid
[    7.163224] usbhid: USB HID core driver
[    7.164323] input: CHICONY USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:04F2:0116.0001/input/input3
[    7.221102] hid-generic 0003:04F2:0116.0001: input,hidraw0: USB HID v1.10 Keyboard [CHICONY USB Keyboard] on usb-0000:00:14.0-2/input0
[    7.244912] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1e334ea553d, max_idle_ns: 440795223300 ns
[    7.393657]  sda: sda1 sda2 sda3 sda4
[    7.394372] sd 0:0:0:0: [sda] Attached SCSI disk
[    7.780491] device-mapper: uevent: version 1.0.3
[    7.780575] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[    8.266364] random: crng init done
[    8.269115] clocksource: Switched to clocksource tsc
[    8.382615] PM: Starting manual resume from disk
[    8.382618] PM: Hibernation image partition 254:1 present
[    8.382619] PM: Looking for hibernation image.
[    8.382723] PM: Image not found (code -22)
[    8.382724] PM: Hibernation image not present or could not be loaded.
[    8.747921] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[   10.269474] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.487899] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[   10.487986] systemd[1]: Detected virtualization xen.
[   10.487992] systemd[1]: Detected architecture x86-64.
[   10.506361] systemd[1]: Set hostname to <debian>.
[   11.777232] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[   11.777427] systemd[1]: Created slice User and Session Slice.
[   11.777540] systemd[1]: Created slice System Slice.
[   11.777657] systemd[1]: Created slice system-serial\x2dgetty.slice.
[   11.777697] systemd[1]: Listening on udev Kernel Socket.
[   11.777807] systemd[1]: Created slice system-getty.slice.
[   11.966544] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro
[   12.073264] xen:xen_evtchn: Event-channel device installed
[   12.222161] systemd-journald[225]: Received request to flush runtime journal from PID 1
[   12.612245] xen_pciback: backend is vpci
[   12.673636] xen_acpi_processor: Uploading Xen processor PM info
[   14.314175] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input4
[   14.314187] ACPI: Sleep Button [SLPB]
[   14.314359] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input5
[   14.314365] ACPI: Power Button [PWRB]
[   14.314523] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input6
[   14.314529] ACPI: Power Button [PWRF]
[   14.476894] [drm] Initialized
[   14.512994] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1A, rev-id 16)
[   14.608403] xen: registering gsi 16 triggering 0 polarity 1
[   14.608469] xen: --> pirq=16 -> irq=16 (gsi=16)
[   14.992688] snd_hda_intel 0000:00:03.0: enabling device (0000 -> 0002)
[   14.992845] xen: registering gsi 16 triggering 0 polarity 1
[   14.992852] Already setup the GSI :16
[   14.992965] snd_hda_intel 0000:00:1b.0: enabling device (0000 -> 0002)
[   14.993086] xen: registering gsi 22 triggering 0 polarity 1
[   14.993114] xen: --> pirq=22 -> irq=22 (gsi=22)
[   14.993647] xen: registering gsi 16 triggering 0 polarity 1
[   14.993653] Already setup the GSI :16
[   14.995723] [drm] Memory usable by graphics device = 4096M
[   14.995726] checking generic (b0000000 300000) vs hw (b0000000 10000000)
[   14.995727] fb: switching to inteldrmfb from EFI VGA
[   14.995760] Console: switching to colour dummy device 80x25
[   14.996821] [drm] Replacing VGA console driver
[   15.048727] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   15.048728] [drm] Driver supports precise vblank timestamp query.
[   15.051152] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   15.081467] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   15.132743] EFI Variables Facility v0.08 2004-May-17
[   15.168141] [drm] failed to retrieve link info, disabling eDP
[   15.170050] pstore: using zlib compression
[   15.170064] pstore: Registered efi as persistent store backend
[   15.176891] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC283: line_outs=1 (0x21/0x0/0x0/0x0/0x0) type:hp
[   15.176893] snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   15.176895] snd_hda_codec_realtek hdaudioC1D0:    hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   15.176895] snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0
[   15.176896] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[   15.176898] snd_hda_codec_realtek hdaudioC1D0:      Mic=0x19
[   15.202007] input: PC Speaker as /devices/platform/pcspkr/input/input8
[   15.204965] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   15.205630] acpi device:10: registered as cooling_device9
[   15.205720] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input9
[   15.205861] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   15.205869] [drm] Initialized i915 1.6.0 20160919 for 0000:00:02.0 on minor 0
[   15.210354] fbcon: inteldrmfb (fb0) is primary device
[   15.241768] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card1/input7
[   15.242683] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input10
[   15.242769] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input11
[   15.256164] Console: switching to colour frame buffer device 128x48
[   15.268609] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input12
[   15.268695] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input13
[   15.268759] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input14
[   15.271898] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   15.349248] RAPL PMU: API unit is 2^-32 Joules, 4 fixed counters, 655360 ms ovfl timer
[   15.349253] RAPL PMU: hw unit of domain pp0-core 2^-14 Joules
[   15.349256] RAPL PMU: hw unit of domain package 2^-14 Joules
[   15.349258] RAPL PMU: hw unit of domain dram 2^-14 Joules
[   15.349260] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[   15.356297] iTCO_vendor_support: vendor-support=0
[   15.382832] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   15.382883] iTCO_wdt: Found a Wildcat Point_LP TCO device (Version=2, TCOBASE=0x1860)
[   15.383066] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[   15.965501] intel_rapl: Found RAPL domain package
[   15.965522] intel_rapl: Found RAPL domain core
[   15.965536] intel_rapl: Found RAPL domain uncore
[   15.965548] intel_rapl: Found RAPL domain dram
[   17.339470] Adding 8273916k swap on /dev/mapper/vg00-swap_1.  Priority:-1 extents:1 across:8273916k FS
[   18.379114] EXT4-fs (sda2): mounting ext2 file system using the ext4 subsystem
[   18.403130] EXT4-fs (sda2): mounted filesystem without journal. Opts: (null)
[   20.445110] IPv6: ADDRCONF(NETDEV_UP): enp0s25: link is not ready
[   20.506030] systemd[1]: apt-daily.timer: Adding 7h 44min 43.858005s random time.
[   20.664323] systemd[1]: apt-daily.timer: Adding 4h 59min 54.266071s random time.
[   22.237004] e1000e: enp0s25 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[   22.237047] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s25: link becomes ready
[   55.087985] systemd[1]: apt-daily.timer: Adding 1h 58min 30.692071s random time.
[17863.769340] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[17866.663790] xenbr0: port 1(vif2.0) entered blocking state
[17866.663792] xenbr0: port 1(vif2.0) entered disabled state
[17866.663846] device vif2.0 entered promiscuous mode
[17866.666202] IPv6: ADDRCONF(NETDEV_UP): vif2.0: link is not ready
[17866.839622] Bridge firewalling registered
[17904.227113] vif vif-2-0 vif2.0: Guest Rx ready
[17904.227126] IPv6: ADDRCONF(NETDEV_CHANGE): vif2.0: link becomes ready
[17942.889092] device vif2.0 left promiscuous mode
[17942.889096] xenbr0: port 1(vif2.0) entered disabled state
[17948.006112] xenbr0: port 1(vif3.0) entered blocking state
[17948.006114] xenbr0: port 1(vif3.0) entered disabled state
[17948.006173] device vif3.0 entered promiscuous mode
[17948.008343] IPv6: ADDRCONF(NETDEV_UP): vif3.0: link is not ready
[17968.500644] vif vif-3-0 vif3.0: Guest Rx ready
[17968.500674] IPv6: ADDRCONF(NETDEV_CHANGE): vif3.0: link becomes ready
[19117.591143] usb 2-2: USB disconnect, device number 2

[-- Attachment #3: xl-dmesg.txt --]
[-- Type: text/plain, Size: 9812 bytes --]

 __  __            _  _   ___                     _        _     _      
 \ \/ /___ _ __   | || | / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___ 
  \  // _ \ '_ \  | || || (_) |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
  /  \  __/ | | | |__   _\__, |__| |_| | | | \__ \ || (_| | |_) | |  __/
 /_/\_\___|_| |_|    |_|(_)/_/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
                                                                        
(XEN) Xen version 4.9-unstable (root@lcl.net-space.pl) (gcc (Debian 6.3.0-6) 6.3.0 20170205) debug=y  Tue Mar 14 17:27:56 CET 2017
(XEN) Latest ChangeSet: Mon Jul 20 15:09:27 2015 +0200 git:a5f6ca77d7
(XEN) Bootloader: GRUB 2.02~rc1
(XEN) Command line: placeholder allowsuperpage apic_verbosity=debug conring_size=256k cpufreq=xen cpuidle dom0_mem=4g,max:4g guest_loglvl=warning loglvl=warning console=vga no-real-mode edd=off
(XEN) Xen image load base address: 0x9f600000
(XEN) Video information:
(XEN)  VGA is graphics mode 1024x768, 32 bpp
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) EFI RAM map:
(XEN)  0000000000000000 - 0000000000058000 (usable)
(XEN)  0000000000058000 - 0000000000059000 (reserved)
(XEN)  0000000000059000 - 000000000009e000 (usable)
(XEN)  000000000009e000 - 00000000000a0000 (reserved)
(XEN)  0000000000100000 - 000000009d8c1000 (usable)
(XEN)  000000009d8c1000 - 000000009dd81000 (reserved)
(XEN)  000000009dd81000 - 00000000a2284000 (usable)
(XEN)  00000000a2284000 - 00000000a233f000 (reserved)
(XEN)  00000000a233f000 - 00000000a2364000 (ACPI data)
(XEN)  00000000a2364000 - 00000000a2c94000 (ACPI NVS)
(XEN)  00000000a2c94000 - 00000000a2fff000 (reserved)
(XEN)  00000000a2fff000 - 00000000a3000000 (usable)
(XEN)  00000000a3800000 - 00000000a8000000 (reserved)
(XEN)  00000000f8000000 - 00000000fc000000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fed00000 - 00000000fed04000 (reserved)
(XEN)  00000000fed1c000 - 00000000fed20000 (reserved)
(XEN)  00000000fee00000 - 00000000fee01000 (reserved)
(XEN)  00000000ff000000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 0000000257000000 (usable)
(XEN) ACPI: RSDP A2346000, 0024 (r2 INTEL )
(XEN) ACPI: XSDT A2346098, 00B4 (r1  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) ACPI: FACP A235BA30, 010C (r5  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) ACPI: DSDT A23461E0, 1584F (r2  INTEL NUC5i3MY  1072009 INTL 20120913)
(XEN) ACPI: FACS A2C92F80, 0040
(XEN) ACPI: APIC A235BB40, 0084 (r3  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) ACPI: FPDT A235BBC8, 0044 (r1  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) ACPI: FIDT A235BC10, 009C (r1  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) ACPI: MCFG A235BCB0, 003C (r1  INTEL NUC5i3MY  1072009 MSFT       97)
(XEN) ACPI: HPET A235BCF0, 0038 (r1  INTEL NUC5i3MY  1072009 AMI.    5000B)
(XEN) ACPI: SSDT A235BD28, 0315 (r1  INTEL NUC5i3MY     1000 INTL 20120913)
(XEN) ACPI: UEFI A235C040, 0042 (r1  INTEL NUC5i3MY        0             0)
(XEN) ACPI: LPIT A235C088, 0094 (r1  INTEL NUC5i3MY        0             0)
(XEN) ACPI: SSDT A235C120, 0C7D (r2  INTEL NUC5i3MY     1000 INTL 20120913)
(XEN) ACPI: ASF! A235CDA0, 00A0 (r32  INTEL NUC5i3MY        1 TFSM    F4240)
(XEN) ACPI: SSDT A235CE40, 0539 (r2  INTEL NUC5i3MY     3000 INTL 20120913)
(XEN) ACPI: SSDT A235D380, 0B74 (r2  INTEL NUC5i3MY     3000 INTL 20120913)
(XEN) ACPI: TPM2 A235DEF8, 0034 (r3  INTEL NUC5i3MY        1 AMI         0)
(XEN) ACPI: SSDT A235DF30, 0041 (r1  INTEL NUC5i3MY     1000 INTL 20120913)
(XEN) ACPI: SSDT A235DF78, 5C05 (r2  INTEL NUC5i3MY     3000 INTL 20120913)
(XEN) ACPI: DMAR A2363B80, 00B0 (r1  INTEL NUC5i3MY        1 INTL        1)
(XEN) ACPI: BGRT A2363C30, 0038 (r1  INTEL NUC5i3MY  1072009 AMI     10013)
(XEN) System RAM: 8077MB (8271240kB)
(XEN) Domain heap initialised
(XEN) Allocated console ring of 256 KiB.
(XEN) APIC boot state is 'xapic'
(XEN) ACPI: 32/64X FACS address mismatch in FADT - a2c92f80/0000000000000000, using 32
(XEN) ACPI: NMI not connected to LINT 1!
(XEN) ACPI: NMI not connected to LINT 1!
(XEN) ACPI: NMI not connected to LINT 1!
(XEN) ACPI: NMI not connected to LINT 1!
(XEN) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-39
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) mapped APIC to ffff82cfffffb000 (fee00000)
(XEN) mapped IOAPIC to ffff82cfffffa000 (fec00000)
(XEN) Not enabling x2APIC (upon firmware request)
(XEN) xstate: size: 0x340 and states: 0x7
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 14.318MHz HPET
(XEN) Detected 2095.154 MHz processor.
(XEN) Initing memory sharing.
(XEN) Intel VT-d iommu 0 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB, 2MB, 1GB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Posted Interrupt not enabled.
(XEN) Intel VT-d Shared EPT tables enabled.
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) Getting VERSION: 1060015
(XEN) Getting VERSION: 1060015
(XEN) Enabled directed EOI with ioapic_ack_old on!
(XEN) Getting ID: 0
(XEN) Getting LVT0: 700
(XEN) Getting LVT1: 400
(XEN) Suppress EOI broadcast on CPU#0
(XEN) enabled ExtINT on CPU#0
(XEN) ESR value before enabling vector: 0x40  after: 0
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using old ACK method
(XEN) Using local APIC timer interrupts.
(XEN) calibrating APIC timer ...
(XEN) ..... CPU clock speed is 2095.2396 MHz.
(XEN) ..... host bus clock speed is 99.7732 MHz.
(XEN) ..... bus_scale = 0x662c
(XEN) mwait-idle: max C-state count of 8 reached
(XEN) VMX: Supported advanced features:
(XEN)  - APIC MMIO access virtualisation
(XEN)  - APIC TPR shadow
(XEN)  - Extended Page Tables (EPT)
(XEN)  - Virtual-Processor Identifiers (VPID)
(XEN)  - Virtual NMI
(XEN)  - MSR direct-access bitmap
(XEN)  - Unrestricted Guest
(XEN)  - VM Functions
(XEN)  - Virtualisation Exceptions
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) Suppress EOI broadcast on CPU#1
(XEN) masked ExtINT on CPU#1
(XEN) [VT-D]INTR-REMAP: Request device [0000:f0:1f.0] fault index 4652, iommu reg = ffff82c00051e000
(XEN) [VT-D]INTR-REMAP: reason 25 - Blocked a compatibility format interrupt request
(XEN) mwait-idle: max C-state count of 8 reached
(XEN) Suppress EOI broadcast on CPU#2
(XEN) masked ExtINT on CPU#2
(XEN) mwait-idle: max C-state count of 8 reached
(XEN) Suppress EOI broadcast on CPU#3
(XEN) masked ExtINT on CPU#3
(XEN) mwait-idle: max C-state count of 8 reached
(XEN) Brought up 4 CPUs
(XEN) traps.c:813: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] -> ffff82d08035edab
(XEN) Dom0 has maximum 616 PIRQs
(XEN) *** LOADING DOMAIN 0 ***
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xac7000
(XEN) ELF: phdr: paddr=0x1c00000 memsz=0x11c000
(XEN) ELF: phdr: paddr=0x1d1c000 memsz=0x193d8
(XEN) ELF: phdr: paddr=0x1d36000 memsz=0x221000
(XEN) ELF: memory: 0x1000000 -> 0x1f57000
(XEN) ELF: note: GUEST_OS = "linux"
(XEN) ELF: note: GUEST_VERSION = "2.6"
(XEN) ELF: note: XEN_VERSION = "xen-3.0"
(XEN) ELF: note: VIRT_BASE = 0xffffffff80000000
(XEN) ELF: note: INIT_P2M = 0x8000000000
(XEN) ELF: note: ENTRY = 0xffffffff81d36180
(XEN) ELF: note: HYPERCALL_PAGE = 0xffffffff81001000
(XEN) ELF: note: FEATURES = "!writable_page_tables|pae_pgdir_above_4gb|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel"
(XEN) ELF: note: SUPPORTED_FEATURES = 0x90d
(XEN) ELF: note: PAE_MODE = "yes"
(XEN) ELF: note: LOADER = "generic"
(XEN) ELF: note: unknown (0xd)
(XEN) ELF: note: SUSPEND_CANCEL = 0x1
(XEN) ELF: note: MOD_START_PFN = 0x1
(XEN) ELF: note: HV_START_LOW = 0xffff800000000000
(XEN) ELF: note: PADDR_OFFSET = 0
(XEN) ELF: addresses:
(XEN)     virt_base        = 0xffffffff80000000
(XEN)     elf_paddr_offset = 0x0
(XEN)     virt_offset      = 0xffffffff80000000
(XEN)     virt_kstart      = 0xffffffff81000000
(XEN)     virt_kend        = 0xffffffff81f57000
(XEN)     virt_entry       = 0xffffffff81d36180
(XEN)     p2m_base         = 0x8000000000
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1f57000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   000000024c000000->000000024e000000 (1035676 pages to be allocated)
(XEN)  Init. ramdisk: 0000000255d9c000->0000000256fff0a6
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff81f57000
(XEN)  Init. ramdisk: 0000000000000000->0000000000000000
(XEN)  Phys-Mach map: 0000008000000000->0000008000800000
(XEN)  Start info:    ffffffff81f57000->ffffffff81f574b4
(XEN)  Page tables:   ffffffff81f58000->ffffffff81f6b000
(XEN)  Boot stack:    ffffffff81f6b000->ffffffff81f6c000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82000000
(XEN)  ENTRY ADDRESS: ffffffff81d36180
(XEN) Dom0 has maximum 4 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81ac7000
(XEN) ELF: phdr 1 at 0xffffffff81c00000 -> 0xffffffff81d1c000
(XEN) ELF: phdr 2 at 0xffffffff81d1c000 -> 0xffffffff81d353d8
(XEN) ELF: phdr 3 at 0xffffffff81d36000 -> 0xffffffff81e7f000
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) Scrubbing Free RAM on 1 nodes using 2 CPUs
(XEN) ......................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Errors and warnings
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 360kB init memory
(XEN) Bogus DMIBAR 0xfed18001 on 0000:00:00.0
(XEN) d0: Forcing read-only access to MFN fed00

[-- Attachment #4: xl-info.txt --]
[-- Type: text/plain, Size: 1532 bytes --]

host                   : debian
release                : 4.9.0-2-amd64
version                : #1 SMP Debian 4.9.13-1 (2017-02-27)
machine                : x86_64
nr_cpus                : 4
max_cpu_id             : 3
nr_nodes               : 1
cores_per_socket       : 2
threads_per_core       : 2
cpu_mhz                : 2095
hw_caps                : bfebfbff:77faf3bf:2c100800:00000121:00000001:001c27ab:00000000:00000100
virt_caps              : hvm hvm_directio
total_memory           : 8077
free_memory            : 766
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 9
xen_extra              : -unstable
xen_version            : 4.9-unstable
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : Mon Jul 20 15:09:27 2015 +0200 git:a5f6ca77d7
xen_commandline        : placeholder allowsuperpage apic_verbosity=debug conring_size=256k cpufreq=xen cpuidle dom0_mem=4g,max:4g guest_loglvl=warning loglvl=warning console=vga no-real-mode edd=off
cc_compiler            : gcc (Debian 6.3.0-6) 6.3.0 20170205
cc_compile_by          : root
cc_compile_domain      : lcl.net-space.pl
cc_compile_date        : Tue Mar 14 17:27:56 CET 2017
build_id               : e80466571ac19236d7f01343df906063f4c1a1e1
xend_config_format     : 4

[-- Attachment #5: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-15 11:35                 ` Daniel Kiper
@ 2017-03-15 14:27                   ` Doug Goldstein
  2017-03-15 14:38                     ` Daniel Kiper
  2017-03-16 12:12                     ` Daniel Kiper
  0 siblings, 2 replies; 48+ messages in thread
From: Doug Goldstein @ 2017-03-15 14:27 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 1385 bytes --]

On 3/15/17 6:35 AM, Daniel Kiper wrote:
> On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:
> 
> [...]
> 
>> Still missing 'xl info'.
> 
> Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
> I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
> version (it is the latest one). Installed latest Debian testing (Debian
> GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
> patches, on it. Everything works (I left machine working last night).
> Guest boots without any issue. Please take look at attached logs.
> 
> Doug, could you tell me how exactly did you test your machine? I need OS
> type, version, C version (GCC, clang, anything else), bintuils version,
> etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.
> 
> Daniel
> 

I thought I already responded to Konrad saying that latest staging +
relocation patches also comes up.

My guess is that it is related to the IOMMU "fix" that Andrew and Jan
did by #if 0'ing out some of ebmalloc. But I'm not sure. I haven't had
time to look at any of this stuff lately. I went to ELC and then
vacation and then managed to hurt myself on vacation so I've been away
from my computer a bit.

All my branches are available in https://github.com/cardoe/xen and I've
been on Ubuntu 16.04.

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-15 14:27                   ` Doug Goldstein
@ 2017-03-15 14:38                     ` Daniel Kiper
  2017-03-15 14:42                       ` Doug Goldstein
  2017-03-16 12:12                     ` Daniel Kiper
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-15 14:38 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Wed, Mar 15, 2017 at 09:27:27AM -0500, Doug Goldstein wrote:
> On 3/15/17 6:35 AM, Daniel Kiper wrote:
> > On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:
> >
> > [...]
> >
> >> Still missing 'xl info'.
> >
> > Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
> > I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
> > version (it is the latest one). Installed latest Debian testing (Debian
> > GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
> > patches, on it. Everything works (I left machine working last night).
> > Guest boots without any issue. Please take look at attached logs.
> >
> > Doug, could you tell me how exactly did you test your machine? I need OS
> > type, version, C version (GCC, clang, anything else), bintuils version,
> > etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.
> >
> > Daniel
> >
>
> I thought I already responded to Konrad saying that latest staging +
> relocation patches also comes up.

I do not remember it. Maybe I have missed that.

> My guess is that it is related to the IOMMU "fix" that Andrew and Jan
> did by #if 0'ing out some of ebmalloc. But I'm not sure. I haven't had

I reenabled free_ebmalloc_unused_mem() during QEMU tests last week.
It has not changed anything. I will do the same on my NUC.

> time to look at any of this stuff lately. I went to ELC and then
> vacation and then managed to hurt myself on vacation so I've been away
> from my computer a bit.
>
> All my branches are available in https://github.com/cardoe/xen and I've
> been on Ubuntu 16.04.

I will try this too. Thanks for update.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-15 14:38                     ` Daniel Kiper
@ 2017-03-15 14:42                       ` Doug Goldstein
  2017-03-15 15:02                         ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Doug Goldstein @ 2017-03-15 14:42 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 2085 bytes --]

On 3/15/17 9:38 AM, Daniel Kiper wrote:
> On Wed, Mar 15, 2017 at 09:27:27AM -0500, Doug Goldstein wrote:
>> On 3/15/17 6:35 AM, Daniel Kiper wrote:
>>> On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:
>>>
>>> [...]
>>>
>>>> Still missing 'xl info'.
>>>
>>> Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
>>> I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
>>> version (it is the latest one). Installed latest Debian testing (Debian
>>> GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
>>> patches, on it. Everything works (I left machine working last night).
>>> Guest boots without any issue. Please take look at attached logs.
>>>
>>> Doug, could you tell me how exactly did you test your machine? I need OS
>>> type, version, C version (GCC, clang, anything else), bintuils version,
>>> etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.
>>>
>>> Daniel
>>>
>>
>> I thought I already responded to Konrad saying that latest staging +
>> relocation patches also comes up.
> 
> I do not remember it. Maybe I have missed that.
> 
>> My guess is that it is related to the IOMMU "fix" that Andrew and Jan
>> did by #if 0'ing out some of ebmalloc. But I'm not sure. I haven't had
> 
> I reenabled free_ebmalloc_unused_mem() during QEMU tests last week.
> It has not changed anything. I will do the same on my NUC.
> 
>> time to look at any of this stuff lately. I went to ELC and then
>> vacation and then managed to hurt myself on vacation so I've been away
>> from my computer a bit.
>>
>> All my branches are available in https://github.com/cardoe/xen and I've
>> been on Ubuntu 16.04.
> 
> I will try this too. Thanks for update.
> 
> Daniel
> 

Where's the branch you are using on that NUC? Because you can't be using
plain staging on there because the firmware version you reported dead
locks when the EFI GetTime() is called. Its a known issue by Intel. So
you must be patching that out of your Xen?

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-15 14:42                       ` Doug Goldstein
@ 2017-03-15 15:02                         ` Daniel Kiper
  0 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-03-15 15:02 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Wed, Mar 15, 2017 at 09:42:53AM -0500, Doug Goldstein wrote:
> On 3/15/17 9:38 AM, Daniel Kiper wrote:
> > On Wed, Mar 15, 2017 at 09:27:27AM -0500, Doug Goldstein wrote:
> >> On 3/15/17 6:35 AM, Daniel Kiper wrote:
> >>> On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:
> >>>
> >>> [...]
> >>>
> >>>> Still missing 'xl info'.
> >>>
> >>> Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
> >>> I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
> >>> version (it is the latest one). Installed latest Debian testing (Debian
> >>> GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
> >>> patches, on it. Everything works (I left machine working last night).
> >>> Guest boots without any issue. Please take look at attached logs.
> >>>
> >>> Doug, could you tell me how exactly did you test your machine? I need OS
> >>> type, version, C version (GCC, clang, anything else), bintuils version,
> >>> etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.
> >>>
> >>> Daniel
> >>
> >> I thought I already responded to Konrad saying that latest staging +
> >> relocation patches also comes up.
> >
> > I do not remember it. Maybe I have missed that.
> >
> >> My guess is that it is related to the IOMMU "fix" that Andrew and Jan
> >> did by #if 0'ing out some of ebmalloc. But I'm not sure. I haven't had
> >
> > I reenabled free_ebmalloc_unused_mem() during QEMU tests last week.
> > It has not changed anything. I will do the same on my NUC.
> >
> >> time to look at any of this stuff lately. I went to ELC and then
> >> vacation and then managed to hurt myself on vacation so I've been away
> >> from my computer a bit.
> >>
> >> All my branches are available in https://github.com/cardoe/xen and I've
> >> been on Ubuntu 16.04.
> >
> > I will try this too. Thanks for update.
> >
> > Daniel
>
> Where's the branch you are using on that NUC? Because you can't be using
> plain staging on there because the firmware version you reported dead
> locks when the EFI GetTime() is called. Its a known issue by Intel. So
> you must be patching that out of your Xen?

I rebased relocation patches (v16) on top of 9dc1e0cd81ee469d638d1962a92d9b4bd2972bfa
(x86/pagewalk: Consistently use guest_walk_*() helpers for translation) commit.
No more no less. Everything works. Am I missing something?

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-15 14:27                   ` Doug Goldstein
  2017-03-15 14:38                     ` Daniel Kiper
@ 2017-03-16 12:12                     ` Daniel Kiper
  2017-03-16 13:12                       ` Jan Beulich
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-16 12:12 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, ning.sun, andrew.cooper3, pgnet.dev,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Wed, Mar 15, 2017 at 09:27:27AM -0500, Doug Goldstein wrote:
> On 3/15/17 6:35 AM, Daniel Kiper wrote:
> > On Thu, Mar 09, 2017 at 02:02:49PM -0600, Doug Goldstein wrote:
> >
> > [...]
> >
> >> Still missing 'xl info'.
> >
> > Got Intel NUC5i3MYHE (internally it is NUC5i3MYBE board) into my hands.
> > I have put 8 GiB RAM and 500 GB SATA 3 into it. Updated BIOS/EFI to 0041
> > version (it is the latest one). Installed latest Debian testing (Debian
> > GNU/Linux 9 (stretch)), built GRUB2 and Xen, with and without relocation
> > patches, on it. Everything works (I left machine working last night).
> > Guest boots without any issue. Please take look at attached logs.
> >
> > Doug, could you tell me how exactly did you test your machine? I need OS
> > type, version, C version (GCC, clang, anything else), bintuils version,
> > etc. "xl dmesg", "xl info" and "dmesg" full outputs are welcome too.
> >
> > Daniel
> >
>
> I thought I already responded to Konrad saying that latest staging +
> relocation patches also comes up.
>
> My guess is that it is related to the IOMMU "fix" that Andrew and Jan
> did by #if 0'ing out some of ebmalloc. But I'm not sure. I haven't had
> time to look at any of this stuff lately. I went to ELC and then
> vacation and then managed to hurt myself on vacation so I've been away
> from my computer a bit.
>
> All my branches are available in https://github.com/cardoe/xen and I've
> been on Ubuntu 16.04.

Everything works. I am not able to reproduce any issues reported by Doug.
Andrew, Jan, Doug, are there still any objections to commit the rest of v16?

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-16 12:12                     ` Daniel Kiper
@ 2017-03-16 13:12                       ` Jan Beulich
  2017-03-16 13:35                         ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-03-16 13:12 UTC (permalink / raw)
  To: Doug Goldstein, Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 16.03.17 at 13:12, <daniel.kiper@oracle.com> wrote:
> Everything works. I am not able to reproduce any issues reported by Doug.
> Andrew, Jan, Doug, are there still any objections to commit the rest of v16?

Well, Andrew has been telling me privately that even the part that
was already committed regresses XenServer in some way.

Independent of that, Doug, can you confirm things work for you
with the remaining patches applied to current staging?

And of course patch 7 still needs looking at, which I didn't make a
priority because so far it looked like there'll be fixes needed anyway.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-16 13:12                       ` Jan Beulich
@ 2017-03-16 13:35                         ` Daniel Kiper
  2017-03-16 13:43                           ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-16 13:35 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

On Thu, Mar 16, 2017 at 07:12:21AM -0600, Jan Beulich wrote:
> >>> On 16.03.17 at 13:12, <daniel.kiper@oracle.com> wrote:
> > Everything works. I am not able to reproduce any issues reported by Doug.
> > Andrew, Jan, Doug, are there still any objections to commit the rest of v16?
>
> Well, Andrew has been telling me privately that even the part that
> was already committed regresses XenServer in some way.

Hmmm... Andrew, could you provide more details?

> Independent of that, Doug, can you confirm things work for you
> with the remaining patches applied to current staging?
>
> And of course patch 7 still needs looking at, which I didn't make a
> priority because so far it looked like there'll be fixes needed anyway.

OK, so, there is a question here: When is Xen 4.9 final call for this series?
Is it last posting date or hard code freeze?

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-16 13:35                         ` Daniel Kiper
@ 2017-03-16 13:43                           ` Jan Beulich
  2017-03-21 13:05                             ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-03-16 13:43 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

>>> On 16.03.17 at 14:35, <daniel.kiper@oracle.com> wrote:
> On Thu, Mar 16, 2017 at 07:12:21AM -0600, Jan Beulich wrote:
>> >>> On 16.03.17 at 13:12, <daniel.kiper@oracle.com> wrote:
>> > Everything works. I am not able to reproduce any issues reported by Doug.
>> > Andrew, Jan, Doug, are there still any objections to commit the rest of 
> v16?
>>
>> Well, Andrew has been telling me privately that even the part that
>> was already committed regresses XenServer in some way.
> 
> Hmmm... Andrew, could you provide more details?
> 
>> Independent of that, Doug, can you confirm things work for you
>> with the remaining patches applied to current staging?
>>
>> And of course patch 7 still needs looking at, which I didn't make a
>> priority because so far it looked like there'll be fixes needed anyway.
> 
> OK, so, there is a question here: When is Xen 4.9 final call for this 
> series?
> Is it last posting date or hard code freeze?

The latter, afaik.

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-16 13:43                           ` Jan Beulich
@ 2017-03-21 13:05                             ` Daniel Kiper
  2017-03-21 13:48                               ` Jan Beulich
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Kiper @ 2017-03-21 13:05 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

On Thu, Mar 16, 2017 at 07:43:57AM -0600, Jan Beulich wrote:
> >>> On 16.03.17 at 14:35, <daniel.kiper@oracle.com> wrote:
> > On Thu, Mar 16, 2017 at 07:12:21AM -0600, Jan Beulich wrote:
> >> >>> On 16.03.17 at 13:12, <daniel.kiper@oracle.com> wrote:
> >> > Everything works. I am not able to reproduce any issues reported by Doug.
> >> > Andrew, Jan, Doug, are there still any objections to commit the rest of
> > v16?
> >>
> >> Well, Andrew has been telling me privately that even the part that
> >> was already committed regresses XenServer in some way.
> >
> > Hmmm... Andrew, could you provide more details?
> >
> >> Independent of that, Doug, can you confirm things work for you
> >> with the remaining patches applied to current staging?
> >>
> >> And of course patch 7 still needs looking at, which I didn't make a
> >> priority because so far it looked like there'll be fixes needed anyway.
> >
> > OK, so, there is a question here: When is Xen 4.9 final call for this
> > series?
> > Is it last posting date or hard code freeze?
>
> The latter, afaik.

Guys, tempus fugit. Andrew, could you post details about discovered issues?
Doug, is it OK for you to get the rest of my patches into master? Jan, could
you review the rest of v16 patches? I really, really, really, wish to see
this stuff in 4.9.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms
  2017-03-21 13:05                             ` Daniel Kiper
@ 2017-03-21 13:48                               ` Jan Beulich
  0 siblings, 0 replies; 48+ messages in thread
From: Jan Beulich @ 2017-03-21 13:48 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, Doug Goldstein,
	pgnet.dev, ning.sun, julien.grall, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

>>> On 21.03.17 at 14:05, <daniel.kiper@oracle.com> wrote:
> On Thu, Mar 16, 2017 at 07:43:57AM -0600, Jan Beulich wrote:
>> >>> On 16.03.17 at 14:35, <daniel.kiper@oracle.com> wrote:
>> > On Thu, Mar 16, 2017 at 07:12:21AM -0600, Jan Beulich wrote:
>> >> >>> On 16.03.17 at 13:12, <daniel.kiper@oracle.com> wrote:
>> >> > Everything works. I am not able to reproduce any issues reported by Doug.
>> >> > Andrew, Jan, Doug, are there still any objections to commit the rest of
>> > v16?
>> >>
>> >> Well, Andrew has been telling me privately that even the part that
>> >> was already committed regresses XenServer in some way.
>> >
>> > Hmmm... Andrew, could you provide more details?
>> >
>> >> Independent of that, Doug, can you confirm things work for you
>> >> with the remaining patches applied to current staging?
>> >>
>> >> And of course patch 7 still needs looking at, which I didn't make a
>> >> priority because so far it looked like there'll be fixes needed anyway.
>> >
>> > OK, so, there is a question here: When is Xen 4.9 final call for this
>> > series?
>> > Is it last posting date or hard code freeze?
>>
>> The latter, afaik.
> 
> Guys, tempus fugit. Andrew, could you post details about discovered issues?
> Doug, is it OK for you to get the rest of my patches into master? Jan, could
> you review the rest of v16 patches? I really, really, really, wish to see
> this stuff in 4.9.

Everything in the right order please: I don't see much point in
reviewing that last remaining patch (which is not exactly small)
without first knowing what issues we have with the first part
as well as what issues people (read: Doug) have run into with
the rest (for this latter, from what I've read last there may be
none known at this time).

Jan


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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-02-21 19:19 ` [PATCH v16 7/9] x86: make Xen early boot code relocatable Daniel Kiper
@ 2017-04-07 11:23   ` Jan Beulich
  2017-04-13 14:11     ` Daniel Kiper
  0 siblings, 1 reply; 48+ messages in thread
From: Jan Beulich @ 2017-04-07 11:23 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

>>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> Every multiboot protocol (regardless of version) compatible image must
> specify its load address (in ELF or multiboot header). Multiboot protocol
> compatible loader have to load image at specified address. However, there
> is no guarantee that the requested memory region (in case of Xen it starts
> at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
> and it is free (legacy BIOS platforms are merciful for Xen but I found at
> least one EFI platform on which Xen load address conflicts with EFI boot
> services; it is Dell PowerEdge R820 with latest firmware). To cope with that
> problem we must make Xen early boot code relocatable and help boot loader to
> relocate image in proper way by suggesting, not requesting specific load
> addresses as it is right now, allowed address ranges. This patch does 
> former.
> It does not add multiboot2 protocol interface which is done in "x86: add
> multiboot2 protocol support for relocatable images" patch.
> 
> This patch changes following things:
>   - %esi register is used as a storage for Xen image load base address;
>     it is mostly unused in early boot code and preserved during C functions
>     calls in 32-bit mode,
>   - %fs is used as base for Xen data relative addressing in 32-bit code
>     if it is possible; %esi is used for that thing during error printing
>     because it is not always possible to properly and efficiently
>     initialize %fs.
> 
> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>



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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-04-07 11:23   ` Jan Beulich
@ 2017-04-13 14:11     ` Daniel Kiper
  2017-04-13 19:43       ` Doug Goldstein
  2017-04-14  1:44       ` Konrad Rzeszutek Wilk
  0 siblings, 2 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-04-13 14:11 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei

On Fri, Apr 07, 2017 at 05:23:33AM -0600, Jan Beulich wrote:
> >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> > Every multiboot protocol (regardless of version) compatible image must
> > specify its load address (in ELF or multiboot header). Multiboot protocol
> > compatible loader have to load image at specified address. However, there
> > is no guarantee that the requested memory region (in case of Xen it starts
> > at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
> > and it is free (legacy BIOS platforms are merciful for Xen but I found at
> > least one EFI platform on which Xen load address conflicts with EFI boot
> > services; it is Dell PowerEdge R820 with latest firmware). To cope with that
> > problem we must make Xen early boot code relocatable and help boot loader to
> > relocate image in proper way by suggesting, not requesting specific load
> > addresses as it is right now, allowed address ranges. This patch does
> > former.
> > It does not add multiboot2 protocol interface which is done in "x86: add
> > multiboot2 protocol support for relocatable images" patch.
> >
> > This patch changes following things:
> >   - %esi register is used as a storage for Xen image load base address;
> >     it is mostly unused in early boot code and preserved during C functions
> >     calls in 32-bit mode,
> >   - %fs is used as base for Xen data relative addressing in 32-bit code
> >     if it is possible; %esi is used for that thing during error printing
> >     because it is not always possible to properly and efficiently
> >     initialize %fs.
> >
> > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

It looks that everything passed through test gate and landed in master.
So, this way we have full multiboot2 support in Xen. This means that
you can boot Xen using GRUB2 on EFI platforms.

I would like to thank everybody who helped me to make it happen.
Especially Jan who patiently reviewed whole series many times
and replied for my stupid questions.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-04-13 14:11     ` Daniel Kiper
@ 2017-04-13 19:43       ` Doug Goldstein
  2017-04-14 10:46         ` Daniel Kiper
  2017-04-14  1:44       ` Konrad Rzeszutek Wilk
  1 sibling, 1 reply; 48+ messages in thread
From: Doug Goldstein @ 2017-04-13 19:43 UTC (permalink / raw)
  To: Daniel Kiper, Jan Beulich
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, xen-devel, qiaowei.ren, gang.wei, fu.wei


[-- Attachment #1.1.1: Type: text/plain, Size: 2237 bytes --]

On 4/13/17 9:11 AM, Daniel Kiper wrote:
> On Fri, Apr 07, 2017 at 05:23:33AM -0600, Jan Beulich wrote:
>>>>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
>>> Every multiboot protocol (regardless of version) compatible image must
>>> specify its load address (in ELF or multiboot header). Multiboot protocol
>>> compatible loader have to load image at specified address. However, there
>>> is no guarantee that the requested memory region (in case of Xen it starts
>>> at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
>>> and it is free (legacy BIOS platforms are merciful for Xen but I found at
>>> least one EFI platform on which Xen load address conflicts with EFI boot
>>> services; it is Dell PowerEdge R820 with latest firmware). To cope with that
>>> problem we must make Xen early boot code relocatable and help boot loader to
>>> relocate image in proper way by suggesting, not requesting specific load
>>> addresses as it is right now, allowed address ranges. This patch does
>>> former.
>>> It does not add multiboot2 protocol interface which is done in "x86: add
>>> multiboot2 protocol support for relocatable images" patch.
>>>
>>> This patch changes following things:
>>>   - %esi register is used as a storage for Xen image load base address;
>>>     it is mostly unused in early boot code and preserved during C functions
>>>     calls in 32-bit mode,
>>>   - %fs is used as base for Xen data relative addressing in 32-bit code
>>>     if it is possible; %esi is used for that thing during error printing
>>>     because it is not always possible to properly and efficiently
>>>     initialize %fs.
>>>
>>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> It looks that everything passed through test gate and landed in master.
> So, this way we have full multiboot2 support in Xen. This means that
> you can boot Xen using GRUB2 on EFI platforms.
> 
> I would like to thank everybody who helped me to make it happen.
> Especially Jan who patiently reviewed whole series many times
> and replied for my stupid questions.
> 
> Daniel
> 

Congrats Daniel.

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-04-13 14:11     ` Daniel Kiper
  2017-04-13 19:43       ` Doug Goldstein
@ 2017-04-14  1:44       ` Konrad Rzeszutek Wilk
  2017-04-14 10:50         ` Daniel Kiper
  1 sibling, 1 reply; 48+ messages in thread
From: Konrad Rzeszutek Wilk @ 2017-04-14  1:44 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, Jan Beulich, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

On Thu, Apr 13, 2017 at 04:11:25PM +0200, Daniel Kiper wrote:
> On Fri, Apr 07, 2017 at 05:23:33AM -0600, Jan Beulich wrote:
> > >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> > > Every multiboot protocol (regardless of version) compatible image must
> > > specify its load address (in ELF or multiboot header). Multiboot protocol
> > > compatible loader have to load image at specified address. However, there
> > > is no guarantee that the requested memory region (in case of Xen it starts
> > > at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
> > > and it is free (legacy BIOS platforms are merciful for Xen but I found at
> > > least one EFI platform on which Xen load address conflicts with EFI boot
> > > services; it is Dell PowerEdge R820 with latest firmware). To cope with that
> > > problem we must make Xen early boot code relocatable and help boot loader to
> > > relocate image in proper way by suggesting, not requesting specific load
> > > addresses as it is right now, allowed address ranges. This patch does
> > > former.
> > > It does not add multiboot2 protocol interface which is done in "x86: add
> > > multiboot2 protocol support for relocatable images" patch.
> > >
> > > This patch changes following things:
> > >   - %esi register is used as a storage for Xen image load base address;
> > >     it is mostly unused in early boot code and preserved during C functions
> > >     calls in 32-bit mode,
> > >   - %fs is used as base for Xen data relative addressing in 32-bit code
> > >     if it is possible; %esi is used for that thing during error printing
> > >     because it is not always possible to properly and efficiently
> > >     initialize %fs.
> > >
> > > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> >
> > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> It looks that everything passed through test gate and landed in master.
> So, this way we have full multiboot2 support in Xen. This means that
> you can boot Xen using GRUB2 on EFI platforms.
> 
> I would like to thank everybody who helped me to make it happen.
> Especially Jan who patiently reviewed whole series many times
> and replied for my stupid questions.
> 

<Konrad unscrews the vodka bottle!>

Yeeeeey! Congrats!

> Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-04-13 19:43       ` Doug Goldstein
@ 2017-04-14 10:46         ` Daniel Kiper
  0 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-04-14 10:46 UTC (permalink / raw)
  To: Doug Goldstein
  Cc: Juergen Gross, sstabellini, andrew.cooper3, pgnet.dev, ning.sun,
	julien.grall, Jan Beulich, xen-devel, qiaowei.ren, gang.wei,
	fu.wei

On Thu, Apr 13, 2017 at 02:43:22PM -0500, Doug Goldstein wrote:
> On 4/13/17 9:11 AM, Daniel Kiper wrote:
> > On Fri, Apr 07, 2017 at 05:23:33AM -0600, Jan Beulich wrote:
> >>>>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> >>> Every multiboot protocol (regardless of version) compatible image must
> >>> specify its load address (in ELF or multiboot header). Multiboot protocol
> >>> compatible loader have to load image at specified address. However, there
> >>> is no guarantee that the requested memory region (in case of Xen it starts
> >>> at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
> >>> and it is free (legacy BIOS platforms are merciful for Xen but I found at
> >>> least one EFI platform on which Xen load address conflicts with EFI boot
> >>> services; it is Dell PowerEdge R820 with latest firmware). To cope with that
> >>> problem we must make Xen early boot code relocatable and help boot loader to
> >>> relocate image in proper way by suggesting, not requesting specific load
> >>> addresses as it is right now, allowed address ranges. This patch does
> >>> former.
> >>> It does not add multiboot2 protocol interface which is done in "x86: add
> >>> multiboot2 protocol support for relocatable images" patch.
> >>>
> >>> This patch changes following things:
> >>>   - %esi register is used as a storage for Xen image load base address;
> >>>     it is mostly unused in early boot code and preserved during C functions
> >>>     calls in 32-bit mode,
> >>>   - %fs is used as base for Xen data relative addressing in 32-bit code
> >>>     if it is possible; %esi is used for that thing during error printing
> >>>     because it is not always possible to properly and efficiently
> >>>     initialize %fs.
> >>>
> >>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> >>
> >> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> >
> > It looks that everything passed through test gate and landed in master.
> > So, this way we have full multiboot2 support in Xen. This means that
> > you can boot Xen using GRUB2 on EFI platforms.
> >
> > I would like to thank everybody who helped me to make it happen.
> > Especially Jan who patiently reviewed whole series many times
> > and replied for my stupid questions.
> >
> > Daniel
>
> Congrats Daniel.

Thank you.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH v16 7/9] x86: make Xen early boot code relocatable
  2017-04-14  1:44       ` Konrad Rzeszutek Wilk
@ 2017-04-14 10:50         ` Daniel Kiper
  0 siblings, 0 replies; 48+ messages in thread
From: Daniel Kiper @ 2017-04-14 10:50 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk
  Cc: Juergen Gross, sstabellini, andrew.cooper3, cardoe, pgnet.dev,
	ning.sun, julien.grall, Jan Beulich, xen-devel, qiaowei.ren,
	gang.wei, fu.wei

On Thu, Apr 13, 2017 at 09:44:17PM -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Apr 13, 2017 at 04:11:25PM +0200, Daniel Kiper wrote:
> > On Fri, Apr 07, 2017 at 05:23:33AM -0600, Jan Beulich wrote:
> > > >>> On 21.02.17 at 20:19, <daniel.kiper@oracle.com> wrote:
> > > > Every multiboot protocol (regardless of version) compatible image must
> > > > specify its load address (in ELF or multiboot header). Multiboot protocol
> > > > compatible loader have to load image at specified address. However, there
> > > > is no guarantee that the requested memory region (in case of Xen it starts
> > > > at 2 MiB and ends at ~5 MiB) where image should be loaded initially is a RAM
> > > > and it is free (legacy BIOS platforms are merciful for Xen but I found at
> > > > least one EFI platform on which Xen load address conflicts with EFI boot
> > > > services; it is Dell PowerEdge R820 with latest firmware). To cope with that
> > > > problem we must make Xen early boot code relocatable and help boot loader to
> > > > relocate image in proper way by suggesting, not requesting specific load
> > > > addresses as it is right now, allowed address ranges. This patch does
> > > > former.
> > > > It does not add multiboot2 protocol interface which is done in "x86: add
> > > > multiboot2 protocol support for relocatable images" patch.
> > > >
> > > > This patch changes following things:
> > > >   - %esi register is used as a storage for Xen image load base address;
> > > >     it is mostly unused in early boot code and preserved during C functions
> > > >     calls in 32-bit mode,
> > > >   - %fs is used as base for Xen data relative addressing in 32-bit code
> > > >     if it is possible; %esi is used for that thing during error printing
> > > >     because it is not always possible to properly and efficiently
> > > >     initialize %fs.
> > > >
> > > > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> > >
> > > Reviewed-by: Jan Beulich <jbeulich@suse.com>
> >
> > It looks that everything passed through test gate and landed in master.
> > So, this way we have full multiboot2 support in Xen. This means that
> > you can boot Xen using GRUB2 on EFI platforms.
> >
> > I would like to thank everybody who helped me to make it happen.
> > Especially Jan who patiently reviewed whole series many times
> > and replied for my stupid questions.
>
> <Konrad unscrews the vodka bottle!>

Cheers!

> Yeeeeey! Congrats!

Thank you.

Daniel

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

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2017-04-14 10:51 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-21 19:19 [PATCH v16 0/9] x86: multiboot2 protocol support Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 1/9] x86: add " Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 2/9] efi: build xen.gz with EFI code Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 3/9] efi: create new early memory allocator Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
2017-02-21 19:24   ` Daniel Kiper
2017-02-22 13:42     ` Jan Beulich
2017-02-22 13:46       ` Doug Goldstein
2017-02-22 15:34       ` Daniel Kiper
2017-02-22 17:04         ` Doug Goldstein
2017-03-06 23:39           ` Daniel Kiper
2017-03-08  3:44             ` Konrad Rzeszutek Wilk
2017-03-08 14:17               ` Daniel Kiper
2017-03-08 16:46                 ` Konrad Rzeszutek Wilk
2017-03-09 20:02               ` Doug Goldstein
2017-03-09 22:20                 ` Konrad Rzeszutek Wilk
2017-03-15 11:35                 ` Daniel Kiper
2017-03-15 14:27                   ` Doug Goldstein
2017-03-15 14:38                     ` Daniel Kiper
2017-03-15 14:42                       ` Doug Goldstein
2017-03-15 15:02                         ` Daniel Kiper
2017-03-16 12:12                     ` Daniel Kiper
2017-03-16 13:12                       ` Jan Beulich
2017-03-16 13:35                         ` Daniel Kiper
2017-03-16 13:43                           ` Jan Beulich
2017-03-21 13:05                             ` Daniel Kiper
2017-03-21 13:48                               ` Jan Beulich
2017-03-09 15:24             ` Daniel Kiper
2017-03-09 15:41               ` Andrew Cooper
2017-03-09 15:45               ` Jan Beulich
2017-02-21 19:19 ` [PATCH v16 5/9] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
2017-03-01  9:05   ` Jan Beulich
2017-03-01 10:13     ` Daniel Kiper
2017-03-01 10:34       ` Jan Beulich
2017-03-01 10:51         ` Daniel Kiper
2017-03-01 11:21           ` Jan Beulich
2017-03-06 14:51             ` Daniel Kiper
2017-03-06 14:59               ` Jan Beulich
2017-02-21 19:19 ` [PATCH v16 6/9] x86/setup: use XEN_IMG_OFFSET instead of Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 7/9] x86: make Xen early boot code relocatable Daniel Kiper
2017-04-07 11:23   ` Jan Beulich
2017-04-13 14:11     ` Daniel Kiper
2017-04-13 19:43       ` Doug Goldstein
2017-04-14 10:46         ` Daniel Kiper
2017-04-14  1:44       ` Konrad Rzeszutek Wilk
2017-04-14 10:50         ` Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 8/9] x86/boot: rename sym_phys() to sym_offs() Daniel Kiper
2017-02-21 19:19 ` [PATCH v16 9/9] x86: add multiboot2 protocol support for relocatable images Daniel Kiper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.