[RFC v3] nvfs: a filesystem for persistent memory

From: Mikulas Patocka
Date: Mon Feb 15 2021 - 10:15:40 EST


Hi

I announce a new version of NVFS - a filesystem for persistent memory.
http://people.redhat.com/~mpatocka/nvfs/
git://leontynka.twibright.com/nvfs.git

Changes since the last release:

I reworked file read/write handling:

* the functions nvfs_read and nvfs_write were deleted beacause it's
unlikely that the upstream kernel will allow them.

* the functions nvfs_read_iter and nvfs_write_iter have a fast path if
there is just one segment in iov_iter - they will call nvfs_read_locked
and nvfs_write_locked directly. This improves performance by 3% on the
read path and 1% on the write path.

* read_iter_locked uses copy_to_iter as suggested by Al Viro.

* write_iter_locked doesn't use copy_from_iter_flushcache, because we need
copy that doesn't advance the iter (the "copy" and "advance" must be two
separate operations). So, I added new operations "iov_iter_map" and
"iov_iter_unmap" - iov_iter_map will map the first segment of iov and
iov_iter_unmap will unmap it.

Do you think that introducing "iov_iter_map" and "iov_iter_unmap" is
appropriate? Do you have some other idea how to handle it?

Mikukas