Re: [PATCH v8 6/8] x86/resctrl: Move default group file creation to mount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Reinette,

On 8/30/23 15:00, Reinette Chatre wrote:
> Hi Babu,
> 
> On 8/30/2023 12:50 PM, Moger, Babu wrote:
>> Hi Reinette,
>>
>> On 8/29/23 15:11, Reinette Chatre wrote:
>>> Hi Babu,
>>>
>>> On 8/21/2023 4:30 PM, Babu Moger wrote:
>>>> The default resource group and its files are created during kernel
>>>> init time. Upcoming changes will make some resctrl files optional
>>>> based on a mount parameter. If optional files are to be added to the
>>>> default group based on the mount option, then each new file needs to
>>>> be created separately and call kernfs_activate() again.
>>>>
>>>> Create all files of the default resource group during resctrl
>>>> mount, destroyed during unmount, to avoid scattering resctrl
>>>> file addition across two separate code flows.
>>>>
>>>> Suggested-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>
>>>> Signed-off-by: Babu Moger <babu.moger@xxxxxxx>
>>>> ---
>>>>  arch/x86/kernel/cpu/resctrl/internal.h |  2 +
>>>>  arch/x86/kernel/cpu/resctrl/rdtgroup.c | 55 +++++++++++++++-----------
>>>>  2 files changed, 33 insertions(+), 24 deletions(-)
>>>>
>>>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
>>>> index b09e7abd1299..44ad98f8c7af 100644
>>>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>>>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>>>> @@ -611,5 +611,7 @@ void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
>>>>  void __init thread_throttle_mode_init(void);
>>>>  void __init mbm_config_rftype_init(const char *config);
>>>>  void rdt_staged_configs_clear(void);
>>>> +int rdtgroup_setup_root(struct rdt_fs_context *ctx);
>>>> +void rdtgroup_destroy_root(void);
>>>>  
>>>
>>> From what I can tell these functions are only used in rdtgroup.c.
>>> Can this export be avoided by just moving these functions within
>>> rdtgroup.c and making them static?
>>
>> Yes. It is used only in rdtgroup.c. We can make this static by adding the
>> prototypes of these function in the beginning of rdtgroup.c file to avoid
>> implicit declaration compiler errors.
> 
> Why not just place the functions earlier in rdtgroup.c so that they are
> located before all callers? 

Couple of problems with that.
1.  rdtgroup_setup_root needs the the definition of
rdtgroup_kf_syscall_ops which is defined later in the file.

Static struct kernfs_syscall_ops rdtgroup_kf_syscall_ops = {
         .mkdir          = rdtgroup_mkdir,
         .rmdir          = rdtgroup_rmdir,
         .rename         = rdtgroup_rename,
         .show_options   = rdtgroup_show_options,
};

2. rdtgroup_setup_root is called in rdt_get_tree which is defined earlier
in the file.

So, this needs re-arrange of all these functions. That is reason I made
these functions global. Thought it may be too much a change for this purpose.
-- 
Thanks
Babu Moger



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux