All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/16] Make CONFIG_HVM work
@ 2018-09-04 16:15 Wei Liu
  2018-09-04 16:15 ` [PATCH v3 01/16] x86: change name of parameter for various invlpg functions Wei Liu
                   ` (15 more replies)
  0 siblings, 16 replies; 57+ messages in thread
From: Wei Liu @ 2018-09-04 16:15 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu

This series goes through x86 code to make CONFIG_HVM work.

With this series, it is possible to build Xen with PV support only.

Running `xl info` on a host with PV only Xen:

root@lcy2-dt108:~# xl info
host                   : lcy2-dt108
release                : 4.17.0-0.bpo.1-amd64
version                : #1 SMP Debian 4.17.8-1~bpo9+1 (2018-07-23)
machine                : x86_64
nr_cpus                : 8
max_cpu_id             : 7
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 2
cpu_mhz                : 3504.241
hw_caps                : bfebfbff:77faf3ff:2c100800:00000121:0000000f:009c6fbf:00000000:00000100
virt_caps              : directio
total_memory           : 32589
free_memory            : 1033
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 12
xen_extra              : -unstable
xen_version            : 4.12-unstable
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : Fri Aug 24 21:01:40 2018 +0100 git:5036cad847
xen_commandline        : placeholder loglvl=all guest_loglvl=all com2=115200,8n1 ucode=scan console=com2,vga console_to_ring sync_console hvm_fep
cc_compiler            : gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
cc_compile_by          : wei
cc_compile_domain      : uk.xensource.com
cc_compile_date        : Tue Sep  4 16:51:04 BST 2018
build_id               : a3ba77ce4d5117ef0176df6c0e336bacf6c39437

The major goal at the moment is to get something that works first,
then refine code structure later.  Currently CONFIG_HVM is littered in
individual files. In the future some of the code could / should be
moved to files under hvm/ for cleaner split.

I ran some basic PV / PVSHIM VM life cycle tests and XTF PV tests, all
worked.

Baseline:
$ ls -l xen # default build, non-debug
-rwxrwxr-x 1 wei wei 2379388 Aug 17 15:39 xen

$ ls -l xen # PV only, non-debug
-rwxrwxr-x 1 wei wei 1912380 Sep  4 17:00 xen

The PV only Xen is ~19.6% smaller in size.

Wei.

Wei Liu (16):
  x86: change name of parameter for various invlpg functions
  x86: introduce and use a set of internal emulation flags
  x86: XENMEM_resource_ioreq_server is HVM only
  x86: monitor.o is currently HVM only
  x86: PIT emulation is common to both PV and HVM
  libxl: don't set PoD target for PV guests
  x86/p2m/pod: make it build with !CONFIG_HVM
  x86/hvm: rearrange content of hvm.h
  x86: provide stubs, declarations and macros in hvm.h
  x86/mm: put nested p2m code under CONFIG_HVM
  x86/mm: put HVM only code under CONFIG_HVM
  x86/mm: put paging_update_nestedmode under CONFIG_HVM
  xen: connect guest creation with CONFIG_{HVM,PV}
  x86: expose CONFIG_HVM
  x86/pvshim: disable HVM for PV shim
  xen: decouple HVM and IOMMU capabilities

 tools/firmware/xen-dir/shim.config         |   2 +-
 tools/libxl/libxl.c                        |   5 +-
 tools/libxl/libxl.h                        |   6 +
 tools/libxl/libxl_mem.c                    |  22 +--
 tools/libxl/libxl_types.idl                |   1 +
 tools/xl/xl_info.c                         |   5 +-
 xen/arch/x86/Kconfig                       |  11 ++
 xen/arch/x86/Makefile                      |   3 +-
 xen/arch/x86/domain.c                      |  19 ++-
 xen/arch/x86/{hvm/i8254.c => emul-i8254.c} |  18 +-
 xen/arch/x86/hvm/Makefile                  |   1 -
 xen/arch/x86/hvm/ioreq.c                   |   5 +-
 xen/arch/x86/hvm/svm/svm.c                 |  14 +-
 xen/arch/x86/hvm/vmx/vmx.c                 |  12 +-
 xen/arch/x86/mm.c                          |  17 +-
 xen/arch/x86/mm/Makefile                   |  11 +-
 xen/arch/x86/mm/hap/hap.c                  |   2 +-
 xen/arch/x86/mm/mem_access.c               |  18 +-
 xen/arch/x86/mm/mem_sharing.c              |   2 +
 xen/arch/x86/mm/p2m-pt.c                   |   4 +
 xen/arch/x86/mm/p2m.c                      |  53 ++++--
 xen/arch/x86/mm/paging.c                   |   2 +
 xen/arch/x86/mm/shadow/multi.c             |  14 +-
 xen/arch/x86/mm/shadow/none.c              |   2 +-
 xen/arch/x86/sysctl.c                      |   2 +-
 xen/common/domain.c                        |  15 ++
 xen/common/memory.c                        |   3 +-
 xen/common/vm_event.c                      |   6 +
 xen/include/asm-x86/altp2m.h               |  13 +-
 xen/include/asm-x86/domain.h               |  59 +++++--
 xen/include/asm-x86/hvm/domain.h           |   4 +
 xen/include/asm-x86/hvm/hvm.h              | 262 ++++++++++++++++++++---------
 xen/include/asm-x86/hvm/svm/asid.h         |   4 +-
 xen/include/asm-x86/hvm/svm/svm.h          |   4 +-
 xen/include/asm-x86/monitor.h              |  13 ++
 xen/include/asm-x86/p2m.h                  |  47 +++++-
 xen/include/asm-x86/paging.h               |   3 +-
 xen/include/public/sysctl.h                |   8 +-
 38 files changed, 504 insertions(+), 188 deletions(-)
 rename xen/arch/x86/{hvm/i8254.c => emul-i8254.c} (97%)

