Skip to content

Add a fuser mount option to use FUSE_DEV_IOC_CLONE.#1587

Merged
adpeace merged 1 commit intoawslabs:fuser/forkfrom
adpeace:fuser/fork
Sep 10, 2025
Merged

Add a fuser mount option to use FUSE_DEV_IOC_CLONE.#1587
adpeace merged 1 commit intoawslabs:fuser/forkfrom
adpeace:fuser/fork

Conversation

@adpeace
Copy link
Contributor

@adpeace adpeace commented Aug 28, 2025

This mimics functionality from libfuse. When enabled, it will create a new file descriptor for each fuse thread by opening /dev/fuse again and using the FUSE_DEV_IOC_CLONE ioctl to associate the file handle with the original filesystem. The benefit of enabling this is that some of the processing queues in the kernel data structures are no longer shared, which theoretically reduces lock contention.

Does this change impact existing behavior?

No.

Does this change need a changelog entry? Does it require a version change?

No.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

@adpeace adpeace requested a review from passaro August 28, 2025 17:53
@adpeace adpeace marked this pull request as draft August 28, 2025 17:55
@adpeace
Copy link
Contributor Author

adpeace commented Aug 28, 2025

this built locally (and I tested the option worked correctly), need to look at what I did wrong, converted back to draft for now.

@adpeace adpeace force-pushed the fuser/fork branch 2 times, most recently from a63d1ac to 7e6dee0 Compare September 3, 2025 11:59
@adpeace adpeace marked this pull request as ready for review September 3, 2025 14:27
Copy link
Contributor

@passaro passaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Just one nitpick.

Copy link
Contributor

@passaro passaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requires a version change (0.1.1) before it can be picked up on main.

This mimics functionality from libfuse. When enabled, it will create a
new file descriptor for each fuse thread by opening /dev/fuse again and
using the FUSE_DEV_IOC_CLONE ioctl to associate the file handle with the
original filesystem.

Signed-off-by: Andrew Peace <[email protected]>
@adpeace adpeace merged commit e9df3a7 into awslabs:fuser/fork Sep 10, 2025
8 of 9 checks passed
@adpeace adpeace deleted the fuser/fork branch September 10, 2025 10:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants