-
- Downloads
pagecache: track ARC buffers in the pagecache
Current code assumes that for the same file and same offset ZFS will
always return same ARC buffer, but this appears to be not the case.
ZFS may create new ARC buffer while an old one is undergoing writeback.
It means that we need to track mapping between file/offset and mmapped
ARC buffer by ourselves. It's exactly what this patch is about. It adds
new kind of cached page that holds pointers to an ARC buffer and stores
them in new read_cache map.
Signed-off-by:
Gleb Natapov <gleb@cloudius-systems.com>
Showing
- bsd/porting/mmu.cc 2 additions, 2 deletionsbsd/porting/mmu.cc
- bsd/porting/mmu.h 1 addition, 1 deletionbsd/porting/mmu.h
- bsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c 1 addition, 1 deletionbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
- bsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c 7 additions, 8 deletionsbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
- bsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h 1 addition, 1 deletionbsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
- bsd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c 2 additions, 2 deletions...ys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
- core/pagecache.cc 186 additions, 146 deletionscore/pagecache.cc
- fs/vfs/vfs_fops.cc 7 additions, 10 deletionsfs/vfs/vfs_fops.cc
- include/osv/pagecache.hh 1 addition, 1 deletioninclude/osv/pagecache.hh
- include/osv/vfs_file.hh 4 additions, 1 deletioninclude/osv/vfs_file.hh
- include/osv/vnode.h 2 additions, 2 deletionsinclude/osv/vnode.h
Loading
Please register or sign in to comment