Project

General

Profile

Actions

Feature #41796

open

fs/ceph: add lazyio propagate/synchronize support

Added by Patrick Donnelly over 4 years ago. Updated over 3 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:

Description

I imagine this would be an ioctl of some kind.

Also, what are the feature/functionality gaps between ceph-fuse and the kclient on lazyio?


Related issues 1 (1 open0 closed)

Blocks CephFS - Bug #40284: kclient: evaluate/fix/add lazio support in the kernelNew

Actions
Actions #1

Updated by Jeff Layton over 4 years ago

How is lazyio_propagate different from fsync, or sync_file_range() syscall? Don't they do the same thing?

What should we do about metadata -- particularly, file size and mtime changes?

Trond M. had drafted some patches for the kernel NFS client at one point that gave similar control over the client-side cache. I don't believe they were ever merged, but perhaps we can repurpose the ioctls that he was using for this.

Actions #2

Updated by Patrick Donnelly over 4 years ago

Jeff Layton wrote:

How is lazyio_propagate different from fsync, or sync_file_range() syscall? Don't they do the same thing?

sync_file_range sounds like the same thing. However, I think there may be an implied page cache drop for the pages in that range too. I don't know and maybe no one really does. If you can't find a reason to add a separate propagate call to the kernel that isn't already satisfied by an existing interface, I'm okay with indefinitely holding the addition of the new syscall/ioctl. Or maybe just stub it an return ENOSYS or similar?

What should we do about metadata -- particularly, file size and mtime changes?

You're asking how synchronize should update file size/mtime? I'd ask Zheng.

Trond M. had drafted some patches for the kernel NFS client at one point that gave similar control over the client-side cache. I don't believe they were ever merged, but perhaps we can repurpose the ioctls that he was using for this.

Well these would be client initiated cache drops for particular inodes. We have also been interested in having the ceph-fuse client drop dentries/inodes/pages from the kernel cache but that's a separate problem although you might see how they're related in the code.

Actions #3

Updated by Patrick Donnelly over 3 years ago

  • Assignee deleted (Jeff Layton)
Actions #4

Updated by Patrick Donnelly over 3 years ago

  • Blocks Bug #40284: kclient: evaluate/fix/add lazio support in the kernel added
Actions

Also available in: Atom PDF