[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 0/2] add vNVDIMM support for Xen



On Tue, 29 Dec 2015, Haozhong Zhang wrote:
> This patch series extends current vNVDIMM implementation to provide
> vNVDIMM to HVM domains when QEMU is used as the device model of Xen.
> 
> This patch series is based on upstream qemu rather of qemu-xen,
> because vNVDIMM support has not been in qemu-xen (commit f165e58).
> 
> * Following two problem that prevent Xen from directly using current
>   implementation are solved by this patch series.
> 
>  (1) The current way to allocate memory for pc-dimm based vNVDIMM
>      through file-backend device is not compatible with Xen. Patch 2
>      adds another pc-nvdimm device to manage vNVDIMM's memory by
>      itself.
>     
>      A pc-nvdimm device can be used only with Xen and is specified by
>      parameters like
>             -device pc-nvdimm,file=/dev/pmem0,size=MBYTES
>           
>  (2) Xen uses its hvmloader rather than QEMU to build guest ACPI
>      tables. In order to reuse as much code as possible, patch 2 calls
>      the existing QEMU code to build guest ACPI tables for pc-nvdimm
>      devices and passes them to hvmloader.

I don't think that is acceptable: this would introduce a VM build time
dependency between QEMU and hvmloader which I think is undesirable.

Please note that Anthony is working on a way to pass ACPI tables from
the toolstack to hvmloader: 

http://marc.info/?l=xen-devel&m=144587582606159

I would build this work on top of his series.


> * Test
>  (1) A patched Xen is used for test. Xen patch series is sent
>      separately with title "[PATCH 0/4] add support for vNVDIMM".
>       
>  (2) Prepare a memory backend file:
>             dd if=/dev/zero of=/tmp/nvm0 bs=1G count=10
> 
>  (3) Add the following line to a HVM domain's configuration xl.cfg:
>             nvdimm =[ 'file=/tmp/nvm0,size=10240' ]
> 
>  (4) Launch a HVM domain from above xl.cfg.
> 
>  (5) If guest Linux kernel is 4.2 or newer and kernel modules
>      libnvdimm, nfit, nd_btt and nd_pmem are loaded, then you will see
>      the whole nvdimm device used as a single namespace and /dev/pmem0
>      will appear.
> 
> 
> 
> Haozhong Zhang (2):
>   pc-nvdimm: implement pc-nvdimm device abstract
>   pc-nvdimm acpi: build ACPI tables for pc-nvdimm devices
> 
>  hw/acpi/nvdimm.c           |   5 +-
>  hw/i386/pc.c               |   6 +-
>  hw/mem/Makefile.objs       |   1 +
>  hw/mem/pc-nvdimm.c         | 239 
> +++++++++++++++++++++++++++++++++++++++++++++
>  include/hw/mem/pc-nvdimm.h |  49 ++++++++++
>  include/hw/xen/xen.h       |   2 +
>  xen-hvm.c                  |  73 ++++++++++++++
>  7 files changed, 373 insertions(+), 2 deletions(-)
>  create mode 100644 hw/mem/pc-nvdimm.c
>  create mode 100644 include/hw/mem/pc-nvdimm.h
> 
> -- 
> 2.4.8
> 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.