NVSL / linux-nova

NOVA is a log-structured file system designed for byte-addressable non-volatile memories, developed at the University of California, San Diego.
http://nvsl.ucsd.edu/index.php?path=projects/nova
Other
421 stars 118 forks source link

MAP_SYNC w/ NOVA fs #71

Closed fengyuleidian0615 closed 3 years ago

fengyuleidian0615 commented 6 years ago

Hi @Andiry

MAP_SYNC feature merged in v4.15 vanilla kernel tried to call fdata_sync to flush dirty metadata and data down to media, this brings more robust filesystem consistence on top of journal. As I read through NOVA FS implementation, both metadata and data are kept consistent, so by my limited understanding, equivalence of MAP_SYNC in NOVA FS is not needed.

Please correct me if I'm wrong somewhere.

thanks!

Andiry commented 6 years ago

Yes, you are right.

On Tue, Jul 3, 2018 at 10:18 PM Fan Du notifications@github.com wrote:

Hi @Andiry https://github.com/Andiry

MAP_SYNC feature merged in v4.15 vanilla kernel tried to call fdata_sync to flush dirty metadata and data down to media, this brings more robust filesystem consistence on top of journal. As I read through NOVA FS implementation, both metadata and data are kept consistent, so by my limited understanding, equivalence of MAP_SYNC in NOVA FS is not needed.

Please correct me if I'm wrong somewhere.

thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NVSL/linux-nova/issues/71, or mute the thread https://github.com/notifications/unsubscribe-auth/ABQcEAdnd_7quYWEQNyiQ7i8OBj5vCiWks5uDFAogaJpZM4VB9_- .

pleiadesian commented 3 years ago

According to DAX support part in README, msync() in user space is needed. Why?

Andiry commented 3 years ago

You don't have to. When a file page is mmaped to user space, NOVA releases control of it and it is the user's responsibility to ensure consistency. User space can use any method: coarse-grained msync() or fine-grained cache line flushing. It's about data consistency, not metadata.

The issue itself is about the MAP_SYNC flag, which guarantees metadata consistency. NOVA always guarantee metadata consistency.

Thanks, Andiry

On Sat, Sep 5, 2020 at 11:57 PM wzl notifications@github.com wrote:

According to DAX support part in README, msync() in user space is needed. Why?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.