-- 
2.11.0


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

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

end of thread, other threads:[~2018-09-14 10:36 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-04 16:15 [PATCH v3 00/16] Make CONFIG_HVM work Wei Liu
2018-09-04 16:15 ` [PATCH v3 01/16] x86: change name of parameter for various invlpg functions Wei Liu
2018-09-06 11:12   ` George Dunlap
2018-09-13 16:11   ` George Dunlap
2018-09-04 16:15 ` [PATCH v3 02/16] x86: introduce and use a set of internal emulation flags Wei Liu
2018-09-06 13:27   ` Jan Beulich
2018-09-06 13:47     ` Wei Liu
2018-09-04 16:15 ` [PATCH v3 03/16] x86: XENMEM_resource_ioreq_server is HVM only Wei Liu
2018-09-04 16:24   ` Paul Durrant
2018-09-04 16:42   ` Wei Liu
2018-09-06 13:29     ` Jan Beulich
2018-09-04 16:15 ` [PATCH v3 04/16] x86: monitor.o is currently " Wei Liu
2018-09-04 16:35   ` Razvan Cojocaru
2018-09-04 16:15 ` [PATCH v3 05/16] x86: PIT emulation is common to both PV and HVM Wei Liu
2018-09-06 14:26   ` Jan Beulich
2018-09-04 16:15 ` [PATCH v3 06/16] libxl: don't set PoD target for PV guests Wei Liu
2018-09-07 13:44   ` Ian Jackson
2018-09-04 16:15 ` [PATCH v3 07/16] x86/p2m/pod: make it build with !CONFIG_HVM Wei Liu
2018-09-04 17:08   ` Razvan Cojocaru
2018-09-04 17:10     ` Razvan Cojocaru
2018-09-04 17:24   ` Julien Grall
2018-09-06 10:57     ` Wei Liu
2018-09-06 15:30       ` George Dunlap
2018-09-06 15:05   ` Jan Beulich
2018-09-06 16:06     ` George Dunlap
2018-09-04 16:15 ` [PATCH v3 08/16] x86/hvm: rearrange content of hvm.h Wei Liu
2018-09-07  6:52   ` Jan Beulich
2018-09-04 16:15 ` [PATCH v3 09/16] x86: provide stubs, declarations and macros in hvm.h Wei Liu
2018-09-07  7:02   ` Jan Beulich
2018-09-13 15:31     ` Wei Liu
2018-09-04 16:15 ` [PATCH v3 10/16] x86/mm: put nested p2m code under CONFIG_HVM Wei Liu
2018-09-06 16:20   ` George Dunlap
2018-09-13 15:46     ` Wei Liu
2018-09-13 16:01       ` George Dunlap
2018-09-07  7:06   ` Jan Beulich
2018-09-13 15:07     ` Wei Liu
2018-09-14  8:01       ` Jan Beulich
2018-09-04 16:15 ` [PATCH v3 11/16] x86/mm: put HVM only " Wei Liu
2018-09-04 17:10   ` Razvan Cojocaru
2018-09-07  7:12   ` Jan Beulich
2018-09-07 21:27   ` Tamas K Lengyel
2018-09-13 15:43     ` Wei Liu
2018-09-13 16:31       ` Tamas K Lengyel
2018-09-04 16:15 ` [PATCH v3 12/16] x86/mm: put paging_update_nestedmode " Wei Liu
2018-09-13 16:39   ` George Dunlap
2018-09-04 16:15 ` [PATCH v3 13/16] xen: connect guest creation with CONFIG_{HVM, PV} Wei Liu
2018-09-04 16:15 ` [PATCH v3 14/16] x86: expose CONFIG_HVM Wei Liu
2018-09-07  7:15   ` Jan Beulich
2018-09-13 16:01     ` Wei Liu
2018-09-14  8:07       ` Jan Beulich
2018-09-14 10:36         ` Wei Liu
2018-09-04 16:15 ` [PATCH v3 15/16] x86/pvshim: disable HVM for PV shim Wei Liu
2018-09-07  7:18   ` Jan Beulich
2018-09-07  7:46     ` Wei Liu
2018-09-07  7:48       ` Wei Liu
2018-09-04 16:15 ` [PATCH v3 16/16] xen: decouple HVM and IOMMU capabilities Wei Liu
2018-09-13 15:52   ` Ian Jackson

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.