Messages in this thread | | | Date | Wed, 28 Sep 2022 15:08:47 +0100 | Subject | Re: [PATCH] x86/resctrl: Clear the staged configs when destroying schemata list | From | James Morse <> |
| |
Hi Reinette,
On 27/09/2022 22:21, Reinette Chatre wrote: > On 9/27/2022 6:06 AM, James Morse wrote: >> On 27/09/2022 03:54, Shawn Wang wrote:
>>> The problem can be reproduced by the following commands: >>> # A system with 16 usable closids and mba disabled >>> mount -t resctrl resctrl -o cdp /sys/fs/resctrl >>> mkdir /sys/fs/resctrl/p{1..7} >>> umount /sys/fs/resctrl/ >>> mount -t resctrl resctrl /sys/fs/resctrl >>> mkdir /sys/fs/resctrl/p{1..8} >> >> Thanks for the reproducer - but I don't see what could set have_new_ctrl in this sequence. >> You can't call apply_config() to set CPUs in the mask without that being set. >> >> Creating a new control group, (your mkdir step) shouldn't touch the hardware at all, as it >> should be left in its reset state from the last umount(), or setup. > > There is an attempt to configure the hardware in the mkdir path: > rdtgroup_mkdir()->rdtgroup_mkdir_ctrl_mon()->rdtgroup_init_alloc()->resctrl_arch_update_domains()
Aha! I'm not sure why my grepping around didn't find this.
This is a path that doesn't memset() the staged config first, so that explains it.
[..]
> What do you think about clearing the staged config within resctrl_arch_update_domains() > after the configuration is complete and there is no more need for it? That may reduce > complexity where each caller no longer need to remember to do so. > I see "staged_config" as a temporary storage and it my help to understand the code better > if it is treated as such.
Yup, that would it with the idea of the value being consumed by resctrl_arch_update_domains(), which is how I think of it.
Thanks,
James
| |