[GH-ISSUE #273] 请问hf3fs_prep_io时使用的IoRing实例是怎么和FuseClients::watch中使用的IoRing实例一一对应的? #166

Closed
opened 2026-10-26 09:46:30 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @izxl007 on GitHub (May 13, 2025).
Original GitHub issue: https://github.com/deepseek-ai/3FS/issues/273

应用进程调用hf3fs_iorcreate4创建IoRing实例,然后调用hf3fs_prep_io把sqe添加到IoRing实例中,最后调用hf3fs_submit_ios发送信号量通知FuseClients::watch线程处理IoRing中的sqe。但是FuseClients::watch函数查找IoRing实例时,只是通过比较优先级来取IoRing实例。相关代码如下:
... if (ior && ior->priority == prio) { auto jobs = ior->jobsToProc(config->max_jobs_per_ioring()); for (auto &&job : jobs) { gotJobs = true; iojqs[prio]->enqueue(std::move(job)); } } ....
想请问下,hf3fs_prep_io时使用的IoRing实例是怎么和FuseClients::watch中使用的IoRing实例一一对应的?

Originally created by @izxl007 on GitHub (May 13, 2025). Original GitHub issue: https://github.com/deepseek-ai/3FS/issues/273 应用进程调用hf3fs_iorcreate4创建IoRing实例,然后调用hf3fs_prep_io把sqe添加到IoRing实例中,最后调用hf3fs_submit_ios发送信号量通知FuseClients::watch线程处理IoRing中的sqe。但是FuseClients::watch函数查找IoRing实例时,只是通过比较优先级来取IoRing实例。相关代码如下: ` ... if (ior && ior->priority == prio) { auto jobs = ior->jobsToProc(config->max_jobs_per_ioring()); for (auto &&job : jobs) { gotJobs = true; iojqs[prio]->enqueue(std::move(job)); } } .... ` 想请问下,hf3fs_prep_io时使用的IoRing实例是怎么和FuseClients::watch中使用的IoRing实例一一对应的?
Author
Owner

@izxl007 commented on GitHub (May 13, 2025):

@SF-Zhou

<!-- gh-comment-id:2875369080 --> @izxl007 commented on GitHub (May 13, 2025): @SF-Zhou
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/3FS#166
No description provided.