-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Comments
I haven't looked very closely yet. But the main change is making inode_lock
an rwsem, which is handled in vfs. So we should be able to support this
without much change.
|
@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. |
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. |
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
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
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
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
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
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
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.
The text was updated successfully, but these errors were encountered: