From ba0e4666185c40d8094f2af0d2f7e906f98d05d2 Mon Sep 17 00:00:00 2001 From: dongshen Date: Mon, 7 Sep 2020 14:56:31 -0700 Subject: [PATCH] acrn-config: move cpu affinity macro to misc_cfg_h.py so that vm_configurations.h/vm_configurations.c are consistent for different boards Tracked-On: #5229 Signed-off-by: dongshen --- misc/acrn-config/board_config/misc_cfg_h.py | 25 +++++++++++++++++++ .../scenario_config/vm_configurations_h.py | 25 ------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/misc/acrn-config/board_config/misc_cfg_h.py b/misc/acrn-config/board_config/misc_cfg_h.py index 2d3a1b167..131281430 100644 --- a/misc/acrn-config/board_config/misc_cfg_h.py +++ b/misc/acrn-config/board_config/misc_cfg_h.py @@ -149,6 +149,29 @@ def clos_per_vm_gen(config): print("#define VM{0}_VCPU_CLOS\t\t\t{1}".format(i, clos_config['clos_map']), file=config) +def cpu_affinity_output(cpu_bits, i, config): + + if "SOS_VM" == common.VM_TYPES[i]: + print("", file=config) + print("#define SOS_VM_CONFIG_CPU_AFFINITY {0}".format( + cpu_bits['cpu_map']), file=config) + else: + print("#define VM{0}_CONFIG_CPU_AFFINITY {1}".format( + i, cpu_bits['cpu_map']), file=config) + + +def cpu_affinity_per_vm_gen(config): + + cpus_per_vm = common.get_leaf_tag_map( + common.SCENARIO_INFO_FILE, "cpu_affinity", "pcpu_id") + + for vm_i,_ in common.VM_TYPES.items(): + cpu_bits = scenario_cfg_lib.cpus_assignment(cpus_per_vm, vm_i) + cpu_affinity_output(cpu_bits, vm_i, config) + + print("", file=config) + + def generate_file(config): """ Start to generate board.c @@ -251,6 +274,8 @@ def generate_file(config): sos_bootarg_diff(sos_cmdlines, config) print("", file=config) + cpu_affinity_per_vm_gen(config) + common_clos_max = board_cfg_lib.get_common_clos_max() max_mba_clos_entries = common_clos_max max_cache_clos_entries = common_clos_max diff --git a/misc/acrn-config/scenario_config/vm_configurations_h.py b/misc/acrn-config/scenario_config/vm_configurations_h.py index 5f2cca439..5dee8155f 100644 --- a/misc/acrn-config/scenario_config/vm_configurations_h.py +++ b/misc/acrn-config/scenario_config/vm_configurations_h.py @@ -23,24 +23,6 @@ def gen_common_header(config): print("{0}".format(VM_HEADER_DEFINE), file=config) -def cpu_affinity_output(vm_info, i, config): - """ - Output the macro pcpu affinity bitmap - :param vm_info: the data structure have all the xml items values - :param i: the index of vm id - :param config: file pointor to store the information - """ - - cpu_bits = vm_info.get_cpu_bitmap(i) - if "SOS_VM" == common.VM_TYPES[i]: - print("", file=config) - print("#define SOS_VM_CONFIG_CPU_AFFINITY {0}".format( - cpu_bits['cpu_map']), file=config) - else: - print("#define VM{0}_CONFIG_CPU_AFFINITY {1}".format( - i, cpu_bits['cpu_map']), file=config) - - def scenario_vm_num(scenario_items, config): print("", file=config) @@ -65,8 +47,6 @@ def gen_pre_launch_vm(scenario_items, config): vm_i += 1 continue - cpu_bits = vm_info.get_cpu_bitmap(vm_i) - cpu_affinity_output(vm_info, vm_i, config) print("#define VM{0}_CONFIG_MEM_START_HPA {1}UL".format( vm_i, vm_info.mem_info.mem_start_hpa[vm_i]), file=config) print("#define VM{0}_CONFIG_MEM_SIZE {1}UL".format( @@ -97,7 +77,6 @@ def gen_post_launch_header(scenario_items, config): continue is_post_vm_available = True - cpu_affinity_output(vm_info, vm_i, config) if vm_info.shmem.shmem_enabled == 'y' and vm_i in vm_info.shmem.shmem_num.keys(): print("#define VM{}_CONFIG_PCI_DEV_NUM {}U".format(vm_i, @@ -122,10 +101,6 @@ def gen_sos_header(scenario_items, config): print("\t\t\t\t\tSOS_IDLE\t\\", file=config) print("\t\t\t\t\tSOS_BOOTARGS_DIFF", file=config) - vm_info = scenario_items['vm'] - for vm_i,vm_type in common.VM_TYPES.items(): - if vm_type == 'SOS_VM': - cpu_affinity_output(vm_info, vm_i, config) print("", file=config)