All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC XEN PATCH v4 00/41] Add vNVDIMM support to HVM domains
@ 2017-12-07 10:09 Haozhong Zhang
  2017-12-07 10:09 ` [RFC XEN PATCH v4 01/41] x86_64/mm: fix the PDX group check in mem_hotadd_check() Haozhong Zhang
                   ` (42 more replies)
  0 siblings, 43 replies; 113+ messages in thread
From: Haozhong Zhang @ 2017-12-07 10:09 UTC (permalink / raw)
  To: xen-devel
  Cc: Haozhong Zhang, Stefano Stabellini, Wei Liu, George Dunlap,
	Andrew Cooper, Ian Jackson, Tim Deegan, Gang Wei, Jan Beulich,
	Shane Wang, Chao Peng, Dan Williams, Daniel De Graaf

All patches can also be found at
  Xen:  https://github.com/hzzhan9/xen.git nvdimm-rfc-v4
  QEMU: https://github.com/hzzhan9/qemu.git xen-nvdimm-rfc-v4

RFC v3 can be found at
  https://lists.xen.org/archives/html/xen-devel/2017-09/msg00964.html

Changes in v4:
  * Move the functionality of management util 'xen-ndctl' to Xne
    management tool 'xl'.
  * Load QEMU ACPI via QEMU fw_cfg and BIOSLinkerLoader interface.
  * Other changes are documented in patches separately.


- Part 0. Bug fix and code cleanup
  [01/41] x86_64/mm: fix the PDX group check in mem_hotadd_check()
  [02/41] x86_64/mm: avoid cleaning the unmapped frame table
  [03/41] hvmloader/util: do not compare characters after '\0' in strncmp

