* Building PVH mini-os with libc support
@ 2017-12-28 18:33 Bruno Alvisio
2017-12-28 19:18 ` Andrew Cooper
0 siblings, 1 reply; 4+ messages in thread
From: Bruno Alvisio @ 2017-12-28 18:33 UTC (permalink / raw)
To: minios-devel, xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 19436 bytes --]
Hello all,
I am trying to build PVH mini-os with libc support. These are the steps I
have followed so far:
1. Xen repo (master: commit id: d2f86bf604698806d311cc251c1b66fbb752673c)
2. mini-os repo (master: commit id:
0b4b7897e08b967a09bed2028a79fabff82342dd)
3. Made the following modifications in the xen repo to build c-stubdom:
diff --git a/stubdom/Makefile b/stubdom/Makefile
index f45eeabd8b..aa21904019 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -61,7 +61,7 @@ TARGET_CPPFLAGS += -I$(XEN_ROOT)/xen/include
TARGET_LDFLAGS += -nostdlib
-L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
-TARGETS=$(STUBDOM_TARGETS)
+TARGETS=$(STUBDOM_TARGETS) c
STUBDOMPATH="stubdompath.sh"
genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
diff --git a/stubdom/c/minios.cfg b/stubdom/c/minios.cfg
index e69de29bb2..cacde0cbca 100644
--- a/stubdom/c/minios.cfg
+++ b/stubdom/c/minios.cfg
@@ -0,0 +1,18 @@
+CONFIG_PARAVIRT=n
+CONFIG_START_NETWORK ?= y
+CONFIG_SPARSE_BSS ?= y
+CONFIG_QEMU_XS_ARGS ?= n
+CONFIG_PCIFRONT ?= n
+CONFIG_BLKFRONT ?= y
+CONFIG_TPMFRONT ?= n
+CONFIG_TPM_TIS ?= n
+CONFIG_TPMBACK ?= n
+CONFIG_NETFRONT ?= y
+CONFIG_FBFRONT ?= y
+CONFIG_KBDFRONT ?= y
+CONFIG_CONSFRONT ?= y
+CONFIG_XENBUS ?= y
+CONFIG_XC ?=y
+CONFIG_BALLOON ?= n
4. $ cd $(XEN_ROOT)
5. $ make; sudo make instal
6. Reboot host
7. $ cd $(XEN_ROOT)/stubdom
8. $ make c-stubdom
9. Used the following configuration file to create the domain:
type="pvh"
memory=512
vcpu=1
name="minios"
kernel="/home/balvisio/xen/stubdom/mini-os-x86_64-c/mini-os.gz"
When I create the domain it crashes during the bootstrap process with a
triple fault. The following are the dmesg logs (note that "Xen Minimal OS
(hvm)!" is printed and the domain crashes after that line in setup.c):
(XEN) grant_table.c:1688:d0v3 Expanding d360 grant table from 0 to 1 frames
(XEN) HVM360 save: CPU
(XEN) HVM360 save: PIC
(XEN) HVM360 save: IOAPIC
(XEN) HVM360 save: LAPIC
(XEN) HVM360 save: LAPIC_REGS
(XEN) HVM360 save: PCI_IRQ
(XEN) HVM360 save: ISA_IRQ
(XEN) HVM360 save: PCI_LINK
(XEN) HVM360 save: PIT
(XEN) HVM360 save: RTC
(XEN) HVM360 save: HPET
(XEN) HVM360 save: PMTIMER
(XEN) HVM360 save: MTRR
(XEN) HVM360 save: VIRIDIAN_DOMAIN
(XEN) HVM360 save: CPU_XSAVE
(XEN) HVM360 save: VIRIDIAN_VCPU
(XEN) HVM360 save: VMCE_VCPU
(XEN) HVM360 save: TSC_ADJUST
(XEN) HVM360 restore: CPU 0
(d360) Bootstrapping...
(XEN) Dom360 callback via changed to Direct Vector 0x20
(d360) Xen Minimal OS (hvm)!
(XEN) d360v0 Triple fault - invoking HVM shutdown action 1
(XEN) *** Dumping Dom360 vcpu#0 state: ***
(XEN) ----[ Xen-4.10.0-rc x86_64 debug=y Not tainted ]----
(XEN) CPU: 7
(XEN) RIP: 0008:[<0000000000056fc8>]
(XEN) RFLAGS: 0000000000010006 CONTEXT: hvm guest (d360v0)
(XEN) rax: 00000000000bfe75 rbx: 00000000000bfe75 rcx: 0000000000000000
(XEN) rdx: 0000000000000017 rsi: 00000000000bfe60 rdi: 0000000000000000
(XEN) rbp: 00000000000bfec0 rsp: 00000000000bfe60 r8: 0000000000000000
(XEN) r9: 0000000000089982 r10: 0000000000000016 r11: 0000000000000000
(XEN) r12: 0000000000000017 r13: 0000000000000016 r14: 0000000000000000
(XEN) r15: 0d8b4c1575ff8548 cr0: 0000000080000011 cr4: 0000000000000220
(XEN) cr3: 0000000000099000 cr2: 0000000000000000
(XEN) fsb: 0000000000000000 gsb: 0000000000000000 gss: 0000000000000000
(XEN) ds: 0033 es: 0033 fs: 0033 gs: 0033 ss: 0000 cs: 0008
Any help on this would be greatly appreciated. In addition to this I have
noticed that even fter installing Xen and rebooting the host, the initial
‘xl dmesg’ logs show that Xen tries to launch unsuccessfully domains
created before the system was rebooted. I am not sure if these two issues
are related but I pasting a trace of the logs (these dmesg logs are seen
just after rebooting the host before attempting anything else):
root@debianxen:/home/balvisio# xl dmesg
(XEN) parameter "placeholder" unknown!
Xen 4.10.0-rc
(XEN) Xen version 4.10.0-rc (balvisio@us.oracle.com) (gcc (Debian 6.3.0-18)
6.3.0 20170516) debug=y Thu Dec 28 09:53:12 PST 2017
(XEN) Latest ChangeSet: Thu Nov 16 21:34:02 2017 +0000 git:d2f86bf604-dirty
(XEN) Bootloader: GRUB 2.02~beta3-5
(XEN) Command line: placeholder
(XEN) Xen image load base address: 0
(XEN) Video information:
(XEN) VGA is text mode 80x25, font 8x16
(XEN) VBE/DDC methods: none; EDID transfer time: 0 seconds
(XEN) EDID info not retrieved because no DDC retrieval method detected
(XEN) Disc information:
(XEN) Found 2 MBR signatures
(XEN) Found 2 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN) 0000000000000000 - 000000000009a400 (usable)
(XEN) 000000000009a400 - 00000000000a0000 (reserved)
(XEN) 00000000000e0000 - 0000000000100000 (reserved)
(XEN) 0000000000100000 - 00000000bf406000 (usable)
(XEN) 00000000bf406000 - 00000000bf452000 (ACPI NVS)
(XEN) 00000000bf452000 - 00000000bf45a000 (ACPI data)
(XEN) 00000000bf45a000 - 00000000bf477000 (reserved)
(XEN) 00000000bf477000 - 00000000bf478000 (ACPI NVS)
(XEN) 00000000bf478000 - 00000000bf489000 (reserved)
(XEN) 00000000bf489000 - 00000000bf48c000 (ACPI NVS)
(XEN) 00000000bf48c000 - 00000000bf4ad000 (reserved)
(XEN) 00000000bf4ad000 - 00000000bf4af000 (usable)
(XEN) 00000000bf4af000 - 00000000bf503000 (reserved)
(XEN) 00000000bf503000 - 00000000bf50d000 (ACPI NVS)
(XEN) 00000000bf50d000 - 00000000bf533000 (reserved)
(XEN) 00000000bf533000 - 00000000bf576000 (ACPI NVS)
(XEN) 00000000bf576000 - 00000000bf800000 (usable)
(XEN) 00000000fed1c000 - 00000000fed40000 (reserved)
(XEN) 00000000ff000000 - 0000000100000000 (reserved)
(XEN) 0000000100000000 - 0000000440000000 (usable)
(XEN) New Xen image base address: 0xbee00000
(XEN) ACPI: RSDP 000F0450, 0024 (r2 SUPERM)
(XEN) ACPI: XSDT BF452078, 0074 (r1 SUPERM SMCI--MB 1 AMI 10013)
(XEN) ACPI: FACP BF458B38, 00F4 (r4 SUPERM SMCI--MB 1 AMI 10013)
(XEN) ACPI: DSDT BF452180, 69B8 (r2 SUPERM SMCI--MB 0 INTL 20051117)
(XEN) ACPI: FACS BF50AF80, 0040
(XEN) ACPI: APIC BF458C30, 0092 (r3 SUPERM SMCI--MB 1 AMI 10013)
(XEN) ACPI: SSDT BF458CC8, 01D6 (r1 AMICPU PROC 1 MSFT 3000001)
(XEN) ACPI: MCFG BF458EA0, 003C (r1 SUPERM SMCI--MB 1 MSFT 97)
(XEN) ACPI: HPET BF458EE0, 0038 (r1 SUPERM SMCI--MB 1 AMI. 4)
(XEN) ACPI: SPMI BF458F18, 0040 (r5 A M I OEMSPMI 0 AMI. 0)
(XEN) ACPI: EINJ BF458F58, 0130 (r1 AMI AMI EINJ 0 0)
(XEN) ACPI: ERST BF459088, 0210 (r1 AMIER AMI ERST 0 0)
(XEN) ACPI: HEST BF459298, 00A8 (r1 AMI AMI HEST 0 0)
(XEN) ACPI: BERT BF459340, 0030 (r1 AMI AMI BERT 0 0)
(XEN) System RAM: 16374MB (16767152kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000440000000
(XEN) Domain heap initialised
(XEN) CPU Vendor: Intel, Family 6 (0x6), Model 42 (0x2a), Stepping 7 (raw
000206a7)
(XEN) found SMP MP-table at 000fcd80
(XEN) DMI 2.7 present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x408 (32 bits)
(XEN) ACPI: SLEEP INFO: pm1x_cnt[1:404,1:0], pm1x_evt[1:400,1:0]
(XEN) ACPI: 32/64X FACS address mismatch in FADT -
bf50af80/0000000000000000, using 32
(XEN) ACPI: wakeup_vec[bf50af8c], 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[0xff] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 0, 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) Xen ERST support is initialized.
(XEN) HEST: Table parsing has been initialized
(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: depends on iommu_supports_eim.
(XEN) xstate: size: 0x340 and states: 0x7
(XEN) mce_intel.c:782: MCA Capability: firstbank 0, extended MCE MSR 0,
BCAST, CMCI
(XEN) CPU0: Intel machine check reporting enabled
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Platform timer is 14.318MHz HPET
(XEN) Detected 3192.768 MHz processor.
(XEN) Initing memory sharing.
(XEN) alt table ffff82d080451778 -> ffff82d080452d98
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: Not using MCFG for segment 0000 bus 00-ff
(XEN) I/O virtualisation disabled
(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=-1 pin2=-1
(XEN) TSC deadline timer enabled
(XEN) Allocated console ring of 64 KiB.
(XEN) mwait-idle: MWAIT substates: 0x1120
(XEN) mwait-idle: v0.4.1 model 0x2a
(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) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB
(XEN) Brought up 8 CPUs
(XEN) build-id: bca1c3697611c869f348a4b7c4bfe326d0cbbc25
(XEN) Running stub recovery selftests...
(XEN) traps.c:1540: GPF (0000): ffff82d0bffff041 [ffff82d0bffff041] ->
ffff82d08036d2f2
(XEN) traps.c:739: Trap 12: ffff82d0bffff040 [ffff82d0bffff040] ->
ffff82d08036d2f2
(XEN) traps.c:1076: Trap 3: ffff82d0bffff041 [ffff82d0bffff041] ->
ffff82d08036d2f2
(XEN) ACPI sleep modes: S3
(XEN) VPMU: disabled
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Dom0 has maximum 792 PIRQs
(XEN) grant_table.c:1688:IDLEv0 Expanding d0 grant table from 0 to 1 frames
(XEN) NX (Execute Disable) protection active
(XEN) *** LOADING DOMAIN 0 ***
(XEN) ELF: phdr: paddr=0x1000000 memsz=0xaca000
(XEN) ELF: phdr: paddr=0x1c00000 memsz=0x11e000
(XEN) ELF: phdr: paddr=0x1d1e000 memsz=0x19418
(XEN) ELF: phdr: paddr=0x1d38000 memsz=0x223000
(XEN) ELF: memory: 0x1000000 -> 0x1f5b000
(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 = 0xffffffff81d38180
(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 = 0xffffffff81f5b000
(XEN) virt_entry = 0xffffffff81d38180
(XEN) p2m_base = 0x8000000000
(XEN) Xen kernel: 64-bit, lsb, compat32
(XEN) Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1f5b000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) Dom0 alloc.: 000000042e000000->0000000430000000 (4099048 pages to
be allocated)
(XEN) Init. ramdisk: 000000043ed4d000->000000043ffffa9c
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN) Loaded kernel: ffffffff81000000->ffffffff81f5b000
(XEN) Init. ramdisk: 0000000000000000->0000000000000000
(XEN) Phys-Mach map: 0000008000000000->0000008001f5f4d8
(XEN) Start info: ffffffff81f5b000->ffffffff81f5b4b4
(XEN) Page tables: ffffffff81f5c000->ffffffff81f6f000
(XEN) Boot stack: ffffffff81f6f000->ffffffff81f70000
(XEN) TOTAL: ffffffff80000000->ffffffff82000000
(XEN) ENTRY ADDRESS: ffffffff81d38180
(XEN) Dom0 has maximum 8 VCPUs
(XEN) ELF: phdr 0 at 0xffffffff81000000 -> 0xffffffff81aca000
(XEN) ELF: phdr 1 at 0xffffffff81c00000 -> 0xffffffff81d1e000
(XEN) ELF: phdr 2 at 0xffffffff81d1e000 -> 0xffffffff81d37418
(XEN) ELF: phdr 3 at 0xffffffff81d38000 -> 0xffffffff81e82000
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs
(XEN) ..................................done.
(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 456kB init memory
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:01.0
(XEN) PCI add device 0000:00:16.0
(XEN) PCI add device 0000:00:16.1
(XEN) PCI add device 0000:00:1a.0
(XEN) PCI add device 0000:00:1d.0
(XEN) PCI add device 0000:00:1e.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:01:00.0
(XEN) PCI add device 0000:01:00.1
(XEN) PCI add device 0000:02:03.0
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) d0: Forcing read-only access to MFN fed00
(XEN) traps.c:1540: GPF (0000): ffff82d080363383
[emul-priv-op.c#read_msr+0x370/0x45c] -> ffff82d08036d9b2
(XEN) traps.c:1540: GPF (0000): ffff82d080363383
[emul-priv-op.c#read_msr+0x370/0x45c] -> ffff82d08036d9b2
(XEN) traps.c:1540: GPF (0000): ffff82d080363383
[emul-priv-op.c#read_msr+0x370/0x45c] -> ffff82d08036d9b2
(XEN) grant_table.c:1688:d0v3 Expanding d1 grant table from 0 to 1 frames
(XEN) HVM1 restore: CPU 0
(XEN) HVM1 restore: CPU 1
(XEN) HVM1 restore: PIC 0
(XEN) HVM1 restore: PIC 1
(XEN) HVM1 restore: IOAPIC 0
(XEN) HVM1 restore: LAPIC 0
(XEN) HVM1 restore: LAPIC 1
(XEN) HVM1 restore: LAPIC_REGS 0
(XEN) HVM1 restore: LAPIC_REGS 1
(XEN) HVM1 restore: PCI_IRQ 0
(XEN) HVM1 restore: ISA_IRQ 0
(XEN) HVM1 restore: PCI_LINK 0
(XEN) HVM1 restore: PIT 0
(XEN) HVM1 restore: RTC 0
(XEN) HVM1 restore: HPET 0
(XEN) HVM1 restore: PMTIMER 0
(XEN) HVM1 restore: MTRR 0
(XEN) HVM1 restore: MTRR 1
(XEN) HVM1 restore: CPU_XSAVE 0
(XEN) HVM1 restore: CPU_XSAVE 1
(XEN) HVM1 restore: VMCE_VCPU 0
(XEN) HVM1 restore: VMCE_VCPU 1
(XEN) HVM1 restore: TSC_ADJUST 0
(XEN) HVM1 restore: TSC_ADJUST 1
(XEN) grant_table.c:1688:d0v1 Expanding d2 grant table from 0 to 1 frames
(d2) Bootstrapping...
(d2) Xen Minimal OS (pv)!
(d2) start_info: 0x574000(VA)
(d2) nr_pages: 0x2000
(d2) shared_inf: 0x06183000(MA)
(d2) pt_base: 0x577000(VA)
(d2) nr_pt_frames: 0x7
(d2) mfn_list: 0x564000(VA)
(d2) mod_start: 0x0(VA)
(d2) mod_len: 0
(d2) flags: 0x0
(d2) cmd_line: -d 1
(d2) stack: 0x523140-0x543140
(d2) MM: Init
(d2) _text: 0x0(VA)
(d2) _etext: 0x117ec2(VA)
(d2) _erodata: 0x14a000(VA)
(d2) _edata: 0x14ab68(VA)
(d2) stack start: 0x523140(VA)
(d2) _end: 0x563e78(VA)
(d2) start_pfn: 57e
(d2) max_pfn: 2000
(d2) Mapping memory range 0x57e000 - 0x2000000
(d2) setting 0x0-0x14a000 readonly
(d2) skipped 1000
(d2) MM: Initialise page allocator for 58a000(58a000)-2000000(2000000)
(d2) Adding memory range 58b000-2000000
(d2) MM: done
(d2) Demand map pfns at 100000000000-108000000000.
(d2) Heap resides at 200000000000-208000000000.
(d2) Initialising timer interface
(d2) Initialising console ... done.
(XEN) grant_table.c:1688:d2v0 Expanding d2 grant table from 1 to 4 frames
(d2) gnttab_table mapped at 0x100000000000.
(d2) Initialising scheduler
(d2) Thread "Idle": pointer: 0x0x200000000050, stack: 0x0x5a0000
(d2) Thread "xenstore": pointer: 0x0x200000000800, stack: 0x0x5b0000
(d2) xenbus initialised on irq 1
(d2) Thread "shutdown": pointer: 0x0x200000000fb0, stack: 0x0x5c0000
(d2) main.c: dummy main: par=0x0
(d2) Thread "main": pointer: 0x0x200000001760, stack: 0x0x5d0000
(d2) sparsing 3MB at 181000
(d2) Thread "pcifront": pointer: 0x0x200000003c70, stack: 0x0x5e0000
(d2) pcifront_watches: waiting for backend path to appear
device/pci/0/backend
(d2) dom vm is at /vm/9389f006-0389-4aa8-ad4b-61eeea31676b
(d2) ************************ NETFRONT for device/vif/0 **********
(d2)
(d2)
(d2) net TX ring size 256
(d2) net RX ring size 256
(d2) backend at /local/domain/0/backend/vif/2/0
(d2) mac is 00:16:3e:05:84:95
(d2) **************************
(d2) tap_open((null)) -> 3
(d2) xs_daemon_open -> 4, 0x14a6c8
(d2) ******************* BLKFRONT for /local/domain/2/device/vbd/51712
**********
(d2)
(d2)
(d2) backend at /local/domain/0/backend/vbd/2/51712
(d2) 209715200 sectors of 512 bytes
(d2) **************************
(d2) blk_open(/local/domain/2/device/vbd/51712) -> 5
(d2) xs_watch(device-model/1/logdirty/cmd, logdirty)
(d2) xs_watch(device-model/1/command, dm-command)
(d2) xs_watch(/local/domain/1/cpu, vcpu-set)
(d2) xs_read(/local/domain/0/backend/pci/1/0/msitranslate): ENOENT
(d2) xs_read(/local/domain/0/backend/pci/1/0/power_mgmt): ENOENT
(d2) xs_watch(/local/domain/0/backend/console/1, be:0x139dbc:1:0x164e20)
(d2) xs_directory(/local/domain/0/backend/console/1): EACCES
(d2) xs_watch(/local/domain/0/backend/vkbd/1, be:0x136601:1:0x164dc0)
(d2) xs_directory(/local/domain/0/backend/vkbd/1): EACCES
(d2) xs_read(device-model/1/disable_pf): ENOENT
(d2) xs_watch(/local/domain/1/log-throttling,
/local/domain/1/log-throttling)
(d2) ******************* CONSFRONT for device/console/2 **********
(d2)
(d2)
(d2) backend at /local/domain/0/backend/console/2/2
(d2) **************************
(d2) fd(7) = open_savefile
Thanks,
Bruno
[-- Attachment #1.2: Type: text/html, Size: 91191 bytes --]
[-- Attachment #2: Type: text/plain, Size: 157 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Building PVH mini-os with libc support
2017-12-28 18:33 Building PVH mini-os with libc support Bruno Alvisio
@ 2017-12-28 19:18 ` Andrew Cooper
2017-12-28 23:49 ` Bruno Alvisio
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Cooper @ 2017-12-28 19:18 UTC (permalink / raw)
To: Bruno Alvisio, minios-devel, xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 1600 bytes --]
On 28/12/17 18:33, Bruno Alvisio wrote:
> (d360) Bootstrapping...
>
> (XEN) Dom360 callback via changed to Direct Vector 0x20
>
> (d360) Xen Minimal OS (hvm)!
>
> (XEN) d360v0 Triple fault - invoking HVM shutdown action 1
>
> (XEN) *** Dumping Dom360 vcpu#0 state: ***
>
> (XEN) ----[ Xen-4.10.0-rc x86_64 debug=y Not tainted ]----
>
> (XEN) CPU: 7
>
> (XEN) RIP: 0008:[<0000000000056fc8>]
>
> (XEN) RFLAGS: 0000000000010006 CONTEXT: hvm guest (d360v0)
>
> (XEN) rax: 00000000000bfe75 rbx: 00000000000bfe75 rcx:
> 0000000000000000
>
> (XEN) rdx: 0000000000000017 rsi: 00000000000bfe60 rdi:
> 0000000000000000
>
> (XEN) rbp: 00000000000bfec0 rsp: 00000000000bfe60 r8:
> 0000000000000000
>
> (XEN) r9: 0000000000089982 r10: 0000000000000016 r11:
> 0000000000000000
>
> (XEN) r12: 0000000000000017 r13: 0000000000000016 r14:
> 0000000000000000
>
> (XEN) r15: 0d8b4c1575ff8548 cr0: 0000000080000011 cr4:
> 0000000000000220
>
> (XEN) cr3: 0000000000099000 cr2: 0000000000000000
>
> (XEN) fsb: 0000000000000000 gsb: 0000000000000000 gss:
> 0000000000000000
>
> (XEN) ds: 0033 es: 0033 fs: 0033 gs: 0033 ss: 0000 cs: 0008
>
>
>
>
>
> Any help on this would be greatly appreciated.
>
You will need to disassemble your minios kernel and see which
instruction is at 0x56fc8. (Chances are, it will be `jmp %r15`).
The content of %r15 looks like x86 opcode, which is reminiscent of the
XTF relocatability bugs. Make doubly sure you are compiling with
-fno-pic and link with -no-pie.
~Andrew
[-- Attachment #1.2: Type: text/html, Size: 6847 bytes --]
[-- Attachment #2: Type: text/plain, Size: 157 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Building PVH mini-os with libc support
2017-12-28 19:18 ` Andrew Cooper
@ 2017-12-28 23:49 ` Bruno Alvisio
2017-12-29 0:25 ` Andrew Cooper
0 siblings, 1 reply; 4+ messages in thread
From: Bruno Alvisio @ 2017-12-28 23:49 UTC (permalink / raw)
To: Andrew Cooper; +Cc: minios-devel, xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 8030 bytes --]
Hello Andrew,
Thanks. Yup, you were right. I did an objdump of the kernel and found the
offending instruction 0x5cfcb to be callq *%r15 in the console_print
function (see below):
0000000000056ee9 <console_print>:
56ee9: 55 push %rbp
56eea: 48 89 e5 mov %rsp,%rbp
56eed: 41 57 push %r15
56eef: 41 56 push %r14
56ef1: 41 55 push %r13
56ef3: 41 54 push %r12
56ef5: 53 push %rbx
56ef6: 48 83 ec 18 sub $0x18,%rsp
56efa: 49 89 fe mov %rdi,%r14
56efd: 41 89 d4 mov %edx,%r12d
56f00: 48 89 65 c0 mov %rsp,-0x40(%rbp)
56f04: 8d 42 01 lea 0x1(%rdx),%eax
56f07: 48 98 cltq
56f09: 48 83 c0 0f add $0xf,%rax
56f0d: 48 83 e0 f0 and $0xfffffffffffffff0,%rax
56f11: 48 29 c4 sub %rax,%rsp
56f14: 48 89 e3 mov %rsp,%rbx
56f17: 83 3d 00 00 00 00 00 cmpl $0x0,0x0(%rip) # 56f1e
<console_print+0x35>
56f1e: 74 09 je 56f29 <console_print+0x40>
56f20: 4c 8b 3d 00 00 00 00 mov 0x0(%rip),%r15 # 56f27
<console_print+0x3e>
56f27: eb 07 jmp 56f30 <console_print+0x47>
56f29: 4c 8b 3d 00 00 00 00 mov 0x0(%rip),%r15 # 56f30
<console_print+0x47>
56f30: 4d 85 f6 test %r14,%r14
56f33: 74 19 je 56f4e <console_print+0x65>
56f35: 41 80 7e 30 00 cmpb $0x0,0x30(%r14)
56f3a: 74 12 je 56f4e <console_print+0x65>
56f3c: 44 89 e2 mov %r12d,%edx
56f3f: 4c 89 f7 mov %r14,%rdi
56f42: 41 ff d7 callq *%r15
56f45: 48 8b 65 c0 mov -0x40(%rbp),%rsp
56f49: e9 84 00 00 00 jmpq 56fd2 <console_print+0xe9>
56f4e: 4d 63 ec movslq %r12d,%r13
56f51: 4c 89 ea mov %r13,%rdx
56f54: 48 89 df mov %rbx,%rdi
56f57: e8 00 00 00 00 callq 56f5c <console_print+0x73>
56f5c: 4a 8d 44 2b ff lea -0x1(%rbx,%r13,1),%rax
56f61: 48 39 c3 cmp %rax,%rbx
56f64: 73 4b jae 56fb1 <console_print+0xc8>
56f66: 48 89 de mov %rbx,%rsi
56f69: 80 3b 0a cmpb $0xa,(%rbx)
56f6c: 75 30 jne 56f9e <console_print+0xb5>
56f6e: c6 03 0d movb $0xd,(%rbx)
56f71: 0f b6 43 01 movzbl 0x1(%rbx),%eax
56f75: 88 45 cf mov %al,-0x31(%rbp)
56f78: c6 43 01 0a movb $0xa,0x1(%rbx)
56f7c: 49 89 dd mov %rbx,%r13
56f7f: 49 29 f5 sub %rsi,%r13
56f82: 41 8d 55 02 lea 0x2(%r13),%edx
56f86: 4c 89 f7 mov %r14,%rdi
56f89: 41 ff d7 callq *%r15
56f8c: 0f b6 45 cf movzbl -0x31(%rbp),%eax
56f90: 88 43 01 mov %al,0x1(%rbx)
56f93: 48 8d 73 01 lea 0x1(%rbx),%rsi
56f97: 41 83 c5 01 add $0x1,%r13d
56f9b: 45 29 ec sub %r13d,%r12d
56f9e: 48 83 c3 01 add $0x1,%rbx
56fa2: 4d 63 ec movslq %r12d,%r13
56fa5: 4a 8d 44 2e ff lea -0x1(%rsi,%r13,1),%rax
56faa: 48 39 d8 cmp %rbx,%rax
56fad: 77 ba ja 56f69 <console_print+0x80>
56faf: eb 03 jmp 56fb4 <console_print+0xcb>
56fb1: 48 89 de mov %rbx,%rsi
56fb4: 80 38 0a cmpb $0xa,(%rax)
56fb7: 75 0c jne 56fc5 <console_print+0xdc>
56fb9: c6 00 0d movb $0xd,(%rax)
56fbc: 42 c6 04 2e 0a movb $0xa,(%rsi,%r13,1)
56fc1: 41 83 c4 01 add $0x1,%r12d
56fc5: 44 89 e2 mov %r12d,%edx
56fc8: 4c 89 f7 mov %r14,%rdi
*56fcb: 41 ff d7 callq *%r15*
56fce: 48 8b 65 c0 mov -0x40(%rbp),%rsp
56fd2: 48 8d 65 d8 lea -0x28(%rbp),%rsp
56fd6: 5b pop %rbx
56fd7: 41 5c pop %r12
56fd9: 41 5d pop %r13
56fdb: 41 5e pop %r14
56fdd: 41 5f pop %r15
56fdf: 5d pop %rbp
56fe0: c3 retq
I added the options –fno-pic to TARGET_CFLAGS and TARGET_CPPFLAGS and
–no-pie to TARGET_LDFLAGS and recompile the kernel. Now, the kernel carshed
at instruction 0x673bb in the run_idle_thread function:
00000000000673ac <run_idle_thread>:
673ac: 55 push %rbp
673ad: 48 89 e5 mov %rsp,%rbp
673b0: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 673b7
<run_idle_thread+0xb>
673b7: 48 8b 60 10 mov 0x10(%rax),%rsp
673bb: ff 70 18 pushq 0x18(%rax)
673be: c3 retq
673bf: 5d pop %rbp
673c0: c3 retq
Finally, just to try I commented out the run_idle_thread function and the
kernel crashed at the very beginning at 0x63. The kern dump in this case
points to the stack:
5e: e8 00 00 00 00 callq 63 <stack_start>
0000000000000063 <stack_start>:
...
6b: 90 nop
6c: 90 nop
6d: 90 nop
I am not familiar with the XTF relocalability code. Any pointer or
suggestion at this point would be again appreciated.
Thanks,
Bruno
On Thu, Dec 28, 2017 at 7:18 PM, Andrew Cooper <andrew.cooper3@citrix.com>
wrote:
> On 28/12/17 18:33, Bruno Alvisio wrote:
>
> (d360) Bootstrapping...
>
> (XEN) Dom360 callback via changed to Direct Vector 0x20
>
> (d360) Xen Minimal OS (hvm)!
>
> (XEN) d360v0 Triple fault - invoking HVM shutdown action 1
>
> (XEN) *** Dumping Dom360 vcpu#0 state: ***
>
> (XEN) ----[ Xen-4.10.0-rc x86_64 debug=y Not tainted ]----
>
> (XEN) CPU: 7
>
> (XEN) RIP: 0008:[<0000000000056fc8>]
>
> (XEN) RFLAGS: 0000000000010006 CONTEXT: hvm guest (d360v0)
>
> (XEN) rax: 00000000000bfe75 rbx: 00000000000bfe75 rcx:
> 0000000000000000
>
> (XEN) rdx: 0000000000000017 rsi: 00000000000bfe60 rdi:
> 0000000000000000
>
> (XEN) rbp: 00000000000bfec0 rsp: 00000000000bfe60 r8:
> 0000000000000000
>
> (XEN) r9: 0000000000089982 r10: 0000000000000016 r11:
> 0000000000000000
>
> (XEN) r12: 0000000000000017 r13: 0000000000000016 r14:
> 0000000000000000
>
> (XEN) r15: 0d8b4c1575ff8548 cr0: 0000000080000011 cr4:
> 0000000000000220
>
> (XEN) cr3: 0000000000099000 cr2: 0000000000000000
>
> (XEN) fsb: 0000000000000000 gsb: 0000000000000000 gss:
> 0000000000000000
>
> (XEN) ds: 0033 es: 0033 fs: 0033 gs: 0033 ss: 0000 cs: 0008
>
>
>
>
>
> Any help on this would be greatly appreciated.
>
>
> You will need to disassemble your minios kernel and see which instruction
> is at 0x56fc8. (Chances are, it will be `jmp %r15`).
>
> The content of %r15 looks like x86 opcode, which is reminiscent of the XTF
> relocatability bugs. Make doubly sure you are compiling with -fno-pic and
> link with -no-pie.
>
> ~Andrew
>
[-- Attachment #1.2: Type: text/html, Size: 31488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 157 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Building PVH mini-os with libc support
2017-12-28 23:49 ` Bruno Alvisio
@ 2017-12-29 0:25 ` Andrew Cooper
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Cooper @ 2017-12-29 0:25 UTC (permalink / raw)
To: Bruno Alvisio; +Cc: minios-devel, xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 10433 bytes --]
On 28/12/2017 23:49, Bruno Alvisio wrote:
>
> Hello Andrew,
>
>
>
> Thanks. Yup, you were right. I did an objdump of the kernel and found
> the offending instruction 0x5cfcb to be callq *%r15 in the
> console_print function (see below):
>
Answering out of order...
> I am not familiar with the XTF relocalability code. Any pointer or
> suggestion at this point would be again appreciated.
>
XTF is the Xen Test Framework, a microkernel project for testing purposes.
http://xenbits.xen.org/gitweb/?p=xtf.git;a=summary
http://xenbits.xen.org/docs/xtf/
Amongst other things, it runs as a set of regression tests for all new
code introduced into upstream Xen.
All I meant by that statement was "I recall bugs like this", which is
why I made the blind guess at your offending opcode being `jmp *%r15`.
>
>
> 0000000000056ee9 <console_print>:
>
> 56ee9: 55 push %rbp
>
> 56eea: 48 89 e5 mov %rsp,%rbp
>
> 56eed: 41 57 push %r15
>
> 56eef: 41 56 push %r14
>
> 56ef1: 41 55 push %r13
>
> 56ef3: 41 54 push %r12
>
> 56ef5: 53 push %rbx
>
> 56ef6: 48 83 ec 18 sub $0x18,%rsp
>
> 56efa: 49 89 fe mov %rdi,%r14
>
> 56efd: 41 89 d4 mov %edx,%r12d
>
> 56f00: 48 89 65 c0 mov %rsp,-0x40(%rbp)
>
> 56f04: 8d 42 01 lea 0x1(%rdx),%eax
>
> 56f07: 48 98 cltq
>
> 56f09: 48 83 c0 0f add $0xf,%rax
>
> 56f0d: 48 83 e0 f0 and $0xfffffffffffffff0,%rax
>
> 56f11: 48 29 c4 sub %rax,%rsp
>
> 56f14: 48 89 e3 mov %rsp,%rbx
>
> 56f17: 83 3d 00 00 00 00 00 cmpl $0x0,0x0(%rip) #
> 56f1e <console_print+0x35>
>
> 56f1e: 74 09 je 56f29 <console_print+0x40>
>
> 56f20: 4c 8b 3d 00 00 00 00 mov 0x0(%rip),%r15 #
> 56f27 <console_print+0x3e>
>
> 56f27: eb 07 jmp 56f30 <console_print+0x47>
>
> 56f29: 4c 8b 3d 00 00 00 00 mov 0x0(%rip),%r15 #
> 56f30 <console_print+0x47>
>
> 56f30: 4d 85 f6 test %r14,%r14
>
> 56f33: 74 19 je 56f4e <console_print+0x65>
>
> 56f35: 41 80 7e 30 00 cmpb $0x0,0x30(%r14)
>
> 56f3a: 74 12 je 56f4e <console_print+0x65>
>
> 56f3c: 44 89 e2 mov %r12d,%edx
>
> 56f3f: 4c 89 f7 mov %r14,%rdi
>
> 56f42: 41 ff d7 callq *%r15
>
> 56f45: 48 8b 65 c0 mov -0x40(%rbp),%rsp
>
> 56f49: e9 84 00 00 00 jmpq 56fd2 <console_print+0xe9>
>
> 56f4e: 4d 63 ec movslq %r12d,%r13
>
> 56f51: 4c 89 ea mov %r13,%rdx
>
> 56f54: 48 89 df mov %rbx,%rdi
>
> 56f57: e8 00 00 00 00 callq 56f5c <console_print+0x73>
>
> 56f5c: 4a 8d 44 2b ff lea -0x1(%rbx,%r13,1),%rax
>
> 56f61: 48 39 c3 cmp %rax,%rbx
>
> 56f64: 73 4b jae 56fb1 <console_print+0xc8>
>
> 56f66: 48 89 de mov %rbx,%rsi
>
> 56f69: 80 3b 0a cmpb $0xa,(%rbx)
>
> 56f6c: 75 30 jne 56f9e <console_print+0xb5>
>
> 56f6e: c6 03 0d movb $0xd,(%rbx)
>
> 56f71: 0f b6 43 01 movzbl 0x1(%rbx),%eax
>
> 56f75: 88 45 cf mov %al,-0x31(%rbp)
>
> 56f78: c6 43 01 0a movb $0xa,0x1(%rbx)
>
> 56f7c: 49 89 dd mov %rbx,%r13
>
> 56f7f: 49 29 f5 sub %rsi,%r13
>
> 56f82: 41 8d 55 02 lea 0x2(%r13),%edx
>
> 56f86: 4c 89 f7 mov %r14,%rdi
>
> 56f89: 41 ff d7 callq *%r15
>
> 56f8c: 0f b6 45 cf movzbl -0x31(%rbp),%eax
>
> 56f90: 88 43 01 mov %al,0x1(%rbx)
>
> 56f93: 48 8d 73 01 lea 0x1(%rbx),%rsi
>
> 56f97: 41 83 c5 01 add $0x1,%r13d
>
> 56f9b: 45 29 ec sub %r13d,%r12d
>
> 56f9e: 48 83 c3 01 add $0x1,%rbx
>
> 56fa2: 4d 63 ec movslq %r12d,%r13
>
> 56fa5: 4a 8d 44 2e ff lea -0x1(%rsi,%r13,1),%rax
>
> 56faa: 48 39 d8 cmp %rbx,%rax
>
> 56fad: 77 ba ja 56f69 <console_print+0x80>
>
> 56faf: eb 03 jmp 56fb4 <console_print+0xcb>
>
> 56fb1: 48 89 de mov %rbx,%rsi
>
> 56fb4: 80 38 0a cmpb $0xa,(%rax)
>
> 56fb7: 75 0c jne 56fc5 <console_print+0xdc>
>
> 56fb9: c6 00 0d movb $0xd,(%rax)
>
> 56fbc: 42 c6 04 2e 0a movb $0xa,(%rsi,%r13,1)
>
> 56fc1: 41 83 c4 01 add $0x1,%r12d
>
> 56fc5: 44 89 e2 mov %r12d,%edx
>
> 56fc8: 4c 89 f7 mov %r14,%rdi
>
> *56fcb: 41 ff d7 callq *%r15*
>
> 56fce: 48 8b 65 c0 mov -0x40(%rbp),%rsp
>
> 56fd2: 48 8d 65 d8 lea -0x28(%rbp),%rsp
>
> 56fd6: 5b pop %rbx
>
> 56fd7: 41 5c pop %r12
>
> 56fd9: 41 5d pop %r13
>
> 56fdb: 41 5e pop %r14
>
> 56fdd: 41 5f pop %r15
>
> 56fdf: 5d pop %rbp
>
> 56fe0: c3 retq
>
>
>
>
>
> I added the options –fno-pic to TARGET_CFLAGS and TARGET_CPPFLAGS and
> –no-pie to TARGET_LDFLAGS and recompile the kernel. Now, the kernel
> carshed at instruction 0x673bb in the run_idle_thread function:
>
>
>
> 00000000000673ac <run_idle_thread>:
>
> 673ac: 55 push %rbp
>
> 673ad: 48 89 e5 mov %rsp,%rbp
>
> 673b0: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax #
> 673b7 <run_idle_thread+0xb>
>
> 673b7: 48 8b 60 10 mov 0x10(%rax),%rsp
>
> 673bb: ff 70 18 pushq 0x18(%rax)
>
> 673be: c3 retq
>
> 673bf: 5d pop %rbp
>
> 673c0: c3 retq
>
>
>
>
>
> Finally, just to try I commented out the run_idle_thread function and
> the kernel crashed at the very beginning at 0x63. The kern dump in
> this case points to the stack:
>
>
>
> 5e: e8 00 00 00 00 callq 63 <stack_start>
>
Both the above mov instruction at 0x673b0 and this call instruction with
a 4-byte displacement of 0 look suspiciously like they are waiting for
relocation, as displacements of 0 are exceedingly rare (there are more
efficient ways to encode such operands).
Therefore, I don't think you've succeeded in preventing your binary from
being relocatable.
~Andrew
>
>
> 0000000000000063 <stack_start>:
>
> ...
>
> 6b: 90 nop
>
> 6c: 90 nop
>
> 6d: 90 nop
>
>
>
>
>
> Thanks,
>
> Bruno
>
>
> On Thu, Dec 28, 2017 at 7:18 PM, Andrew Cooper
> <andrew.cooper3@citrix.com <mailto:andrew.cooper3@citrix.com>> wrote:
>
> On 28/12/17 18:33, Bruno Alvisio wrote:
>> (d360) Bootstrapping...
>>
>> (XEN) Dom360 callback via changed to Direct Vector 0x20
>>
>> (d360) Xen Minimal OS (hvm)!
>>
>> (XEN) d360v0 Triple fault - invoking HVM shutdown action 1
>>
>> (XEN) *** Dumping Dom360 vcpu#0 state: ***
>>
>> (XEN) ----[ Xen-4.10.0-rc x86_64 debug=y Not tainted ]----
>>
>> (XEN) CPU: 7
>>
>> (XEN) RIP: 0008:[<0000000000056fc8>]
>>
>> (XEN) RFLAGS: 0000000000010006 CONTEXT: hvm guest (d360v0)
>>
>> (XEN) rax: 00000000000bfe75 rbx: 00000000000bfe75 rcx:
>> 0000000000000000
>>
>> (XEN) rdx: 0000000000000017 rsi: 00000000000bfe60 rdi:
>> 0000000000000000
>>
>> (XEN) rbp: 00000000000bfec0 rsp: 00000000000bfe60 r8:
>> 0000000000000000
>>
>> (XEN) r9: 0000000000089982 r10: 0000000000000016 r11:
>> 0000000000000000
>>
>> (XEN) r12: 0000000000000017 r13: 0000000000000016 r14:
>> 0000000000000000
>>
>> (XEN) r15: 0d8b4c1575ff8548 cr0: 0000000080000011 cr4:
>> 0000000000000220
>>
>> (XEN) cr3: 0000000000099000 cr2: 0000000000000000
>>
>> (XEN) fsb: 0000000000000000 gsb: 0000000000000000 gss:
>> 0000000000000000
>>
>> (XEN) ds: 0033 es: 0033 fs: 0033 gs: 0033 ss: 0000 cs: 0008
>>
>>
>>
>>
>>
>> Any help on this would be greatly appreciated.
>>
>
> You will need to disassemble your minios kernel and see which
> instruction is at 0x56fc8. (Chances are, it will be `jmp %r15`).
>
> The content of %r15 looks like x86 opcode, which is reminiscent of
> the XTF relocatability bugs. Make doubly sure you are compiling
> with -fno-pic and link with -no-pie.
>
> ~Andrew
>
>
[-- Attachment #1.2: Type: text/html, Size: 41007 bytes --]
[-- Attachment #2: Type: text/plain, Size: 157 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-12-29 0:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-28 18:33 Building PVH mini-os with libc support Bruno Alvisio
2017-12-28 19:18 ` Andrew Cooper
2017-12-28 23:49 ` Bruno Alvisio
2017-12-29 0:25 ` Andrew Cooper
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.