From: Haozhong Zhang <haozhong.zhang@intel.com>
To: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
Anthony Perard <anthony.perard@citrix.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Dan Williams <dan.j.williams@intel.com>,
Chao Peng <chao.p.peng@linux.intel.com>,
Haozhong Zhang <haozhong.zhang@intel.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Xiao Guangrong <xiaoguangrong.eric@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [RFC QEMU PATCH v4 00/10] Implement vNVDIMM for Xen HVM guest
Date: Thu, 7 Dec 2017 18:18:02 +0800 [thread overview]
Message-ID: <20171207101812.23602-1-haozhong.zhang@intel.com> (raw)
In-Reply-To: <20171207101030.22364-1-haozhong.zhang@intel.com>
This is the QEMU part patches that works with the associated Xen
patches to enable vNVDIMM support for Xen HVM domains. Xen relies on
QEMU to build guest NFIT and NVDIMM namespace devices, and allocate
guest address space for vNVDIMM devices.
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.nongnu.org/archive/html/qemu-devel/2017-09/msg02406.html
Changes in v4:
* The primary change in this version is to use the existing fw_cfg
and BIOSLinkerLoader interface to pass ACPI to Xen guest, rather
than introducing a Xen-specific mechanism. (Patch 5-10)
Following Xen-specific are still left in ACPI code:
(1) (Patch 6) xen_acpi_build() is called in acpi_build() to only
build Xen guest required ACPI tables. The consequent code
path in acpi_build() is bypassed.
(2) (Patch 8) Add Xen-specific functions to access DSM memory,
because the existing cpu_physical_memory_rw does not work on Xen.
(3) (Patch 9) Implement a workaround for different AML integer
widths between ACPI 1.0 (QEMU) and 2.0 (Xen).
Patch 1 is a trivial code cleanup.
Patch 2-3 add a memory backend dedicated for Xen usage and a hotplug
memory region for Xen guest, in order to make the existing nvdimm
device plugging path work on Xen.
Patch 4 is to avoid dereferencing the NULL pointer to non-existing
label data, as the Xen side support for labels is not implemented yet.
Patch 5-10 enable building ACPI tables and passing them to Xen HVM
domains.
Haozhong Zhang (10):
[01/10] xen-hvm: remove a trailing space
[02/10] xen-hvm: create the hotplug memory region on Xen
[03/10] hostmem-xen: add a host memory backend for Xen
[04/10] nvdimm: do not intiailize nvdimm->label_data if label size is zero
[05/10] xen-hvm: initialize fw_cfg interface
[06/10] hw/acpi-build, xen-hvm: introduce a Xen-specific ACPI builder
[07/10] xen-hvm: add functions to copy data from/to HVM memory
[08/10] nvdimm acpi: add functions to access DSM memory on Xen
[09/10] nvdimm acpi: add compatibility for 64-bit integer in ACPI 2.0 and later
[10/10] xen-hvm: enable building NFIT and SSDT of vNVDIMM for HVM domains
backends/Makefile.objs | 1 +
backends/hostmem-xen.c | 108 ++++++++++++++++++++++++++++++++++++++++++++
backends/hostmem.c | 9 ++++
hw/acpi/nvdimm.c | 51 +++++++++++++++++----
hw/i386/acpi-build.c | 9 +++-
hw/i386/pc.c | 86 +++++++++++++++++++----------------
hw/i386/xen/xen-hvm.c | 105 ++++++++++++++++++++++++++++++++++++++++--
hw/mem/nvdimm.c | 10 +++-
hw/mem/pc-dimm.c | 6 ++-
include/hw/acpi/aml-build.h | 4 ++
include/hw/i386/pc.h | 1 +
include/hw/xen/xen.h | 7 +++
stubs/xen-hvm.c | 15 ++++++
13 files changed, 359 insertions(+), 53 deletions(-)
create mode 100644 backends/hostmem-xen.c
--
2.15.1
next parent reply other threads:[~2017-12-07 10:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20171207101030.22364-1-haozhong.zhang@intel.com>
2017-12-07 10:18 ` Haozhong Zhang [this message]
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 ` [Qemu-devel] [RFC QEMU PATCH v4 02/10] xen-hvm: create the hotplug memory region on Xen Haozhong Zhang
2018-02-27 16:37 ` Anthony PERARD
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
2018-02-27 16:41 ` Anthony PERARD
2018-02-28 7:56 ` Haozhong Zhang
2018-03-02 11:50 ` Anthony PERARD
2018-03-05 7:53 ` 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 ` [Qemu-devel] [RFC QEMU PATCH v4 05/10] xen-hvm: initialize fw_cfg interface Haozhong Zhang
2018-02-27 16:46 ` Anthony PERARD
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 ` [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 ` [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 ` [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 ` [Qemu-devel] [RFC QEMU PATCH v4 10/10] xen-hvm: enable building NFIT and SSDT of vNVDIMM for HVM domains 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-28 9:36 ` Haozhong Zhang
2018-03-02 12:03 ` Anthony PERARD
2018-03-06 4:16 ` [Qemu-devel] [Xen-devel] " Haozhong Zhang
2018-03-06 11:38 ` Anthony PERARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171207101812.23602-1-haozhong.zhang@intel.com \
--to=haozhong.zhang@intel.com \
--cc=anthony.perard@citrix.com \
--cc=chao.p.peng@linux.intel.com \
--cc=dan.j.williams@intel.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=konrad.wilk@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xiaoguangrong.eric@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).