Hi,
On question 1: The current threshold was determined with some quick benchmarks on DRAM to see when MOVNT appeared to be faster. It is entirely possible that in the future, we decide the threshold should be different depending on the CPU type, NVDIMM type, or whatever. But this seemed to give us a reasonable starting point.
On question 2: the threshold is about performance only, not correctness. For memory ranges where pmem_is_pmem() returns true, pmem_memcpy_persist() will create a persistent copy. It doesn't matter what size is passed to pmem_memcpy_persist(), or what the threshold is set to.
-andy