Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

bsbernd
Copy link
Collaborator

@bsbernd bsbernd commented Jun 25, 2025

No description provided.

bsbernd added 3 commits June 25, 2025 15:04
This is another preparation and will be used for decision
which queue to add a request to.
This is preparation for follow up commits that allow to run with a
reduced number of queues.

Signed-off-by: Bernd Schubert <[email protected]>
@bsbernd bsbernd requested review from hbirth and openunix June 25, 2025 21:41
Copy link
Collaborator

@jianhuangli jianhuangli left a comment

Choose a reason for hiding this comment

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

  • Then tries the first available queue on the
    current numa node

other numa nodes?

Copy link
Collaborator

@hbirth hbirth left a comment

Choose a reason for hiding this comment

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

LGTM

bsbernd added 2 commits June 26, 2025 11:46
So far queue selection was statically - the a request on core X
was always handled by the queue corresponding to core X.
A previous commit introduced bitmaps that track which queues
are available - queue selection can make use of these bitmaps
and try to use the ideal queue.

Rules are

- Tries the queue of the current core first, if available
and if that queue does not have too many entries queued

- Then tries the first available queue on the current
numa node. It does not use random distribution here,
because light queue usage is probably ok, so that
kernel/userspace switches can be avoided

- Then tries the first available global queue ignoring
numa nodes.

If no queue is free, it tries again the queue of the current
core, but if that queue does not exist it falls back
to a random queue on the current numa node - that also might
not exist - it then uses a random available queue.
Now that queue selection for fuse requests supports missing
queues we don't need to wait for full queue initialization.
In fact, fuse-server (daemon) might want to run with a reduced
number of queues, for example to reduce memory usage.
This also simplifies startup - after first queue entry
registration fuse-io-uring is ready to be used.

Signed-off-by: Bernd Schubert <[email protected]>
@bsbernd bsbernd force-pushed the redfs-ubuntu-noble-6.8.0-58.60-updates-reduce-queues branch from 2801d80 to d763efd Compare June 26, 2025 09:48
@bsbernd
Copy link
Collaborator Author

bsbernd commented Jun 26, 2025

@jianhuangli thank you, updated the commit message.

@bsbernd bsbernd requested a review from yongzech June 26, 2025 09:52
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.

3 participants