On Wed, Dec 30, 2015 at 7:28 PM, Bob Liu <bob.liu(a)oracle.com> wrote:
On 12/31/2015 04:39 AM, Dan Williams wrote:
> On Wed, Dec 30, 2015 at 12:02 AM, Bob Liu <bob.liu(a)oracle.com> wrote:
>> Hi Ross,
>> On 12/24/2015 03:39 AM, Ross Zwisler wrote:
>>> Add support for tracking dirty DAX entries in the struct address_space
>>> radix tree. This tree is already used for dirty page writeback, and it
>>> already supports the use of exceptional (non struct page*) entries.
>>> In order to properly track dirty DAX pages we will insert new exceptional
>>> entries into the radix tree that represent dirty DAX PTE or PMD pages.
>> I may get it wrong, but there is "struct page" for persistent memory
>> "[PATCH v4 00/18]get_user_pages() for dax pte and pmd mappings".
>> So why not just add "struct page" to radix tree directly just like
normal page cache?
>> Then we don't need to deal with any exceptional entries and special
> That "struct page" is optional and fsync/msync needs to operate in its
Any special reason or scenario that "struct page" should not be enabled?
I didn't see any disadvantages if always enable "struct page" by force when
using DAX model for pmem.
The benefits would be things can be more simple and less potential bugs because of
We can't enable struct page coverage by default.
The persistent memory capacity may be too large to allocate the memmap
array from DRAM. Allocating it from pmem reduces the size of the
device and we can't have a block device change sizes just by booting a
different kernel (any kernel less than 4.5). So, enabling struct page
must be an explicit action.
Happy New Year!
Happy New Year!