linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv4 0/5] ceph: persistent caching with fscache
@ 2013-08-21 21:26 Milosz Tanski
  2013-08-22  5:05 ` Sage Weil
  2013-09-04 15:49 ` David Howells
  0 siblings, 2 replies; 7+ messages in thread
From: Milosz Tanski @ 2013-08-21 21:26 UTC (permalink / raw)
  To: ceph-devel
  Cc: sage, zheng.z.yan, dhowells, linux-cachefs, linux-fsdevel,
	linux-kernel, linux-nfs

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

-- 
1.8.1.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-08-21 21:26 [PATCHv4 0/5] ceph: persistent caching with fscache Milosz Tanski
@ 2013-08-22  5:05 ` Sage Weil
  2013-08-22 12:58   ` Milosz Tanski
  2013-09-04 15:49 ` David Howells
  1 sibling, 1 reply; 7+ messages in thread
From: Sage Weil @ 2013-08-22  5:05 UTC (permalink / raw)
  To: dhowells, Milosz Tanski
  Cc: ceph-devel, zheng.z.yan, linux-cachefs, linux-fsdevel,
	linux-kernel, linux-nfs

Hi Milosz,

I've pulled this into the ceph testing branch to make sure it holds up 
in qa.

David, are the fscache patches here ready for the next merge window?  Do 
you have a preference for whose tree they go through?

Thanks!
sage


On Wed, 21 Aug 2013, Milosz Tanski wrote:

> 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
> 
> -- 
> 1.8.1.2
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-08-22  5:05 ` Sage Weil
@ 2013-08-22 12:58   ` Milosz Tanski
  0 siblings, 0 replies; 7+ messages in thread
From: Milosz Tanski @ 2013-08-22 12:58 UTC (permalink / raw)
  To: Sage Weil
  Cc: David Howells, ceph-devel, Yan, Zheng, linux-cachefs@redhat.com,
	linux-fsdevel@vger.kernel.org, linux-kernel, linux-nfs

Sage,

Thanks. If you run into any problems please let me know and I'll
resolve them quick and I'll make sure I'm watching the qa mailing
list.

- Milosz

On Thu, Aug 22, 2013 at 1:05 AM, Sage Weil <sage@inktank.com> wrote:
> Hi Milosz,
>
> I've pulled this into the ceph testing branch to make sure it holds up
> in qa.
>
> David, are the fscache patches here ready for the next merge window?  Do
> you have a preference for whose tree they go through?
>
> Thanks!
> sage
>
>
> On Wed, 21 Aug 2013, Milosz Tanski wrote:
>
>> 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
>>
>> --
>> 1.8.1.2
>>
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-08-21 21:26 [PATCHv4 0/5] ceph: persistent caching with fscache Milosz Tanski
  2013-08-22  5:05 ` Sage Weil
@ 2013-09-04 15:49 ` David Howells
  2013-09-04 15:54   ` Sage Weil
  1 sibling, 1 reply; 7+ messages in thread
From: David Howells @ 2013-09-04 15:49 UTC (permalink / raw)
  To: Sage Weil
  Cc: dhowells, Milosz Tanski, ceph-devel, zheng.z.yan, linux-cachefs,
	linux-fsdevel, linux-kernel, linux-nfs

Sage Weil <sage@inktank.com> wrote:

> David, are the fscache patches here ready for the next merge window?  Do 
> you have a preference for whose tree they go through?

There's only one problem - patch 1 needs to come _after_ patch 2 to avoid
breaking git bisect.  Plus these patches 2 and 4 extend the fscache API
without adjusting the documentation - but that can be added later.

And I think Milosz deserves a beer (or other poison of his choice;-) for
finding a longstanding irritating bug.

I think AFS, CIFS, NFS and 9P all need patching too, but I can attend to that.

Should I take the patches through my tree?  Then I can make the adjustments.

David

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-09-04 15:49 ` David Howells
@ 2013-09-04 15:54   ` Sage Weil
  2013-09-04 16:25     ` Sage Weil
  2013-09-05 12:34     ` David Howells
  0 siblings, 2 replies; 7+ messages in thread
