It was advised in today's nova team meeting to bring this up by email.

There has been some discussion on the how to track persistent memory resource in placement on the spec review [1].

Background: persistent memory (PMEM) needs to be partitioned to namespaces to be consumed by VMs. Due to fragmentation issues, the spec proposed to use fixed sized PMEM namespaces.

The spec proposed way to represent PMEM namespaces is to use one Resource Provider (RP) for one PMEM namespace. An new standard Resource Class (RC) -- 'VPMEM_GB` is introduced to classify PMEM namspace RPs. For each PMEM namespace RP, the values for 'max_unit', 'min_unit', 'total' and 'step_size` are all set to the size of the PMEM namespace. In this way, it is guaranteed each RP will be consumed as a whole at one time.

An alternative was brought out in the review. Different Custom Resource Classes ( CUSTOM_PMEM_XXXGB) can be used to designate PMEM namespaces of different sizes. The size of the PMEM namespace is encoded in the name of the custom Resource Class. And multiple PMEM namespaces of the same size  (say 128G) can be represented by one RP of the same CUSTOM_PMEM_128G. In this way, the RP could have 'max_unit'  and 'total' as the total number of the PMEM namespaces of the certain size. And the values of 'min_unit' and 'step_size' could set to 1.

We believe both way could work. We would like to have a community consensus on which way to use.
Email replies and review comments to the spec [1] are both welcomed.

Regards,
Zang, Rui


[1] https://review.openstack.org/#/c/601596/