Skip to content

ceph: persistent caching with fscache

Milosz Tanski ceph-devel linux-fsdevel linux-nfs lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest5 patches 15 repliesIn review
  2. v13 patches 2 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5new cachefiles interface to check cache consistencyfs/cachefiles/interface.c fs/cachefiles/internal.h fs/cachefiles/xattr.c+59 -00 replies
2/5new fscache interface to check cache consistencyfs/fscache/cookie.c include/linux/fscache-cache.h include/linux/fscache.h+43 -07 replies
3/5ceph: use fscache as a local presisent cachefs/ceph/Kconfig fs/ceph/Makefile fs/ceph/addr.c +7 more+636 -121 reply
4/5fscache: netfs function for cleanup post readpagesfs/fscache/page.c include/linux/fscache.h+38 -01 reply
5/5ceph: clean PgPrivate2 on returning from readpagesfs/ceph/addr.c fs/ceph/cache.h+9 -00 replies

Reviews trailers per patch

None of the 5 patches has a Reviewed-by or Acked-by.

PatchMilosz Tanski
1/5T-b
2/5T-b
3/5
4/5
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCHv4 0/5] ceph: persistent caching with fscache

This an updated version of the fscache support for the Ceph filesystem. What's changed since the last patchset:

1. Sparater the readpages refactor into it's own patches. These were already accepted into the testing branch.

2. Tracked down the BUG in readahead cleanup code. We were returning with pages marked as private_2 from readpages(). I added a simple convenience function to the fscache netfs interface for cleaning up the page list at the end of asop readpages(). I know other filesystems (NFS) have ran into that since I've seen a few similar traces in Google search and the cachefs mailig list. The second patch new make Ceph use this interface.

I've been running this code (minus the BUG fix) on clients for a couple weeks with moderate 24/7 use without issues. At this point in time I feel like it's solid enough to go into the ceph kclient.

Please pull the code from my repository:
https://bitbucket.org/adfin/linux-fs.git branch: wip-ceph-fscache

The first two patches I included were not written by me but were written by Hongyi Jia. He implemented the cookie re-validation scheme into fscache core.

Finally, I CCed a couple other mailing lists (fsdevel, nfs) because the new fscache_readpages_cancel() should be used by other filesystems to avoid the same problem.

Hongyi Jia (2):
new cachefiles interface to check cache consistency new fscache interface to check cache consistency

Milosz Tanski (3):
ceph: use fscache as a local presisent cache
fscache: netfs function for cleanup post readpages
ceph: clean PgPrivate2 on returning from readpages

 fs/cachefiles/interface.c     |  19 +++
 fs/cachefiles/internal.h      |   1 +
 fs/cachefiles/xattr.c         |  39 ++++++
 fs/ceph/Kconfig               |   9 ++
 fs/ceph/Makefile              |   2 +
 fs/ceph/addr.c                |  39 +++++-
 fs/ceph/cache.c               | 311 ++++++++++++++++++++++++++++++++++++++++++
 fs/ceph/cache.h               | 130 ++++++++++++++++++
 fs/ceph/caps.c                |  19 ++-
 fs/ceph/file.c                |  17 +++
 fs/ceph/inode.c               |  66 ++++++++-
 fs/ceph/super.c               |  47 ++++++-
 fs/ceph/super.h               |  17 +++
 fs/fscache/cookie.c           |  22 +++
 fs/fscache/page.c             |  16 +++
 include/linux/fscache-cache.h |   4 +
 include/linux/fscache.h       |  39 ++++++
 17 files changed, 785 insertions(+), 12 deletions(-)
 create mode 100644 fs/ceph/cache.c
 create mode 100644 fs/ceph/cache.h
Signature · 1 line
1.8.1.2