[dm-devel] [PATCH] vmalloc: introduce vmap_pfn for persistent memory

Dan Williams dan.j.williams at intel.com
Thu Nov 9 17:35:06 UTC 2017


On Thu, Nov 9, 2017 at 9:30 AM, Mikulas Patocka <mpatocka at redhat.com> wrote:
>
>
> On Thu, 9 Nov 2017, Dan Williams wrote:
>
>> On Thu, Nov 9, 2017 at 8:40 AM, Mikulas Patocka <mpatocka at redhat.com> wrote:
>> >
>> >
>> > On Wed, 8 Nov 2017, Dan Williams wrote:
>> >
>> >> On Wed, Nov 8, 2017 at 12:15 PM, Mikulas Patocka <mpatocka at redhat.com> wrote:
>> >> >
>> >> >
>> >> > On Wed, 8 Nov 2017, Dan Williams wrote:
>> >> >
>> >> >> On Wed, Nov 8, 2017 at 7:35 AM, Christoph Hellwig <hch at infradead.org> wrote:
>> >> >> > On Wed, Nov 08, 2017 at 10:21:38AM -0500, Mikulas Patocka wrote:
>> >> >> >> > And what do you do for an architecture with virtuall indexed caches?
>> >> >> >>
>> >> >> >> Persistent memory is not supported on such architectures - it is only
>> >> >> >> supported on x86-64 and arm64.
>> >> >> >
>> >> >> > For now.  But once support is added your driver will just corrupt data
>> >> >> > unless you have the right API in place.
>> >> >>
>> >> >> I'm also in the process of ripping out page-less dax support. With
>> >> >> pages we can potentially leverage the VIVT-cache support in some
>> >> >> architectures, likely with more supporting infrastructure for
>> >> >> dax_flush().
>> >> >
>> >> > Should I remove all the code for page-less persistent memory from my
>> >> > driver?
>> >> >
>> >>
>> >> Yes, that would be my recommendation. You can see that filesystem-dax
>> >> is on its way to dropping page-less support in this series:
>> >>
>> >>    https://lists.01.org/pipermail/linux-nvdimm/2017-October/013125.html
>> >
>> > Why do you indend to drop dax for ramdisk? It's perfect for testing.
>> >
>> > On x86, persistent memory can be tested with the memmap kernel parameters,
>> > but on other architectures, ramdisk is the only option for tests.
>> >
>>
>> Because it's not "perfect for testing", it does not support the
>> get_user_pages() model that we need to safely handle DAX dma. ARM64
>> and PowerPC PMEM support is in the works, so I expect the architecture
>> support landscape for major architectures to improve such that the
>> pmem driver can always be used for DAX testing.
>
> Yes - but if I want to test the persistent memory driver on big-endian
> machine, I could use an old Sparc or PA-RISC machine with ramdisk.
>
> New PowerPC machines may support native persistent memory, but they are
> extremely expensive.
>

Ok, but for testing purposes we can just enable a "compile-test" /
fake "ARCH_HAS_PMEM_API" configuration to enable pmem usage on other
archs which would enable a better test case than DAX with brd.




More information about the dm-devel mailing list