Skip to content
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

[6.6] bcache IO hinting updates #32

Draft
wants to merge 3 commits into
base: base-6.6
Choose a base branch
from
Draft

Conversation

kakra
Copy link
Owner

@kakra kakra commented Nov 26, 2023

Export patch series: https://github.com/kakra/linux/pull/32.patch

  • based on an idea by Eric Wheeler
  • low priority IO requests bypass the cache to reduce SSD wear from backups and maintenance jobs

Eric Wheeler and others added 3 commits November 19, 2023 19:51
…ack hints

Add sysfs entries to support to hint for bypass/writeback by the ioprio
assigned to the bio.  If the bio is unassigned, use current's io-context
ioprio for cache writeback or bypass (configured per-process with
`ionice`).

Having idle IOs bypass the cache can increase performance elsewhere
since you probably don't care about their performance.  In addition,
this prevents idle IOs from promoting into (polluting) your cache and
evicting blocks that are more important elsewhere.

If you really nead the performance at the expense of SSD wearout,
then configure ioprio_writeback and set your `ionice` appropriately.

For example:
	echo 2,7 > /sys/block/bcache0/bcache/ioprio_bypass
	echo 2,0 > /sys/block/bcache0/bcache/ioprio_writeback

See the documentation commit for details.

v2: Removed calls to get_task_io_context()

Signed-off-by: Eric Wheeler <[email protected]>
Acked-by: Kent Overstreet <[email protected]>
Tested-by: Kai Krakow <[email protected]>
Cc: [email protected]
Signed-off-by: Kai Krakow <[email protected]>
v2: get_task_io_context() no longer exists in the kernel

Signed-off-by: Eric Wheeler <[email protected]>
Signed-off-by: Kai Krakow <[email protected]>
Even if ioprio_bypass hints bypassing the request, we still allow it
for REQ_META|REQ_PRIO bio.

Cc: Eric Wheeler <[email protected]>
Signed-off-by: Kai Krakow <[email protected]>
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.

1 participant