Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux 4.7 Parallel Filesystem Directory Handling Compatibility #4664

Closed
dracwyrm opened this issue May 18, 2016 · 4 comments
Closed

Linux 4.7 Parallel Filesystem Directory Handling Compatibility #4664

dracwyrm opened this issue May 18, 2016 · 4 comments
Labels
Type: Building Indicates an issue related to building binaries
Milestone

Comments

@dracwyrm
Copy link

There was a new commit that finally makes readdir parallel instead of serial. To use this, filesystems need to switch to "iterate_shared()" which only takes a read lock. More info in patch here:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7f427d3a6029331304f91ef4d7cf646f054216d2

Is this something ZFS can make use of?

Cheers.

@behlendorf behlendorf added the Type: Building Indicates an issue related to building binaries label May 18, 2016
@behlendorf behlendorf added this to the 0.7.0 milestone May 18, 2016
@behlendorf
Copy link
Contributor

@dracwyrm this is definitely something we're going to have to look at. These changes break the build for 4.7 kernels by making small changes to several interfaces we depend on. @tuxoko if you have the time it would be great if you could look at this.

@tuxoko
Copy link
Contributor

tuxoko commented May 18, 2016 via email

@behlendorf
Copy link
Contributor

@tuxoko I've only briefly looked a this myself but I did notice they also made a trivial change to the get xattr interface (again). I suspect you're right resolving this should be pretty straight forward, it'll just require a little bit of compatibility code.

@dracwyrm
Copy link
Author

Good to hear. Also of note, this doesn't necessarily speed up access as there is already caching done, so only special use cases will speed up. Like the Samba incident 10 years ago. Makes me wonder if it will speed up VM access.

ryao pushed a commit to ClusterHQ/zfs that referenced this issue Jun 7, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
nedbass pushed a commit to nedbass/zfs that referenced this issue Aug 26, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
nedbass pushed a commit to nedbass/zfs that referenced this issue Sep 3, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
nedbass pushed a commit to nedbass/zfs that referenced this issue Sep 5, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
nedbass pushed a commit to nedbass/zfs that referenced this issue Sep 5, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
tuxoko pushed a commit to tuxoko/zfs that referenced this issue Sep 8, 2016
Register iterate_shared if it exists so the kernel will used shared
lock and allowing concurrent readdir.

Also, use shared lock when doing llseek with SEEK_DATA or SEEK_HOLE
to allow concurrent seeking.

Signed-off-by: Chunwei Chen <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes openzfs#4664
Closes openzfs#4665
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

No branches or pull requests

3 participants