Re: [PATCH v5 40/40] x86/resctrl: Add python script to move resctrl code to /fs/resctrl
From: James Morse
Date: Fri Feb 07 2025 - 10:56:06 EST
Hi Reinette, Tony,
On 24/10/2024 01:17, Reinette Chatre wrote:
> On 10/8/24 4:08 PM, Tony Luck wrote:
>> On Fri, Oct 04, 2024 at 06:03:47PM +0000, James Morse wrote:
>>> +functions_to_move = [
>>> + # common
>>> + "pr_fmt",
>>> +
>>> + # ctrlmon.c
>>> + "rdt_parse_data",
>>> + "(ctrlval_parser_t)",
>>> + "bw_validate",
>>> + "parse_bw",
>>> + "cbm_validate",
>>> + "parse_cbm",
>>> + "get_parser",
>>> + "parse_line",
>>> + "rdtgroup_parse_resource",
>>> + "rdtgroup_schemata_write",
>>> + "show_doms",
>>> + "rdtgroup_schemata_show",
>>> + "smp_mon_event_count",
>>> + "mon_event_read",
>>> + "rdtgroup_mondata_show",
>>> +
>>> + # internal.h
>>> + "MBM_OVERFLOW_INTERVAL",
>>> + "CQM_LIMBOCHECK_INTERVAL",
>>> + "cpumask_any_housekeeping",
>>> + "rdt_fs_context",
>>> + "rdt_fc2context",
>>> + "mon_evt",
>>> + "mon_data_bits",
>>> + "rmid_read",
>>> + "resctrl_schema_all",
>>> + "resctrl_mounted",
>>> + "rdt_group_type",
>>> + "rdtgrp_mode",
>>> + "mongroup",
>>> + "rdtgroup",
>>> + "RFTYPE_FLAGS_CPUS_LIST",
>>
>> Something goes wrong with moving the RFTYPE_* defines. A new copy
>> shows up in fs/resctrl/internal.h but the old copy isn't removed from
>> arch/x86/kernel/cpu/resctrl/internal.h
>>
> There seems to be a few more duplicates: RMID_VAL_ERROR, RMID_VAL_UNAVAIL,
> MBM_CNTR_WIDTH_OFFSET_MAX, RDT_DELETED.
I had a follow-up patch to remove those[0] - but I've fixed it in the script now.
These were mostly due to a missing else when spotting macro's that weren't multi-line.
RDT_DELETED was a good laugh - that has a tab after the #define, not a space - I stared at
that for a good while!
> Also please check the trace files after the move and related CFLAGS.
> arch/x86/kernel/cpu/resctrl/monitor_trace.h is just empty and the
> arch/x86/kernel/cpu/resctrl/Makefile still has the "CFLAGS_monitor.o = -I$(src)"
> Also please check fs/resctrl/pseudo_lock_trace.h
I'm afraid this last one is expected. There is a follow-up patch to remove the harmless
boiler plate that gets generated here:
https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot/v6.12-rc1&id=02cd8d6facc3d3a8984b260203d71cba9d2e462c
I could hack in something to delete the files - but it'd need to know something about C in
order to remove the #includes too - otherwise the result can't be built.
If this is a problem, we can ask whoever generates the 'final' version of the patch to
merge that follow-up in.
I'll add a list of these corner cases to the 'commit message'. (we shouldn't commit this!)
The additional corner case is the includes for 'asm' or relative paths that would break
the build on other architectures - but don't matter yet.
I couldn't include those patches in this series as they don't apply without posting the
generated patch ...
Thanks,
James
[0]
https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot/v6.12-rc1&id=2fada2eb99e2814984bbba9106a9695ef6d4b8b1