From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [Qemu-devel] [PATCH v3 00/32] implement vNVDIMM Date: Tue, 13 Oct 2015 11:14:21 +0800 Message-ID: <561C770D.8010606@linux.intel.com> References: <1444535584-18220-1-git-send-email-guangrong.xiao@linux.intel.com> <561B3816.4020102@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: ehabkost@redhat.com, KVM list , "Michael S. Tsirkin" , Gleb Natapov , mtosatti@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, imammedo@redhat.com, Paolo Bonzini , rth@twiddle.net To: Dan Williams Return-path: Received: from mga09.intel.com ([134.134.136.24]:55976 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752008AbbJMDUu (ORCPT ); Mon, 12 Oct 2015 23:20:50 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 10/13/2015 12:36 AM, Dan Williams wrote: > On Sun, Oct 11, 2015 at 9:33 PM, Xiao Guangrong > wrote: >> >> >> On 10/11/2015 05:17 AM, Dan Williams wrote: >>> >>> On Sat, Oct 10, 2015 at 8:52 PM, Xiao Guangrong >>> wrote: >>> [..] >>>> >>>> ====== Test ====== >>>> In host >>>> 1) create memory backed file, e.g # dd if=zero of=/tmp/nvdimm bs=1G >>>> count=10 >>>> 2) append "-object memory-backend-file,share,id=mem1, >>>> mem-path=/tmp/nvdimm -device nvdimm,memdev=mem1,reserve-label-data, >>>> id=nv1" in QEMU command line >>>> >>>> In guest, download the latest upsteam kernel (4.2 merge window) and >>>> enable >>>> ACPI_NFIT, LIBNVDIMM and BLK_DEV_PMEM. >>>> 1) insmod drivers/nvdimm/libnvdimm.ko >>>> 2) insmod drivers/acpi/nfit.ko >>>> 3) insmod drivers/nvdimm/nd_btt.ko >>>> 4) insmod drivers/nvdimm/nd_pmem.ko >>>> You can see the whole nvdimm device used as a single namespace and >>>> /dev/pmem0 >>>> appears. You can do whatever on /dev/pmem0 including DAX access. >>>> >>>> Currently Linux NVDIMM driver does not support namespace operation on >>>> this >>>> kind of PMEM, apply below changes to support dynamical namespace: >>>> >>>> @@ -798,7 +823,8 @@ static int acpi_nfit_register_dimms(struct >>>> acpi_nfit_desc *a >>>> continue; >>>> } >>>> >>>> - if (nfit_mem->bdw && nfit_mem->memdev_pmem) >>>> + //if (nfit_mem->bdw && nfit_mem->memdev_pmem) >>>> + if (nfit_mem->memdev_pmem) >>>> flags |= NDD_ALIASING; >>> >>> >>> This is just for testing purposes, right? I expect guests can >> >> >> It's used to validate NVDIMM _DSM method and static namespace following >> NVDIMM specs... > > Static namespaces can be emitted without a label. Linux needs this to > support existing "label-less" bare metal NVDIMMs. This is Linux specific? As i did not see it has been documented in the spec... > >>> sub-divide persistent memory capacity by partitioning the resulting >>> block device(s). >> >> >> I understand that it's a Linux design... Hmm, can the same expectation >> apply to PBLK? > > BLK-mode is a bit different as those namespaces have both configurable > sector-size and an optional BTT. It is possible to expect multiple > BLK namespaces per a given region with different settings. Okay, thanks for your nice explanation, Dan!