[RFC 12/16] NOVA: Recovery code

2017-08-03 Thread Steven Swanson
completes, the file system is ready to accept new requests. During the same scan, it rebuilds the snapshot information and the list available inodes. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/bbuild.c | 1602 + f

[RFC 15/16] NOVA: Performance measurement

2017-08-03 Thread Steven Swanson
Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/perf.c | 594 fs/nova/perf.h | 96 fs/nova/stats.c | 685 +++ fs/nova/stats.h | 218 ++ 4

[RFC 13/16] NOVA: Sysfs and ioctl

2017-08-03 Thread Steven Swanson
Nova provides the normal ioctls for setting file attributes and provides a /proc-based interface for taking snapshots. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/ioctl.c | 185 +++ fs/nova/sysfs.c

[RFC 10/16] NOVA: File data protection

2017-08-03 Thread Steven Swanson
. There is probably a better approach to achieving this goal. The changes to nd_pmem are included in a later patch in this series. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/checksum.c | 912 fs/nova/mprotect.c

[RFC 07/16] NOVA: File and directory operations

2017-08-03 Thread Steven Swanson
the file or directory is opened by scanning its log. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/dir.c | 760 +++ fs/nova/file.c| 943 + fs/nova/namei.c

[RFC 08/16] NOVA: Garbage collection

2017-08-03 Thread Steven Swanson
| V | +---+ +---+ | I | fast GC | I | +---+ > +---+ | I | | I | +---+ +---+ | I | | V | +---+ +---+ | V +---+ | V | +---+ | I | +---+ | I | +---+ | V | +---+ Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova

[RFC 09/16] NOVA: DAX code

2017-08-03 Thread Steven Swanson
NOVA leverages the kernel's DAX mechanisms for mmap and file data access. Nova maintains a red-black tree in DRAM (nova_inode_info_header.vma_tree) to track which portions of a file have been mapped. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/dax.c

[RFC 11/16] NOVA: Snapshot support

2017-08-03 Thread Steven Swanson
ead |-->| write | write | | | | entry | entry | | | +++ +--+ |... | +--+ ++ | cpu 128 | | snap | | head |-->| inode | | | | entry | | | +----+ +------+ Signed-off-by: Ste

[RFC 01/16] NOVA: Documentation

2017-08-03 Thread Steven Swanson
(http://cseweb.ucsd.edu/~swanson/papers/FAST2016NOVA.pdf) Hardening the NOVA File System (http://cseweb.ucsd.edu/~swanson/papers/TechReport2017HardenedNOVA.pdf) Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- Documentation/filesystems/00-INDEX |2 Documentation/files

[RFC 14/16] NOVA: Read-only pmem devices

2017-08-03 Thread Steven Swanson
Add (and implement) a module command line option to nd_pmem to support read-only pmem devices. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- arch/x86/include/asm/io.h |1 + arch/x86/mm/ioremap.c | 25 ++--- drivers/nvdimm/pmem.c

[RFC 02/16] NOVA: Superblock and fs layout

2017-08-03 Thread Steven Swanson
. These include reserved inodes, a table of pointers to the journals Nova uses for complex operations, and pointers to inodes tables. Nova maintains replicas of the super block and reserved inodes in the last two blocks of the PMEM area. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- f

[RFC 04/16] NOVA: Inode operations and structures

2017-08-03 Thread Steven Swanson
numbers. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/inode.c | 1467 +++ fs/nova/inode.h | 389 +++ 2 files changed, 1856 insertions(+) create mode 100644 fs/nova/inode.c create mode 100644 fs/nova/inode.h

[RFC 05/16] NOVA: Log data structures and operations

2017-08-03 Thread Steven Swanson
| | metadata | | -> next block | ++ Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/log.c | 1411 + fs/nova/log.h | 333 + 2 files changed, 1744 insertions(+) create mode

[RFC 06/16] NOVA: Lite-weight journaling for complex ops

2017-08-03 Thread Steven Swanson
near the beginning of the file system. During recovery, Nova scans the journals and undoes the operations described by each entry. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/journal.c | 474 + fs/nova/journal.h

[RFC 03/16] NOVA: PMEM allocation system

2017-08-03 Thread Steven Swanson
to provide some control over where the blocks come from. Nova uses this to allocate replicas of metadata far from one another. Signed-off-by: Steven Swanson <swan...@cs.ucsd.edu> --- fs/nova/balloc.c | 827 ++ fs/nova/balloc.h | 118 2

[RFC 00/16] NOVA: a new file system for persistent memory

2017-08-03 Thread Steven Swanson
in NOVA's design. NOVA was developed at the Non-Volatile Systems Laboratory in the Computer Science and Engineering Department at the University of California, San Diego. Its primary authors are Andiry Xu <jix...@eng.ucsd.edu>, Lu Zhang <l...@eng.ucsd.edu>, and Steven Swanson <swan...@eng.u

Persistent Programming in Real Life (PIRL) Call for Presentations

2019-06-06 Thread Steven Swanson
the evening of July 21st. Pre-registration is open ( https://www.eventbrite.com/e/pirl-registration-62219498194) and will be $400. Space is limited. If you have any questions, please contact Steven Swanson ( swan...@cs.ucsd.edu). Organizing Committee Steven Swanson (UCSD) Jim Fister (SNIA) Andy Rudoff

Call for participation: Persistent Programming In Real Life

2019-06-23 Thread Steven Swanson
. There will be lots of time for informal discussion and networking. Early registration ends July 10th. If you have any questions, please contact Steven Swanson (swan...@cs.ucsd.edu). Organizing Committee Steven Swanson (UCSD) Jim Fister (SNIA) Andy Rudoff (Intel) Jishen Zhao (UCSD) Joe Izraelevitz (UCSD