change ARC primarycache away from all
for crucible datasets
#4297
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently untested - creating the draft now to see if CI is ok with it.
oxidecomputer/crucible#692
Logic is caching block data downstairs doesn't make sense. 3x downstairs means 3x cache of the same data, taking memory away from other usecases. It's on the other side of a network link so what is that cache really getting, if anything. Plus, the guest VM will have its own block cache. Want more block cache? Give the VM more ram.
Right now I'm threading config in from the very stop of when the
DatasetRequests
s are created insled-agent/src/rack_setup/plan/service.rs
. We could instead make this attribute be dependent on theDatasetKind
, so that the code which does the final bridging from the sled-agent layer down through the lower "running zfs commands" layer is the only part that changes.Doing it at the level my current code does feels like it might be digging some low-level stuff too high in the stack. On the other hand, if any other service datasets want to make this change later, it's very clear how to do it. I don't have strong feelings here, happy to leave as-is or change things around.