From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42240) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAisM-0002yb-4t for qemu-devel@nongnu.org; Thu, 02 Jul 2015 14:06:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZAisI-0000y7-Uo for qemu-devel@nongnu.org; Thu, 02 Jul 2015 14:06:18 -0400 Received: from mga09.intel.com ([134.134.136.24]:57738) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZAisI-0000xW-PY for qemu-devel@nongnu.org; Thu, 02 Jul 2015 14:06:14 -0400 Message-ID: <55957C7A.9050200@linux.intel.com> Date: Fri, 03 Jul 2015 02:01:30 +0800 From: Xiao Guangrong MIME-Version: 1.0 References: <1435762232-15543-1-git-send-email-guangrong.xiao@linux.intel.com> <20150702092044.GB20198@stefanha-thinkpad.redhat.com> <559509FA.20509@redhat.com> In-Reply-To: <559509FA.20509@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 00/16] implement vNVDIMM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Stefan Hajnoczi Cc: ehabkost@redhat.com, kvm@vger.kernel.org, mst@redhat.com, gleb@kernel.org, mtosatti@redhat.com, qemu-devel@nongnu.org, =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , stefanha@redhat.com, imammedo@redhat.com, rth@twiddle.net Thanks for your review, Stefan and Paolo! On 07/02/2015 05:52 PM, Paolo Bonzini wrote: > > > On 02/07/2015 11:20, Stefan Hajnoczi wrote: >>> Currently, the NVDIMM driver has been merged into upstream Linux Kernel and >>> this patchset tries to enable it in virtualization field >> >> From a device model perspective, have you checked whether it makes sense >> to integrate nvdimms into the pc-dimm and hostmem code that is used for >> memory hotplug and NUMA? >> >> The NVDIMM device in your patches is a completely new TYPE_DEVICE so it >> doesn't share any interfaces or code with existing memory devices. >> Maybe that is the right solution here because NVDIMMs have different >> characteristics, but I'm not sure. > > The hostmem code should definitely be shared, e.g. by adding a new > "file" property to the memory-backend-file class. ivshmem can also use > it---CCing Marc-Andr�. However, file-based memory used by NVDIMM is special, it divides the file to two parts, one part is used as PMEM and another part is used to store NVDIMM's configure data. Maybe we can introduce "end-reserved" property to reserve specified size at the end of the file. Or create a new class type based on memory-backend-file (named nvdimm-backend-file) class to hide this magic thing? > > I don't know about the pc-dimm devices. If the NVDIMM devices can do > _OST and can be hotplugged, then the answer is probably yes. _OST is not needed for NVDIMM. NVDIMM is completely different with dimm memory device in ACPI - it has different HID, method object, memory range detection, device organization, etc. So i prefer to introducing new device class for NVDIMM. For hotplug, NVDIMM and DIMM can share some logic, e.g, free-address-range management, slot management ... ( but new Object initiation in ACPI is complete different), we can abstract these operation as common part. NUMA detection is also different between NVDIMM, DIMM is also different, NVDIMM need to report its NUMA affinity in SPA table. But they can share some common function i think. BTW, i am going to implement vNVDIMM hotplug once linux NVDIMM driver supports it.