EulerFS is NVDIMM filesystem. It uses soft updates and pointer-based
dual views to delay synchronous cache flushes and reduce latency
significantly in critical path.
We run eulerfs with xfstests, no WARNING or BUG message is found in kernel
log.
We test the performance with multiple benchmark, the results is much
greater than ext4dax.
We run the code coverage testing, line coverage is over 80%, functions
coverage is almost 100%.
Yu Kuai (17):
eulerfs: common definitions
eulerfs: add kmeme_cache definitions and interfaces
eulerfs: add memory allocation interfaces
eulerfs: add flush interfaces
eulerfs: add interfaces for inode lock transfer
eulerfs: add interfaces for page wear
eulerfs: add filename interfaces
eulerfs: add nv dict operations
eulerfs: add dependency operations
eulerfs: add inode related interfaces
eulerfs: add dax operations
eulerfs: add file operations and inode operations for regular file
eulerfs: add inode_operations for dir inode and special inode
eulerfs: add file_operations for dir inode
eulerfs: add inode_operations for symlink inode
eulerfs: add super_operations and module_init/exit
eulerfs: add Kconfig and Makefile
fs/Kconfig | 1 +
fs/Makefile | 1 +
fs/eulerfs/Kconfig | 10 +
fs/eulerfs/Makefile | 9 +
fs/eulerfs/alloc_interface.h | 113 +++
fs/eulerfs/const.h | 80 ++
fs/eulerfs/dax.c | 1696 ++++++++++++++++++++++++++++++++++
fs/eulerfs/dax.h | 101 ++
fs/eulerfs/dep.c | 791 ++++++++++++++++
fs/eulerfs/dep.h | 218 +++++
fs/eulerfs/dht.c | 312 +++++++
fs/eulerfs/dht.h | 156 ++++
fs/eulerfs/dir.c | 139 +++
fs/eulerfs/euler.h | 84 ++
fs/eulerfs/euler_common.h | 225 +++++
fs/eulerfs/euler_dbg.h | 36 +
fs/eulerfs/euler_def.h | 201 ++++
fs/eulerfs/file.c | 294 ++++++
fs/eulerfs/filename.h | 120 +++
fs/eulerfs/flush.h | 171 ++++
fs/eulerfs/inode.c | 602 ++++++++++++
fs/eulerfs/inode.h | 44 +
fs/eulerfs/kmem_cache.c | 107 +++
fs/eulerfs/kmem_cache.h | 37 +
fs/eulerfs/lock.h | 49 +
fs/eulerfs/namei.c | 872 +++++++++++++++++
fs/eulerfs/nvalloc.c | 1451 +++++++++++++++++++++++++++++
fs/eulerfs/nvalloc.h | 214 +++++
fs/eulerfs/nvm_struct.h | 297 ++++++
fs/eulerfs/pbatch.h | 314 +++++++
fs/eulerfs/super.c | 811 ++++++++++++++++
fs/eulerfs/symlink.c | 29 +
fs/eulerfs/wear.c | 48 +
fs/eulerfs/wear.h | 30 +
34 files changed, 9663 insertions(+)
create mode 100644 fs/eulerfs/Kconfig
create mode 100644 fs/eulerfs/Makefile
create mode 100644 fs/eulerfs/alloc_interface.h
create mode 100644 fs/eulerfs/const.h
create mode 100644 fs/eulerfs/dax.c
create mode 100644 fs/eulerfs/dax.h
create mode 100644 fs/eulerfs/dep.c
create mode 100644 fs/eulerfs/dep.h
create mode 100644 fs/eulerfs/dht.c
create mode 100644 fs/eulerfs/dht.h
create mode 100644 fs/eulerfs/dir.c
create mode 100644 fs/eulerfs/euler.h
create mode 100644 fs/eulerfs/euler_common.h
create mode 100644 fs/eulerfs/euler_dbg.h
create mode 100644 fs/eulerfs/euler_def.h
create mode 100644 fs/eulerfs/file.c
create mode 100644 fs/eulerfs/filename.h
create mode 100644 fs/eulerfs/flush.h
create mode 100644 fs/eulerfs/inode.c
create mode 100644 fs/eulerfs/inode.h
create mode 100644 fs/eulerfs/kmem_cache.c
create mode 100644 fs/eulerfs/kmem_cache.h
create mode 100644 fs/eulerfs/lock.h
create mode 100644 fs/eulerfs/namei.c
create mode 100644 fs/eulerfs/nvalloc.c
create mode 100644 fs/eulerfs/nvalloc.h
create mode 100644 fs/eulerfs/nvm_struct.h
create mode 100644 fs/eulerfs/pbatch.h
create mode 100644 fs/eulerfs/super.c
create mode 100644 fs/eulerfs/symlink.c
create mode 100644 fs/eulerfs/wear.c
create mode 100644 fs/eulerfs/wear.h
--
2.20.1