From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1drGY5-0000rw-1M for qemu-devel@nongnu.org; Mon, 11 Sep 2017 00:42:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1drGY1-0004VI-42 for qemu-devel@nongnu.org; Mon, 11 Sep 2017 00:42:17 -0400 Received: from mga04.intel.com ([192.55.52.120]:7114) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1drGY0-0004Pg-QL for qemu-devel@nongnu.org; Mon, 11 Sep 2017 00:42:13 -0400 From: Haozhong Zhang Date: Mon, 11 Sep 2017 12:41:47 +0800 Message-Id: <20170911044157.15403-1-haozhong.zhang@intel.com> In-Reply-To: <20170911043820.14617-1-haozhong.zhang@intel.com> Subject: [Qemu-devel] [RFC QEMU PATCH v3 00/10] Implement vNVDIMM for Xen HVM guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, xen-devel@lists.xen.org Cc: Konrad Rzeszutek Wilk , Dan Williams , Chao Peng , Haozhong Zhang , Eduardo Habkost , Igor Mammedov , "Michael S. Tsirkin" , Xiao Guangrong , Paolo Bonzini , Richard Henderson , Stefano Stabellini , Anthony Perard 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 be found at Xen: https://github.com/hzzhan9/xen.git nvdimm-rfc-v3 QEMU: https://github.com/hzzhan9/qemu.git xen-nvdimm-rfc-v3 Patch 1 is to avoid dereferencing the NULL pointer to non-existing label data, as the Xen side support for labels is not implemented yet. 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 - 10 build and cooy NFIT from QEMU to Xen guest, when QEMU is used as the Xen device model. Haozhong Zhang (10): nvdimm: do not intiailize nvdimm->label_data if label size is zero hw/xen-hvm: create the hotplug memory region on Xen hostmem-xen: add a host memory backend for Xen nvdimm acpi: do not use fw_cfg on Xen hw/xen-hvm: initialize DM ACPI hw/xen-hvm: add function to copy ACPI into guest memory nvdimm acpi: copy NFIT to Xen guest nvdimm acpi: copy ACPI namespace device of vNVDIMM to Xen guest nvdimm acpi: do not build _FIT method on Xen hw/xen-hvm: enable building DM ACPI if vNVDIMM is enabled backends/Makefile.objs | 1 + backends/hostmem-xen.c | 108 ++++++++++++++++++++++++++ backends/hostmem.c | 9 +++ hw/acpi/aml-build.c | 10 ++- hw/acpi/nvdimm.c | 79 ++++++++++++++----- hw/i386/pc.c | 102 ++++++++++++++----------- hw/i386/xen/xen-hvm.c | 204 ++++++++++++++++++++++++++++++++++++++++++++++++- hw/mem/nvdimm.c | 10 ++- hw/mem/pc-dimm.c | 6 +- include/hw/i386/pc.h | 1 + include/hw/xen/xen.h | 25 ++++++ stubs/xen-hvm.c | 10 +++ 12 files changed, 495 insertions(+), 70 deletions(-) create mode 100644 backends/hostmem-xen.c -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC QEMU PATCH v3 00/10] Implement vNVDIMM for Xen HVM guest Date: Mon, 11 Sep 2017 12:41:47 +0800 Message-ID: <20170911044157.15403-1-haozhong.zhang@intel.com> References: <20170911043820.14617-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170911043820.14617-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xen.org Cc: Haozhong Zhang , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Paolo Bonzini , Igor Mammedov , Anthony Perard , Chao Peng , Dan Williams , Richard Henderson , Xiao Guangrong List-Id: xen-devel@lists.xenproject.org VGhpcyBpcyB0aGUgUUVNVSBwYXJ0IHBhdGNoZXMgdGhhdCB3b3JrcyB3aXRoIHRoZSBhc3NvY2lh dGVkIFhlbgpwYXRjaGVzIHRvIGVuYWJsZSB2TlZESU1NIHN1cHBvcnQgZm9yIFhlbiBIVk0gZG9t YWlucy4gWGVuIHJlbGllcyBvbgpRRU1VIHRvIGJ1aWxkIGd1ZXN0IE5GSVQgYW5kIE5WRElNTSBu YW1lc3BhY2UgZGV2aWNlcywgYW5kIGFsbG9jYXRlCmd1ZXN0IGFkZHJlc3Mgc3BhY2UgZm9yIHZO VkRJTU0gZGV2aWNlcy4KCkFsbCBwYXRjaGVzIGNhbiBiZSBmb3VuZCBhdAogIFhlbjogIGh0dHBz Oi8vZ2l0aHViLmNvbS9oenpoYW45L3hlbi5naXQgbnZkaW1tLXJmYy12MwogIFFFTVU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9oenpoYW45L3FlbXUuZ2l0IHhlbi1udmRpbW0tcmZjLXYzCgpQYXRjaCAx IGlzIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgdGhlIE5VTEwgcG9pbnRlciB0byBub24tZXhpc3Rp bmcKbGFiZWwgZGF0YSwgYXMgdGhlIFhlbiBzaWRlIHN1cHBvcnQgZm9yIGxhYmVscyBpcyBub3Qg aW1wbGVtZW50ZWQgeWV0LgoKUGF0Y2ggMiAmIDMgYWRkIGEgbWVtb3J5IGJhY2tlbmQgZGVkaWNh dGVkIGZvciBYZW4gdXNhZ2UgYW5kIGEgaG90cGx1ZwptZW1vcnkgcmVnaW9uIGZvciBYZW4gZ3Vl c3QsIGluIG9yZGVyIHRvIG1ha2UgdGhlIGV4aXN0aW5nIG52ZGltbQpkZXZpY2UgcGx1Z2dpbmcg cGF0aCB3b3JrIG9uIFhlbi4KClBhdGNoIDQgLSAxMCBidWlsZCBhbmQgY29veSBORklUIGZyb20g UUVNVSB0byBYZW4gZ3Vlc3QsIHdoZW4gUUVNVSBpcwp1c2VkIGFzIHRoZSBYZW4gZGV2aWNlIG1v ZGVsLgoKCkhhb3pob25nIFpoYW5nICgxMCk6CiAgbnZkaW1tOiBkbyBub3QgaW50aWFpbGl6ZSBu dmRpbW0tPmxhYmVsX2RhdGEgaWYgbGFiZWwgc2l6ZSBpcyB6ZXJvCiAgaHcveGVuLWh2bTogY3Jl YXRlIHRoZSBob3RwbHVnIG1lbW9yeSByZWdpb24gb24gWGVuCiAgaG9zdG1lbS14ZW46IGFkZCBh IGhvc3QgbWVtb3J5IGJhY2tlbmQgZm9yIFhlbgogIG52ZGltbSBhY3BpOiBkbyBub3QgdXNlIGZ3 X2NmZyBvbiBYZW4KICBody94ZW4taHZtOiBpbml0aWFsaXplIERNIEFDUEkKICBody94ZW4taHZt OiBhZGQgZnVuY3Rpb24gdG8gY29weSBBQ1BJIGludG8gZ3Vlc3QgbWVtb3J5CiAgbnZkaW1tIGFj cGk6IGNvcHkgTkZJVCB0byBYZW4gZ3Vlc3QKICBudmRpbW0gYWNwaTogY29weSBBQ1BJIG5hbWVz cGFjZSBkZXZpY2Ugb2Ygdk5WRElNTSB0byBYZW4gZ3Vlc3QKICBudmRpbW0gYWNwaTogZG8gbm90 IGJ1aWxkIF9GSVQgbWV0aG9kIG9uIFhlbgogIGh3L3hlbi1odm06IGVuYWJsZSBidWlsZGluZyBE TSBBQ1BJIGlmIHZOVkRJTU0gaXMgZW5hYmxlZAoKIGJhY2tlbmRzL01ha2VmaWxlLm9ianMgfCAg IDEgKwogYmFja2VuZHMvaG9zdG1lbS14ZW4uYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysr KysrKwogYmFja2VuZHMvaG9zdG1lbS5jICAgICB8ICAgOSArKysKIGh3L2FjcGkvYW1sLWJ1aWxk LmMgICAgfCAgMTAgKystCiBody9hY3BpL252ZGltbS5jICAgICAgIHwgIDc5ICsrKysrKysrKysr KysrLS0tLS0KIGh3L2kzODYvcGMuYyAgICAgICAgICAgfCAxMDIgKysrKysrKysrKysrKystLS0t LS0tLS0tLQogaHcvaTM4Ni94ZW4veGVuLWh2bS5jICB8IDIwNCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBody9tZW0vbnZkaW1tLmMgICAgICAgIHwg IDEwICsrLQogaHcvbWVtL3BjLWRpbW0uYyAgICAgICB8ICAgNiArLQogaW5jbHVkZS9ody9pMzg2 L3BjLmggICB8ICAgMSArCiBpbmNsdWRlL2h3L3hlbi94ZW4uaCAgIHwgIDI1ICsrKysrKwogc3R1 YnMveGVuLWh2bS5jICAgICAgICB8ICAxMCArKysKIDEyIGZpbGVzIGNoYW5nZWQsIDQ5NSBpbnNl cnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBiYWNrZW5kcy9o b3N0bWVtLXhlbi5jCgotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==