xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 01/12] PVHv2 Dom0
@ 2016-07-29 16:28 Roger Pau Monne
  2016-07-29 16:28 ` [PATCH RFC 01/12] x86/paging: introduce paging_set_allocation Roger Pau Monne
                   ` (13 more replies)
  0 siblings, 14 replies; 49+ messages in thread
From: Roger Pau Monne @ 2016-07-29 16:28 UTC (permalink / raw)
  To: xen-devel

Hello,

This is a very rough implementation of a PVHv2 Dom0. There are still a bunch 
of things that will not work properly (like SR-IOV, MSI, MSI-X...), but it 
*should* be able to boot a Dom0 kernel and it doesn't require using PIRQs.

There are some changes compared to a traditional PV or PVH Dom0:

 - An emulated local APIC (for each vCPU) and IO APIC is provided to Dom0.
 - At the start of day only the low 1MB and the ACPI e820 regions are mapped 
   into the guest using 1:1 mappings (for UEFI systems mapping the low 1MB 
   probably doesn't make any sense, but alas).
 - The MADT has been replaced in order to reflect the real topology seen by 
   Dom0.
 - In order to have the BARs of PCI devices mapped Dom0 must call 
   PHYSDEVOP_pci_device_add. See the notes on patch 11 for more information 
   (and what's missing).
 - ATM only legacy PCI interrupts are supported. This is implemented by 
   looking at the writes Dom0 makes to the emulated IO APIC and translating 
   them into the real hardware. Note that MSI or MSI-X capabilities are 
   _not_ masked from the PCI capabilities list, so the user must avoid using
   them.
 - PCIe Enhanced Configuration Mechanism regions are not yet mapped into 
   Dom0 physmap.
 - Some ACPI tables are zapped (it's signature is inverted) to prevent Dom0 
   from poking at them, those are: HPET, SLIT, SRAT, MPST and PMTT.

This is still very experimental, I've been able to boot a FreeBSD Dom0 using 
2GB and 4GB of memory assigned to it, but if I try to use 6GB Xen gets a NMI 
(I've got no idea why yet). I don't think it's worth delaying this more, 
because it's going to take me some time to finish all this work (MSI, 
MSI-X, bug hunting...), and in the meantime people can already take a look 
at what's done (or half-done).

I've pushed the whole series to my git repository:

git://xenbits.xen.org/people/royger/xen.git pvhv2_dom0_rfc

It contains two patches from Boris and Anthony, that are a pre-requisite to 
this series.

As usual, thanks for taking the time to look into it, hope it doesn't make 
your eyes bleed much (slight bleeding is expected).

Roger.

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

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

end of thread, other threads:[~2016-09-27  8:11 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-29 16:28 [PATCH RFC 01/12] PVHv2 Dom0 Roger Pau Monne
2016-07-29 16:28 ` [PATCH RFC 01/12] x86/paging: introduce paging_set_allocation Roger Pau Monne
2016-07-29 16:47   ` Andrew Cooper
2016-08-02  9:47     ` Roger Pau Monne
2016-08-02 15:49       ` Roger Pau Monne
2016-08-02 16:12         ` Jan Beulich
2016-08-03 15:11           ` George Dunlap
2016-08-03 15:25             ` Jan Beulich
2016-08-03 15:28               ` George Dunlap
2016-08-03 15:37                 ` Jan Beulich
2016-08-03 15:59                   ` George Dunlap
2016-08-03 16:00                   ` Roger Pau Monne
2016-08-03 16:15                     ` Jan Beulich
2016-08-03 16:24                       ` Roger Pau Monne
2016-08-04  6:19                         ` Jan Beulich
2016-08-01  8:57   ` Tim Deegan
2016-07-29 16:28 ` [PATCH RFC 02/12] xen/x86: split the setup of Dom0 permissions to a function Roger Pau Monne
2016-07-29 16:28 ` [PATCH RFC 03/12] xen/x86: allow the emulated APICs to be enbled for the hardware domain Roger Pau Monne
2016-07-29 17:50   ` Andrew Cooper
2016-08-01 11:23     ` Roger Pau Monne
2016-07-29 16:28 ` [PATCH RFC 04/12] xen/x86: split Dom0 build into PV and PVHv2 Roger Pau Monne
2016-07-29 17:57   ` Andrew Cooper
2016-08-01 11:36     ` Roger Pau Monne
2016-08-04 18:28       ` Andrew Cooper
2016-07-29 16:29 ` [PATCH RFC 05/12] xen/x86: make print_e820_memory_map global Roger Pau Monne
2016-07-29 17:57   ` Andrew Cooper
2016-07-29 16:29 ` [PATCH RFC 06/12] xen/x86: populate PVHv2 Dom0 physical memory map Roger Pau Monne
2016-07-29 19:04   ` Andrew Cooper
2016-08-02  9:19     ` Roger Pau Monne
2016-08-04 18:43       ` Andrew Cooper
2016-08-05  9:40         ` Roger Pau Monne
2016-08-11 18:28           ` Andrew Cooper
2016-07-29 16:29 ` [PATCH RFC 07/12] xen/x86: parse Dom0 kernel for PVHv2 Roger Pau Monne
2016-09-26 16:16   ` Jan Beulich
2016-09-26 17:11     ` Roger Pau Monne
2016-07-29 16:29 ` [PATCH RFC 08/12] xen/x86: setup PVHv2 Dom0 CPUs Roger Pau Monne
2016-09-26 16:19   ` Jan Beulich
2016-09-26 17:05     ` Roger Pau Monne
2016-09-27  8:10       ` Jan Beulich
2016-07-29 16:29 ` [PATCH RFC 09/12] xen/x86: setup PVHv2 Dom0 ACPI tables Roger Pau Monne
2016-09-26 16:21   ` Jan Beulich
2016-07-29 16:29 ` [PATCH RFC 10/12] xen/dcpi: add a dpci passthrough handler for hardware domain Roger Pau Monne
2016-07-29 16:29 ` [PATCH RFC 11/12] xen/x86: allow a PVHv2 Dom0 to register PCI devices with Xen Roger Pau Monne
2016-07-29 16:29 ` [PATCH RFC 12/12] xen/x86: route legacy PCI interrupts to Dom0 Roger Pau Monne
2016-07-29 16:38 ` [PATCH RFC 01/12] PVHv2 Dom0 Roger Pau Monne
2016-09-26 16:25 ` Jan Beulich
2016-09-26 17:12   ` Roger Pau Monne
2016-09-26 17:55     ` Konrad Rzeszutek Wilk
2016-09-27  8:11     ` Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).