On 13/10/16 16:40, Dan Williams wrote: > On Thu, Oct 13, 2016 at 2:08 AM, Jan Beulich <jbeul...@suse.com> wrote: > [..] >>> I think we can do the similar for Xen, like to lay another pseudo >>> device on /dev/pmem and do the reservation, like 2. in my previous >>> reply. >> Well, my opinion certainly doesn't count much here, but I continue to >> consider this a bad idea. For entities like drivers it may well be >> appropriate, but I think there ought to be an independent concept >> of "OS reserved", and in the Xen case this could then be shared >> between hypervisor and Dom0 kernel. Or if we were to consider Dom0 >> "just a guest", things should even be the other way around: Xen gets >> all of the OS reserved space, and Dom0 needs something custom. > You haven't made the case why Xen is special and other applications of > persistent memory are not.
In a Xen system, Xen runs in the baremetal root-mode ring0, and dom0 is a VM running in ring1/3 with the nvdimm driver. This is the opposite way around to the KVM model. Dom0, being the hardware domain, has default ownership of all the hardware, but to gain access in the first place, it must request a mapping from Xen. Xen therefore needs to know and cope with being able to give dom0 a mapping to the nvdimms, without touching the content of the nvidmm itself (so as to avoid corrupting data). Once dom0 has a mapping of the nvdimm, the nvdimm driver can go to work and figure out what is on the DIMM, and which areas are safe to use. At this point, a Xen subsystem in Linux could choose one or more areas to hand back to the hypervisor to use as RAM/other. ~Andrew