-
Notifications
You must be signed in to change notification settings - Fork 551
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
Clarify Intel RDT configuration #1196
base: main
Are you sure you want to change the base?
Conversation
Does this change require a change in runc behavior? |
Yes it does... I don't think runc filters the |
I have looked at the major container runtime implementations, and only runc is affected. It would be good to have @AkihiroSuda, @kolyshkin, and @cyphar review this. @giuseppe |
correct, it is not implemented in crun |
@giuseppe Thanks for your quick response 🙏 |
Thanks for looking at this! I implemented the required runc changes now (in a linked PR). |
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.
LGTM
This is kind of weird. Runtime is not a tool to groom configs. Why don't we just require that if both |
Alternatively, if the kernel is OK with getting multiple |
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.
have a question about the requirement of filtering out MB:
entries from l3CacheSchema
.
TBH I'm not sure why this is written the way it is now, but I think this may be due to originally L3 cache being the only supported resource (see opencontainers/runc#433). The reason for My target with this PR was to clarify the spec from the implementation point of view, but I fully agree that removing the filtering would make things simpler. I would however lean more towards your first option (erroring out if there are conflicting values). Having the "silent override" would probably confuse users and cause hard-to-debug bugs. Erroring out in case of conflict would be a breaking change though -- I don't know if there are any workloads which currently set |
I think this should actually be true |
The thinking is that the runtimes should not do the filtering of values, but instead just apply the values in order. This way the possible MB-lines in l3CacheSchema will become overwritten by memBwSchema values (if the domains overlap). Note that we can't just concatenate the values because kernel will error out if the same domain is attempted to be set multiple times within one write() call. Signed-off-by: Ismo Puustinen <[email protected]>
Signed-off-by: Ismo Puustinen <[email protected]>
82966c0
to
a4fca5d
Compare
@kolyshkin @marquiz I now updated the PR to say that the schemata changes should be applied in order. This is in line with the -"natural override" proposal and also maybe what the user has in mind. This will be a breaking change however, because now we don't filter anything out. If the MB domains set in |
@ipuustin looking at this now, I'm inclined against a breaking change in the spec. Even though I don't think any runtime actually implements the filtering of data. But LGTM for the additions about directory removal Related: with a "leave the old mess behind" mentality, I submitted PR #1230. |
@kolyshkin PTAL |
First change: make it explicit when
l3CacheSchema
should have lines withMB:
prefix filtered out. Previously it was unclear if this should be done always or only ifmemBwSchema
did exist.Second change: clarify when the subdirectory needs to be removed after the container is finished (not sure if the config spec is the best place for this?).