From: Sage Weil @ 2013-09-04 15:54 UTC (permalink / raw)
  To: David Howells
  Cc: Milosz Tanski, ceph-devel, zheng.z.yan, linux-cachefs,
	linux-fsdevel, linux-kernel, linux-nfs

Hi David!

On Wed, 4 Sep 2013, David Howells wrote:
> Sage Weil <sage@inktank.com> wrote:
> 
> > David, are the fscache patches here ready for the next merge window?  Do 
> > you have a preference for whose tree they go through?
> 
> There's only one problem - patch 1 needs to come _after_ patch 2 to avoid
> breaking git bisect.  Plus these patches 2 and 4 extend the fscache API
> without adjusting the documentation - but that can be added later.
> 
> And I think Milosz deserves a beer (or other poison of his choice;-) for
> finding a longstanding irritating bug.
> 
> I think AFS, CIFS, NFS and 9P all need patching too, but I can attend to that.
> 
> Should I take the patches through my tree?  Then I can make the adjustments.

Sure.  Do you want the Ceph patches as well, or just the fscache bits?  
I'll repost the latest version, as it's gotten several fixes squashed in.

Thanks!
sage

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-09-04 15:54   ` Sage Weil
@ 2013-09-04 16:25     ` Sage Weil
  2013-09-05 12:34     ` David Howells
  1 sibling, 0 replies; 7+ messages in thread
From: Sage Weil @ 2013-09-04 16:25 UTC (permalink / raw)
  To: David Howells
  Cc: Milosz Tanski, ceph-devel, zheng.z.yan, linux-cachefs,
	linux-fsdevel, linux-kernel, linux-nfs

On Wed, 4 Sep 2013, Sage Weil wrote:
> Hi David!
> 
> On Wed, 4 Sep 2013, David Howells wrote:
> > Sage Weil <sage@inktank.com> wrote:
> > 
> > > David, are the fscache patches here ready for the next merge window?  Do 
> > > you have a preference for whose tree they go through?
> > 
> > There's only one problem - patch 1 needs to come _after_ patch 2 to avoid
> > breaking git bisect.  Plus these patches 2 and 4 extend the fscache API
> > without adjusting the documentation - but that can be added later.
> > 
> > And I think Milosz deserves a beer (or other poison of his choice;-) for
> > finding a longstanding irritating bug.
> > 
> > I think AFS, CIFS, NFS and 9P all need patching too, but I can attend to that.
> > 
> > Should I take the patches through my tree?  Then I can make the adjustments.
> 
> Sure.  Do you want the Ceph patches as well, or just the fscache bits?  
> I'll repost the latest version, as it's gotten several fixes squashed in.

The full series is here:

 git://github.com/ceph/ceph-client wip-fscache
 https://github.com/ceph/ceph-client/commits/wip-fscache

Thanks!
sage

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCHv4 0/5] ceph: persistent caching with fscache
  2013-09-04 15:54   ` Sage Weil
  2013-09-04 16:25     ` Sage Weil
@ 2013-09-05 12:34     ` David Howells
  1 sibling, 0 replies; 7+ messages in thread
From: David Howells @ 2013-09-05 12:34 UTC (permalink / raw)
  To: Sage Weil
  Cc: dhowells, Milosz Tanski, ceph-devel, zheng.z.yan, linux-cachefs,
	linux-fsdevel, linux-kernel, linux-nfs


I've pushed the non-Ceph bits of the bad-page fix to here:

	http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=fscache

and added a CIFS fix.

David

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-05 12:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-21 21:26 [PATCHv4 0/5] ceph: persistent caching with fscache Milosz Tanski
2013-08-22  5:05 ` Sage Weil
2013-08-22 12:58   ` Milosz Tanski
2013-09-04 15:49 ` David Howells
2013-09-04 15:54   ` Sage Weil
2013-09-04 16:25     ` Sage Weil
2013-09-05 12:34     ` David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).