-
Notifications
You must be signed in to change notification settings - Fork 6
fuse: multi-node mmap support #7
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
fuse: multi-node mmap support #7
Conversation
unsigned int no_mkwrite:1; | ||
|
||
/* Use io_uring for communication */ | ||
unsigned int io_uring; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting, needs to be switched to io_uring:1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(unrelated, but had slipped through so far)
Disadvantage of this way is that we get a PAGE_MKWRITE for every page - that will be expensive. |
Needs a "Signed-off-by" |
e77b0a5
to
b6ebff1
Compare
b6ebff1
to
989869f
Compare
989869f
to
af8a424
Compare
@cding-ddn I can't merge, there are conflicts. I think the 1st patch in the series is already merged. |
Renumber the operation code to a high value to avoid conflicts with upstream.
Send a DLM_WB_LOCK request in the page_mkwrite handler to enable FUSE filesystems to acquire a distributed lock manager (DLM) lock for protecting upcoming dirty pages when a previously read-only mapped page is about to be written. Signed-off-by: Cheng Ding <[email protected]>
Allow read_folio to return EAGAIN error and translate it to AOP_TRUNCATE_PAGE to retry page fault and read operations. This is used to prevent deadlock of folio lock/DLM lock order reversal: - Fault or read operations acquire folio lock first, then DLM lock. - FUSE daemon blocks new DLM lock acquisition while it invalidating page cache. invalidate_inode_pages2_range() acquires folio lock To prevent deadlock, the FUSE daemon will fail its DLM lock acquisition with EAGAIN if it detects an in-flight page cache invalidating operation. Signed-off-by: Cheng Ding <[email protected]>
af8a424
to
8ecf118
Compare
@bernd, I did a rebase, it can be merged now |
Add PAGE_MKWRITE fuse request to allow FUSE daemon to acquire DLM lock for protecting dirty page creation.
Allow read_folio to return EAGAIN error and translate it to AOP_TRUNCATE_PAGE to retry page fault and read operations. This is used to prevent deadlock of folio lock/DLM lock order reversal:
This enables memory mapping across cluster nodes with proper distributed locking coordination.