- Part 1. Detect host PMEM
  Detect host PMEM via NFIT. No frametable and M2P table for them are
  created in this part.

  [04/41] xen/common: add Kconfig item for pmem support
  [05/41] x86/mm: exclude PMEM regions from initial frametable
  [06/41] acpi: probe valid PMEM regions via NFIT
  [07/41] xen/pmem: register valid PMEM regions to Xen hypervisor
  [08/41] xen/pmem: hide NFIT and deny access to PMEM from Dom0
  [09/41] xen/pmem: add framework for hypercall XEN_SYSCTL_nvdimm_op
  [10/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_get_rgions_nr
  [11/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_get_regions
  [12/41] tools/xl: add xl command 'pmem-list'

- Part 2. Setup host PMEM for management and guest data usage
  Allow users or admins in Dom0 to setup host PMEM pages for
  management and guest data usages.
   * Management PMEM pages are used to store the frametable and M2P of
     PMEM pages (including themselves), and never mapped to guest.
   * Guest data PMEM pages can be mapped to guest and used as the
     backend storage of virtual NVDIMM devices.

  [13/41] x86_64/mm: refactor memory_add()
  [14/41] x86_64/mm: allow customized location of extended frametable and M2P table
  [15/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_setup to setup management PMEM region
  [16/41] tools/xl: accept all bases in parse_ulong()
  [17/41] tools/xl: expose parse_ulong()
  [18/41] tools/xl: add xl command 'pmem-setup'
  [19/41] xen/pmem: support PMEM_REGION_TYPE_MGMT for XEN_SYSCTL_nvdimm_pmem_get_regions_nr
  [20/41] xen/pmem: support PMEM_REGION_TYPE_MGMT for XEN_SYSCTL_nvdimm_pmem_get_regions
  [21/41] tools/xl: add option '--mgmt | -m' to xl command pmem-list
  [22/41] xen/pmem: support setup PMEM region for guest data usage
  [23/41] tools/xl: add option '--data | -d' to xl command pmem-setup
  [24/41] xen/pmem: support PMEM_REGION_TYPE_DATA for XEN_SYSCTL_nvdimm_pmem_get_regions_nr
  [25/41] xen/pmem: support PMEM_REGION_TYPE_DATA for XEN_SYSCTL_nvdimm_pmem_get_regions
  [26/41] tools/xl: add option '--data | -d' to xl command pmem-list

- Part 3. Hypervisor support to map host PMEM pages to HVM domain
  [27/41] xen/pmem: add function to map PMEM pages to HVM domain
  [28/41] xen/pmem: release PMEM pages on HVM domain destruction
  [29/41] xen: add hypercall XENMEM_populate_pmem_map

- Part 4. Load QEMU ACPI
  Guest NFIT and NVDIMM namespace devices are built by QEMU. This part
  loads QEMU ACPI via QEMU fw_cfg and BIOSLinkerLoader interface. A
  simple blacklist mechanism is added to reject DM ACPI tables that
  may conflict with those built by Xen itself.

  [30/41] tools: reserve extra guest memory for ACPI from device model
  [31/41] tools/libacpi: add callback to translate GPA to GVA
  [32/41] tools/libacpi: build a DM ACPI signature blacklist
  [33/41] tools/libacpi, hvmloader: detect QEMU fw_cfg interface
  [34/41] tools/libacpi: probe QEMU ACPI ROMs via fw_cfg interface
  [35/41] tools/libacpi: add a QEMU BIOSLinkLoader executor
  [36/41] tools/libacpi: add function to get the data of QEMU RSDP
  [37/41] tools/libacpi: load QEMU ACPI

- Part 5. Remaining tool stack changes
  Add xl domain configuration and generate new QEMU options for vNVDIMM.

  [38/41] tools/xl: add xl domain configuration for virtual NVDIMM devices
  [39/41] tools/libxl: allow aborting domain creation on fatal QMP init errors
  [40/41] tools/libxl: initiate PMEM mapping via QMP callback
  [41/41] tools/libxl: build qemu options from xl vNVDIMM configs


 docs/man/xl.cfg.pod.5.in            |  40 ++
 tools/firmware/hvmloader/Makefile   |   4 +-
 tools/firmware/hvmloader/util.c     |  16 +
 tools/firmware/hvmloader/util.h     |  14 +
 tools/flask/policy/modules/dom0.te  |   2 +-
 tools/flask/policy/modules/xen.if   |   3 +-
 tools/libacpi/acpi2_0.h             |   1 +
 tools/libacpi/build.c               | 176 ++++++++-
 tools/libacpi/libacpi.h             |  10 +
 tools/libacpi/qemu.h                |  56 +++
 tools/libacpi/qemu_fw_cfg.c         |  99 +++++
 tools/libacpi/qemu_loader.c         | 392 +++++++++++++++++++
 tools/libacpi/qemu_stub.c           |  64 +++
 tools/libxc/include/xenctrl.h       |  88 +++++
 tools/libxc/xc_domain.c             |  15 +
 tools/libxc/xc_misc.c               | 154 ++++++++
 tools/libxl/Makefile                |   5 +-
 tools/libxl/libxl.h                 |  55 +++
 tools/libxl/libxl_create.c          |   4 +-
 tools/libxl/libxl_dm.c              |  81 +++-
 tools/libxl/libxl_internal.h        |   6 +
 tools/libxl/libxl_nvdimm.c          | 227 +++++++++++
 tools/libxl/libxl_qmp.c             | 138 ++++++-
 tools/libxl/libxl_types.idl         |  49 +++
 tools/libxl/libxl_x86.c             |   7 +-
 tools/libxl/libxl_x86_acpi.c        |  10 +
 tools/xl/Makefile                   |   2 +-
 tools/xl/xl.h                       |   2 +
 tools/xl/xl_cmdtable.c              |  19 +
 tools/xl/xl_nvdimm.c                | 205 ++++++++++
 tools/xl/xl_parse.c                 | 130 +++++-
 tools/xl/xl_parse.h                 |   1 +
 tools/xl/xl_vmcontrol.c             |  15 +-
 xen/arch/x86/acpi/boot.c            |   4 +
 xen/arch/x86/acpi/power.c           |   7 +
 xen/arch/x86/dom0_build.c           |   5 +
 xen/arch/x86/domain.c               |  32 +-
 xen/arch/x86/mm.c                   | 124 +++++-
 xen/arch/x86/setup.c                |   4 +
 xen/arch/x86/shutdown.c             |   3 +
 xen/arch/x86/tboot.c                |   4 +
 xen/arch/x86/x86_64/mm.c            | 302 ++++++++++----
 xen/common/Kconfig                  |   8 +
 xen/common/Makefile                 |   1 +
 xen/common/compat/memory.c          |   1 +
 xen/common/domain.c                 |   3 +
 xen/common/kexec.c                  |   3 +
 xen/common/memory.c                 |  44 +++
 xen/common/pmem.c                   | 761 ++++++++++++++++++++++++++++++++++++
 xen/common/sysctl.c                 |   9 +
 xen/drivers/acpi/Makefile           |   2 +
 xen/drivers/acpi/nfit.c             | 321 +++++++++++++++
 xen/include/acpi/actbl1.h           |  69 ++++
 xen/include/asm-x86/domain.h        |   1 +
 xen/include/asm-x86/mm.h            |  10 +-
 xen/include/public/memory.h         |  14 +-
 xen/include/public/sysctl.h         |  97 ++++-
 xen/include/xen/acpi.h              |  10 +
 xen/include/xen/pmem.h              |  76 ++++
 xen/include/xen/sched.h             |   3 +
 xen/include/xsm/dummy.h             |  11 +
 xen/include/xsm/xsm.h               |  12 +
 xen/xsm/dummy.c                     |   4 +
 xen/xsm/flask/hooks.c               |  17 +
 xen/xsm/flask/policy/access_vectors |   4 +
 65 files changed, 3939 insertions(+), 117 deletions(-)
 create mode 100644 tools/libacpi/qemu.h
 create mode 100644 tools/libacpi/qemu_fw_cfg.c
 create mode 100644 tools/libacpi/qemu_loader.c
 create mode 100644 tools/libacpi/qemu_stub.c
 create mode 100644 tools/libxl/libxl_nvdimm.c
 create mode 100644 tools/xl/xl_nvdimm.c
 create mode 100644 xen/common/pmem.c
 create mode 100644 xen/drivers/acpi/nfit.c
 create mode 100644 xen/include/xen/pmem.h

-- 
2.15.1


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

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

end of thread, other threads:[~2018-05-07 15:59 UTC | newest]

Thread overview: 113+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-07 10:09 [RFC XEN PATCH v4 00/41] Add vNVDIMM support to HVM domains Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 01/41] x86_64/mm: fix the PDX group check in mem_hotadd_check() Haozhong Zhang
2018-01-04  6:12   ` Chao Peng
2018-05-07 15:59   ` Jan Beulich
2017-12-07 10:09 ` [RFC XEN PATCH v4 02/41] x86_64/mm: avoid cleaning the unmapped frame table Haozhong Zhang
2018-01-04  6:20   ` Chao Peng
2017-12-07 10:09 ` [RFC XEN PATCH v4 03/41] hvmloader/util: do not compare characters after '\0' in strncmp Haozhong Zhang
2018-01-04  6:23   ` Chao Peng
2017-12-07 10:09 ` [RFC XEN PATCH v4 04/41] xen/common: add Kconfig item for pmem support Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 05/41] x86/mm: exclude PMEM regions from initial frametable Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 06/41] acpi: probe valid PMEM regions via NFIT Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 07/41] xen/pmem: register valid PMEM regions to Xen hypervisor Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 08/41] xen/pmem: hide NFIT and deny access to PMEM from Dom0 Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 09/41] xen/pmem: add framework for hypercall XEN_SYSCTL_nvdimm_op Haozhong Zhang
2017-12-07 10:09 ` [RFC XEN PATCH v4 10/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_get_rgions_nr Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 11/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_get_regions Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 12/41] tools/xl: add xl command 'pmem-list' Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 13/41] x86_64/mm: refactor memory_add() Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 14/41] x86_64/mm: allow customized location of extended frametable and M2P table Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 15/41] xen/pmem: add XEN_SYSCTL_nvdimm_pmem_setup to setup management PMEM region Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 16/41] tools/xl: accept all bases in parse_ulong() Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 17/41] tools/xl: expose parse_ulong() Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 18/41] tools/xl: add xl command 'pmem-setup' Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 19/41] xen/pmem: support PMEM_REGION_TYPE_MGMT for XEN_SYSCTL_nvdimm_pmem_get_regions_nr Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 20/41] xen/pmem: support PMEM_REGION_TYPE_MGMT for XEN_SYSCTL_nvdimm_pmem_get_regions Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 21/41] tools/xl: add option '--mgmt | -m' to xl command pmem-list Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 22/41] xen/pmem: support setup PMEM region for guest data usage Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 23/41] tools/xl: add option '--data | -d' to xl command pmem-setup Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 24/41] xen/pmem: support PMEM_REGION_TYPE_DATA for XEN_SYSCTL_nvdimm_pmem_get_regions_nr Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 25/41] xen/pmem: support PMEM_REGION_TYPE_DATA for XEN_SYSCTL_nvdimm_pmem_get_regions Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 26/41] tools/xl: add option '--data | -d' to xl command pmem-list Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 27/41] xen/pmem: add function to map PMEM pages to HVM domain Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 28/41] xen/pmem: release PMEM pages on HVM domain destruction Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 29/41] xen: add hypercall XENMEM_populate_pmem_map Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 30/41] tools: reserve extra guest memory for ACPI from device model Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 31/41] tools/libacpi: add callback to translate GPA to GVA Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 32/41] tools/libacpi: build a DM ACPI signature blacklist Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 33/41] tools/libacpi, hvmloader: detect QEMU fw_cfg interface Haozhong Zhang
2018-02-27 17:37   ` Anthony PERARD
2018-02-28  9:17     ` Haozhong Zhang
2018-03-02 11:26       ` Anthony PERARD
2018-03-05  7:55         ` Haozhong Zhang
2018-02-27 18:03   ` Anthony PERARD
2018-02-28  8:18     ` Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 34/41] tools/libacpi: probe QEMU ACPI ROMs via " Haozhong Zhang
2018-02-27 17:56   ` Anthony PERARD
2018-02-28  9:28     ` Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 35/41] tools/libacpi: add a QEMU BIOSLinkLoader executor Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 36/41] tools/libacpi: add function to get the data of QEMU RSDP Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 37/41] tools/libacpi: load QEMU ACPI Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 38/41] tools/xl: add xl domain configuration for virtual NVDIMM devices Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 39/41] tools/libxl: allow aborting domain creation on fatal QMP init errors Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 40/41] tools/libxl: initiate PMEM mapping via QMP callback Haozhong Zhang
2017-12-07 10:10 ` [RFC XEN PATCH v4 41/41] tools/libxl: build qemu options from xl vNVDIMM configs Haozhong Zhang
2017-12-07 10:18 ` [Qemu-devel] [RFC QEMU PATCH v4 00/10] Implement vNVDIMM for Xen HVM guest Haozhong Zhang
2017-12-07 10:18   ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 01/10] xen-hvm: remove a trailing space Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 02/10] xen-hvm: create the hotplug memory region on Xen Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2018-02-27 16:37     ` [Qemu-devel] " Anthony PERARD
2018-02-27 16:37       ` Anthony PERARD
2018-02-28  7:47       ` [Qemu-devel] " Haozhong Zhang
2018-02-28  7:47       ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 03/10] hostmem-xen: add a host memory backend for Xen Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2018-02-27 16:41     ` [Qemu-devel] " Anthony PERARD
2018-02-27 16:41       ` Anthony PERARD
2018-02-28  7:56       ` [Qemu-devel] " Haozhong Zhang
2018-03-02 11:50         ` Anthony PERARD
2018-03-02 11:50           ` Anthony PERARD
2018-03-05  7:53           ` [Qemu-devel] " Haozhong Zhang
2018-03-05  7:53           ` Haozhong Zhang
2018-02-28  7:56       ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 04/10] nvdimm: do not intiailize nvdimm->label_data if label size is zero Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 05/10] xen-hvm: initialize fw_cfg interface Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2018-02-27 16:46     ` [Qemu-devel] " Anthony PERARD
2018-02-27 16:46       ` Anthony PERARD
2018-02-28  8:16       ` [Qemu-devel] " Haozhong Zhang
2018-02-28  8:16         ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 06/10] hw/acpi-build, xen-hvm: introduce a Xen-specific ACPI builder Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 07/10] xen-hvm: add functions to copy data from/to HVM memory Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 08/10] nvdimm acpi: add functions to access DSM memory on Xen Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 09/10] nvdimm acpi: add compatibility for 64-bit integer in ACPI 2.0 and later Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2017-12-07 10:18   ` [Qemu-devel] [RFC QEMU PATCH v4 10/10] xen-hvm: enable building NFIT and SSDT of vNVDIMM for HVM domains Haozhong Zhang
2017-12-07 10:18     ` Haozhong Zhang
2018-02-27 17:22   ` [Qemu-devel] [RFC QEMU PATCH v4 00/10] Implement vNVDIMM for Xen HVM guest Anthony PERARD
2018-02-27 17:22     ` Anthony PERARD
2018-02-28  9:36     ` Haozhong Zhang
2018-02-28  9:36     ` [Qemu-devel] " Haozhong Zhang
2018-03-02 12:03       ` Anthony PERARD
2018-03-02 12:03         ` Anthony PERARD
2018-03-06  4:16         ` [Qemu-devel] [Xen-devel] " Haozhong Zhang
2018-03-06  4:16           ` Haozhong Zhang
2018-03-06 11:38           ` [Qemu-devel] [Xen-devel] " Anthony PERARD
2018-03-06 11:38             ` Anthony PERARD
2018-02-09 12:33 ` [RFC XEN PATCH v4 00/41] Add vNVDIMM support to HVM domains Roger Pau Monné
2018-02-12  1:25   ` Haozhong Zhang
2018-02-12 10:05     ` Roger Pau Monné
2018-02-13 10:06       ` Jan Beulich
2018-02-13 10:29         ` Roger Pau Monné
2018-02-13 11:05           ` Jan Beulich
2018-02-13 11:13             ` Roger Pau Monné
2018-02-13 13:40               ` Jan Beulich
2018-02-13 15:39                 ` Roger Pau Monné
2018-02-15  6:59                   ` Haozhong Zhang
2018-02-15  6:44       ` Haozhong Zhang

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.