Re: [Xen-devel] [RFC KERNEL PATCH 0/2] Add Dom0 NVDIMM support for Xen

From: Jan Beulich
Date: Wed Oct 12 2016 - 12:22:41 EST

>>> On 12.10.16 at 17:42, <dan.j.williams@xxxxxxxxx> wrote:
> On Wed, Oct 12, 2016 at 8:39 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>>> On 12.10.16 at 16:58, <haozhong.zhang@xxxxxxxxx> wrote:
>>> On 10/12/16 05:32 -0600, Jan Beulich wrote:
>>>>>>> On 12.10.16 at 12:33, <haozhong.zhang@xxxxxxxxx> wrote:
>>>>> The layout is shown as the following diagram.
>>>>> +---------------+-----------+-------+----------+--------------+
>>>>> | whatever used | Partition | Super | Reserved | /dev/pmem0p1 |
>>>>> | by kernel | Table | Block | for Xen | |
>>>>> +---------------+-----------+-------+----------+--------------+
>>>>> \_____________________ _______________________/
>>>>> V
>>>>> /dev/pmem0
>>>>I have to admit that I dislike this, for not being OS-agnostic.
>>>>Neither should there be any Xen-specific region, nor should the
>>>>"whatever used by kernel" one be restricted to just Linux. What
>>>>I could see is an OS-reserved area ahead of the partition table,
>>>>the exact usage of which depends on which OS is currently
>>>>running (and in the Xen case this might be both Xen _and_ the
>>>>Dom0 kernel, arbitrated by a tbd protocol). After all, when
>>>>running under Xen, the Dom0 may not have a need for as much
>>>>control data as it has when running on bare hardware, for it
>>>>controlling less (if any) of the actual memory ranges when Xen
>>>>is present.
>>> Isn't this OS-reserved area still not OS-agnostic, as it requires OS
>>> to know where the reserved area is? Or do you mean it's not if it's
>>> defined by a protocol that is accepted by all OSes?
>> The latter - we clearly won't get away without some agreement on
>> where to retrieve position and size of this area. I was simply
>> assuming that such a protocol already exists.
> No, we should not mix the struct page reservation that the Dom0 kernel
> may actively use with the Xen reservation that the Dom0 kernel does
> not consume. Explain again what is wrong with the partition approach?

Not sure what was unclear in my previous reply. I don't think there
should be apriori knowledge of whether Xen is (going to be) used on
a system, and even if it gets used, but just occasionally, it would
(apart from the abstract considerations already given) be a waste
of resources to set something aside that could be used for other
purposes while Xen is not running. Static partitioning should only be
needed for persistent data.