From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Haozhong" Subject: Re: [PATCH 0/4] add support for vNVDIMM Date: Wed, 20 Jan 2016 22:26:49 +0800 Message-ID: <20160120142649.GA11445@hz-desktop.sh.intel.com> References: <1451388711-18646-1-git-send-email-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org Cc: "Tian, Kevin" , Keir Fraser , Ian Campbell , "Nakajima, Jun" , Andrew Cooper , Ian Jackson , Xiao Guangrong , "xen-devel@lists.xen.org" , Jan Beulich , Wei Liu List-Id: xen-devel@lists.xenproject.org On 01/20/16 12:43, Stefano Stabellini wrote: > On Wed, 20 Jan 2016, Tian, Kevin wrote: > > > From: Zhang, Haozhong > > > Sent: Tuesday, December 29, 2015 7:32 PM > > > > > > This patch series is the Xen part patch to provide virtual NVDIMM to > > > guest. The corresponding QEMU patch series is sent separately with the > > > title "[PATCH 0/2] add vNVDIMM support for Xen". > > > > > > * Background > > > > > > NVDIMM (Non-Volatile Dual In-line Memory Module) is going to be > > > supported on Intel's platform. NVDIMM devices are discovered via ACPI > > > and configured by _DSM method of NVDIMM device in ACPI. Some > > > documents can be found at > > > [1] ACPI 6: http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf > > > [2] NVDIMM Namespace: http://pmem.io/documents/NVDIMM_Namespace_Spec.pdf > > > [3] DSM Interface Example: > > > http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf > > > [4] Driver Writer's Guide: > > > http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf > > > > > > The upstream QEMU (commits 5c42eef ~ 70d1fb9) has added support to > > > provide virtual NVDIMM in PMEM mode, in which NVDIMM devices are > > > mapped into CPU's address space and are accessed via normal memory > > > read/write and three special instructions (clflushopt/clwb/pcommit). > > > > > > This patch series and the corresponding QEMU patch series enable Xen > > > to provide vNVDIMM devices to HVM domains. > > > > > > * Design > > > > > > Supporting vNVDIMM in PMEM mode has three requirements. > > > > > > > Although this design is about vNVDIMM, some background of how pNVDIMM > > is managed in Xen would be helpful to understand the whole design since > > in PMEM mode you need map pNVDIMM into GFN addr space so there's > > a matter of how pNVDIMM is allocated. > > Yes, some background would be very helpful. Given that there are so many > moving parts on this (Xen, the Dom0 kernel, QEMU, hvmloader, libxl) > I suggest that we start with a design document for this feature. Let me prepare a design document. Basically, it would include following contents. Please let me know if you want anything additional to be included. * What NVDIMM is and how it is used * Software interface of NVDIMM - ACPI NFIT: what parameters are recorded and their usage - ACPI SSDT: what _DSM methods are provided and their functionality - New instructions: clflushopt/clwb/pcommit * How the linux kernel drives NVDIMM - ACPI parsing - Block device interface - Partition NVDIMM devices * How KVM/QEMU implements vNVDIMM * What I propose to implement vNVDIMM in Xen - Xen hypervisor/toolstack: new instruction enabling and address mapping - Dom0 Linux kernel: host NVDIMM driver - QEMU: virtual NFIT/SSDT, _DSM handling, and role in address mapping Haozhong