Skip to content

Commit c442f3f

Browse files
Wei Liuacrnsi
authored andcommitted
acrn-config: keep align with vcpu_affinity for vm config
The pcpu sharing for vm already enabled in master branch, acrn-config tool for generating scenario config souce file should keep align with master branch. 1. Add 'vcpu_affinity' tag and its vaule in config xml. 2. Parse the 'vcpu_affinity' tag of value from config xml for generating vcpu_affinity. v1-v2: 1). apl-up2-n3350 has two PCPUs, set appropriate value for vcpu_affinity. Tracked-On: #3798 Signed-off-by: Wei Liu <weix.w.liu@intel.com> Acked-by: Victor Sun <victor.sun@intel.com>
1 parent db909ed commit c442f3f

31 files changed

+261
-57
lines changed

misc/acrn-config/library/scenario_cfg_lib.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def get_processor_info(board_info):
114114
processor_info = get_info(board_info, "<CPU_PROCESSOR_INFO>", "</CPU_PROCESSOR_INFO>")
115115

116116
if not processor_info:
117-
key = "vm:id=0,pcpu_ids"
117+
key = "vm:id=0,vcpu_affinity"
118118
ERR_LIST[key] = "CPU core is not exists"
119119
return processor_list
120120

@@ -637,14 +637,14 @@ def cpus_assignment(cpus_per_vm, index):
637637
for i in range(len(cpus_per_vm[index])):
638638
if i == 0:
639639
if len(cpus_per_vm[index]) == 1:
640-
cpu_str = "(PLUG_CPU({0}))".format(cpus_per_vm[index][0])
640+
cpu_str = "{{AFFINITY_CPU({0}U)}}".format(cpus_per_vm[index][0])
641641
else:
642-
cpu_str = "(PLUG_CPU({0})".format(cpus_per_vm[index][0])
642+
cpu_str = "{{AFFINITY_CPU({0}U)".format(cpus_per_vm[index][0])
643643
else:
644644
if i == len(cpus_per_vm[index]) - 1:
645-
cpu_str = cpu_str + " | PLUG_CPU({0}))".format(cpus_per_vm[index][i])
645+
cpu_str = cpu_str + " , AFFINITY_CPU({0}U)}}".format(cpus_per_vm[index][i])
646646
else:
647-
cpu_str = cpu_str + " | PLUG_CPU({0})".format(cpus_per_vm[index][i])
647+
cpu_str = cpu_str + " , AFFINITY_CPU({0}U)".format(cpus_per_vm[index][i])
648648

649649
vm_cpu_bmp['cpu_map'] = cpu_str
650650
vm_cpu_bmp['cpu_num'] = len(cpus_per_vm[index])

misc/acrn-config/scenario_config/scenario_cfg_gen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def get_scenario_item_values(board_info, scenario_info):
3434
# pre scenario
3535
guest_flags = copy.deepcopy(scenario_cfg_lib.GUEST_FLAG)
3636
guest_flags.remove('0UL')
37-
scenario_item_values["vm,pcpu_ids"] = hw_info.get_processor_val()
37+
scenario_item_values["vm,vcpu_affinity"] = hw_info.get_processor_val()
3838
scenario_item_values["vm,guest_flags"] = guest_flags
3939
scenario_item_values["vm,clos"] = hw_info.get_clos_val()
4040
scenario_item_values["vm,os_config,kern_type"] = scenario_cfg_lib.KERN_TYPE_LIST

misc/acrn-config/scenario_config/scenario_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ def get_info(self):
280280
self.guest_flag_idx = scenario_cfg_lib.get_sub_leaf_tag(
281281
self.scenario_info, "guest_flags", "guest_flag")
282282
self.cpus_per_vm = scenario_cfg_lib.get_leaf_tag_map(
283-
self.scenario_info, "pcpu_ids", "pcpu_id")
283+
self.scenario_info, "vcpu_affinity", "pcpu_id")
284284
self.clos_set = scenario_cfg_lib.get_branch_tag_map(self.scenario_info, "clos")
285285
self.epc_section.get_info()
286286
self.mem_info.get_info()

misc/acrn-config/scenario_config/vm_configurations_c.py

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,20 @@ def is_need_epc(epc_section, i, config):
155155
print("\t\t},", file=config)
156156

157157

158+
def vcpu_affinity_output(vm_info, i, config):
159+
"""
160+
Output the vcpu affinity
161+
:param vminfo: the data structure have all the xml items values
162+
:param i: the index of vm id
163+
:param config: file pointor to store the information
164+
"""
165+
if vm_info.load_order[i] == "SOS_VM":
166+
return
167+
168+
cpu_bits = vm_info.get_cpu_bitmap(i)
169+
print("\t\t.vcpu_num = {}U,".format(cpu_bits['cpu_num']), file=config)
170+
print("\t\t.vcpu_affinity = VM{}_CONFIG_VCPU_AFFINITY,".format(i), file=config)
171+
158172
def get_guest_flag(flag_index):
159173
"""
160174
This is get flag index list
@@ -224,6 +238,7 @@ def gen_sdc_source(vm_info, config):
224238
print("\t\t/* Allow SOS to reboot the host since " +
225239
"there is supposed to be the highest severity guest */", file=config)
226240
print("\t\t.guest_flags = {0},".format(sos_guest_flags), file=config)
241+
vcpu_affinity_output(vm_info, 0, config)
227242
if vm_info.clos_set[0] == None or not vm_info.clos_set[0].strip():
228243
print("\t\t.clos = {0}U,".format(0), file=config)
229244
else:
@@ -249,6 +264,8 @@ def gen_sdc_source(vm_info, config):
249264
# UUID
250265
uuid_output(uuid_1, vm_info.uuid[1], config)
251266
is_need_epc(vm_info.epc_section, 1, config)
267+
print("\t\t.vcpu_num = CONFIG_MAX_PCPU_NUM - CONFIG_MAX_KATA_VM_NUM - 1U,", file=config)
268+
print("\t\t.vcpu_affinity = VM{}_CONFIG_VCPU_AFFINITY,".format(1), file=config)
252269
# VUART
253270
err_dic = vuart_output(1, vm_info, config)
254271
if err_dic:
@@ -258,6 +275,7 @@ def gen_sdc_source(vm_info, config):
258275
print("\t{", file=config)
259276
print("\t\t.load_order = POST_LAUNCHED_VM,", file=config)
260277
uuid_output(uuid_2, vm_info.uuid[2], config)
278+
vcpu_affinity_output(vm_info, 2, config)
261279
is_need_epc(vm_info.epc_section, 2, config)
262280
print("\t\t.vuart[0] = {", file=config)
263281
print("\t\t\t.type = VUART_LEGACY_PIO,", file=config)
@@ -304,6 +322,7 @@ def gen_sdc2_source(vm_info, config):
304322
print("\t\t/* Allow SOS to reboot the host since " +
305323
"there is supposed to be the highest severity guest */", file=config)
306324
print("\t\t.guest_flags = {0},".format(sos_guest_flags), file=config)
325+
vcpu_affinity_output(vm_info, 0, config)
307326
if vm_info.clos_set[0] == None or not vm_info.clos_set[0].strip():
308327
print("\t\t.clos = {0}U,".format(0), file=config)
309328
else:
@@ -329,6 +348,7 @@ def gen_sdc2_source(vm_info, config):
329348
print("\t\t.load_order = {0},".format(vm_info.load_order[1]), file=config)
330349
# UUID
331350
uuid_output(uuid_1, vm_info.uuid[1], config)
351+
vcpu_affinity_output(vm_info, 1, config)
332352
is_need_epc(vm_info.epc_section, 1, config)
333353
# VUART
334354
err_dic = vuart_output(1, vm_info, config)
@@ -340,6 +360,7 @@ def gen_sdc2_source(vm_info, config):
340360
print("\t\t.load_order = {0},".format(vm_info.load_order[1]), file=config)
341361
# UUID
342362
uuid_output(uuid_2, vm_info.uuid[2], config)
363+
vcpu_affinity_output(vm_info, 2, config)
343364
is_need_epc(vm_info.epc_section, 2, config)
344365
# VUART
345366
err_dic = vuart_output(1, vm_info, config)
@@ -352,6 +373,7 @@ def gen_sdc2_source(vm_info, config):
352373
print("\t\t.load_order = POST_LAUNCHED_VM,", file=config)
353374
uuid_output(uuid_3, vm_info.uuid[3], config)
354375
is_need_epc(vm_info.epc_section, 3, config)
376+
vcpu_affinity_output(vm_info, 3, config)
355377
print("\t\t.vuart[0] = {", file=config)
356378
print("\t\t\t.type = VUART_LEGACY_PIO,", file=config)
357379
print("\t\t\t.addr.port_base = INVALID_COM_BASE,", file=config)
@@ -412,7 +434,7 @@ def gen_logical_partition_source(vm_info, config):
412434
print('\t\t.name = "{0}",'.format(vm_info.name[i]), file=config)
413435
# UUID
414436
uuid_output(uuid, vm_info.uuid[i], config)
415-
print("\t\t.pcpu_bitmap = VM{0}_CONFIG_PCPU_BITMAP,".format(i), file=config)
437+
vcpu_affinity_output(vm_info, i, config)
416438
# skip the vm0 for guest flag
417439

418440
# guest flags
@@ -480,6 +502,10 @@ def gen_industry_source(vm_info, config):
480502
return err_dic
481503
print("\t\t")
482504
print("\t\t.guest_flags = {0},".format(sos_guest_flags), file=config)
505+
506+
vcpu_affinity_output(vm_info, i, config)
507+
508+
if i == 0:
483509
if vm_info.clos_set[i] == None or not vm_info.clos_set[i].strip():
484510
print("\t\t.clos = {0}U,".format(0), file=config)
485511
else:
@@ -544,8 +570,10 @@ def gen_hybrid_source(vm_info, config):
544570
if err_dic:
545571
return err_dic
546572
print("\t\t.guest_flags = {0},".format(sos_guest_flags), file=config)
547-
if i == 0:
548-
print("\t\t.pcpu_bitmap = VM0_CONFIG_PCPU_BITMAP,", file=config)
573+
574+
vcpu_affinity_output(vm_info, i, config)
575+
576+
if i != 2:
549577
if vm_info.clos_set[i] == None or not vm_info.clos_set[i].strip():
550578
print("\t\t.clos = {0}U,".format(0), file=config)
551579
else:

misc/acrn-config/scenario_config/vm_configurations_h.py

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,22 @@ def gen_common_header(config):
2121
print("{0}".format(VM_HEADER_DEFINE), file=config)
2222

2323

24-
def gen_sdc_header(config):
24+
def cpu_affinity_output(vm_info, i, config):
25+
"""
26+
Output the macro vcpu affinity
27+
:param vm_info: the data structure have all the xml items values
28+
:param i: the index of vm id
29+
:param config: file pointor to store the information
30+
"""
31+
if vm_info.load_order[i] == "SOS_VM":
32+
return
33+
34+
cpu_bits = vm_info.get_cpu_bitmap(i)
35+
print("#define VM{0}_CONFIG_VCPU_AFFINITY\t{1}".format(
36+
i, cpu_bits['cpu_map']), file=config)
37+
38+
39+
def gen_sdc_header(vm_info, config):
2540
"""
2641
Generate vm_configuration.h of sdc scenario
2742
:param config: it is the pointer which file write to
@@ -52,11 +67,21 @@ def gen_sdc_header(config):
5267
print('\t\t\t\t\t"i915.enable_gvt=1 "\t\\', file=config)
5368
print("\t\t\t\t\tSOS_BOOTARGS_DIFF", file=config)
5469

70+
print("", file=config)
71+
print("#if CONFIG_MAX_KATA_VM_NUM > 0", file=config)
72+
# POST LAUNCHED VM
73+
print(" #define VM1_CONFIG_VCPU_AFFINITY\t{AFFINITY_CPU(1U), AFFINITY_CPU(2U)}", file=config)
74+
# KATA VM
75+
cpu_affinity_output(vm_info, 2, config)
76+
print("#else", file=config)
77+
for i in range(scenario_cfg_lib.VM_COUNT - 1):
78+
cpu_affinity_output(vm_info, i, config)
79+
print("#endif", file=config)
5580
print("", file=config)
5681
print("{0}".format(VM_END_DEFINE), file=config)
5782

5883

59-
def gen_sdc2_header(config):
84+
def gen_sdc2_header(vm_info, config):
6085
"""
6186
Generate vm_configuration.h of sdc2 scenario
6287
:param config: it is the pointer which file write to
@@ -87,6 +112,9 @@ def gen_sdc2_header(config):
87112
print('\t\t\t\t\t"i915.enable_gvt=1 "\t\\', file=config)
88113
print("\t\t\t\t\tSOS_BOOTARGS_DIFF", file=config)
89114

115+
print("", file=config)
116+
for i in range(scenario_cfg_lib.VM_COUNT):
117+
cpu_affinity_output(vm_info, i, config)
90118
print("", file=config)
91119
print("{0}".format(VM_END_DEFINE), file=config)
92120

@@ -101,7 +129,7 @@ def logic_max_vm_num(config):
101129
print("#define CONFIG_MAX_VM_NUM\t{0}U".format(scenario_cfg_lib.VM_COUNT), file=config)
102130
print("", file=config)
103131
print("/* The VM CONFIGs like:", file=config)
104-
print(" *\tVMX_CONFIG_PCPU_BITMAP", file=config)
132+
print(" *\tVMX_CONFIG_VCPU_AFFINITY", file=config)
105133
print(" *\tVMX_CONFIG_MEM_START_HPA", file=config)
106134
print(" *\tVMX_CONFIG_MEM_SIZE", file=config)
107135
print(" *\tVMX_CONFIG_OS_BOOTARG_ROOT", file=config)
@@ -112,7 +140,7 @@ def logic_max_vm_num(config):
112140
print("", file=config)
113141

114142

115-
def gen_logic_header(vm_info, config):
143+
def gen_logical_partition_header(vm_info, config):
116144
"""
117145
Generate vm_configuration.h of logical_partition scenario
118146
:param config: it is the pointer which file write to
@@ -133,8 +161,7 @@ def gen_logic_header(vm_info, config):
133161
for i in range(scenario_cfg_lib.VM_COUNT):
134162

135163
cpu_bits = vm_info.get_cpu_bitmap(i)
136-
print("#define VM{0}_CONFIG_PCPU_BITMAP\t\t\t{1}".format(
137-
i, cpu_bits['cpu_map']), file=config)
164+
cpu_affinity_output(vm_info, i, config)
138165
print("#define VM{0}_CONFIG_MEM_START_HPA\t\t{1}UL".format(
139166
i, vm_info.mem_info.mem_start_hpa[i]), file=config)
140167
print("#define VM{0}_CONFIG_MEM_SIZE\t\t\t{1}UL".format(
@@ -176,7 +203,7 @@ def gen_logic_header(vm_info, config):
176203
print("{0}".format(VM_END_DEFINE), file=config)
177204

178205

179-
def gen_industry_header(config):
206+
def gen_industry_header(vm_info, config):
180207
"""
181208
Generate vm_configuration.h of industry scenario
182209
:param config: it is the pointer which file write to
@@ -207,6 +234,9 @@ def gen_industry_header(config):
207234
print('\t\t\t\t\t"i915.enable_gvt=1 "\t\\', file=config)
208235
print("\t\t\t\t\tSOS_BOOTARGS_DIFF", file=config)
209236
print("", file=config)
237+
for i in range(scenario_cfg_lib.VM_COUNT):
238+
cpu_affinity_output(vm_info, i, config)
239+
print("", file=config)
210240
print("{0}".format(VM_END_DEFINE), file=config)
211241

212242

@@ -225,12 +255,13 @@ def gen_hybrid_header(vm_info, config):
225255
"(GUEST_FLAG_SECURE_WORLD_ENABLED | GUEST_FLAG_LAPIC_PASSTHROUGH | \\\n" +
226256
"\t\t\t\t\t\tGUEST_FLAG_RT | GUEST_FLAG_IO_COMPLETION_POLLING)", file=config)
227257

228-
cpu_bits = vm_info.get_cpu_bitmap(0)
229258
print("", file=config)
230259
print("#define CONFIG_MAX_VM_NUM\t\t({0}U + CONFIG_MAX_KATA_VM_NUM)".format(
231260
scenario_cfg_lib.VM_COUNT), file=config)
232261
print("", file=config)
233-
print("#define VM0_CONFIG_PCPU_BITMAP\t\t{0}".format(cpu_bits['cpu_map']), file=config)
262+
for i in range(scenario_cfg_lib.VM_COUNT):
263+
cpu_affinity_output(vm_info, i, config)
264+
234265
print("#define VM0_CONFIG_MEM_START_HPA\t{0}UL".format(
235266
vm_info.mem_info.mem_start_hpa[0]), file=config)
236267
print("#define VM0_CONFIG_MEM_SIZE\t\t{0}UL".format(vm_info.mem_info.mem_size[0]), file=config)
@@ -260,13 +291,13 @@ def generate_file(scenario, vm_info, config):
260291
:param config: it is a file pointer of board information for writing to
261292
"""
262293
if scenario == 'sdc':
263-
gen_sdc_header(config)
294+
gen_sdc_header(vm_info, config)
264295
elif scenario == 'sdc2':
265-
gen_sdc2_header(config)
296+
gen_sdc2_header(vm_info, config)
266297
elif scenario == 'logical_partition':
267-
gen_logic_header(vm_info, config)
298+
gen_logical_partition_header(vm_info, config)
268299
elif scenario == 'industry':
269-
gen_industry_header(config)
300+
gen_industry_header(vm_info, config)
270301
else:
271302
# scenario is 'hybrid'
272303
gen_hybrid_header(vm_info, config)

misc/acrn-config/xmls/config-xmls/apl-mrb/hybrid.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
77
<guest_flag>GUEST_FLAG_HIGHEST_SEVERITY</guest_flag>
88
</guest_flags>
9-
<pcpu_ids desc="Assign physical CPU IDs to the VM" multiselect="true">
9+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
1010
<pcpu_id>3</pcpu_id>
11-
</pcpu_ids>
11+
</vcpu_affinity>
1212
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
1313
<epc_section desc="epc section">
1414
<base desc="SGX EPC section base, must be page aligned">0</base>
@@ -90,6 +90,9 @@
9090
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
9191
<guest_flag>0</guest_flag>
9292
</guest_flags>
93+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
94+
<pcpu_id>2</pcpu_id>
95+
</vcpu_affinity>
9396
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
9497
<epc_section desc="epc section">
9598
<base desc="SGX EPC section base, must be page aligned">0</base>

misc/acrn-config/xmls/config-xmls/apl-mrb/industry.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@
4848
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
4949
<guest_flag>0</guest_flag>
5050
</guest_flags>
51+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
52+
<pcpu_id>1</pcpu_id>
53+
</vcpu_affinity>
5154
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
5255
<epc_section desc="epc section">
5356
<base desc="SGX EPC section base, must be page aligned">0</base>
@@ -72,6 +75,9 @@
7275
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
7376
<guest_flag>GUEST_FLAG_HIGHEST_SEVERITY</guest_flag>
7477
</guest_flags>
78+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
79+
<pcpu_id>2</pcpu_id>
80+
</vcpu_affinity>
7581
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
7682
<epc_section desc="epc section">
7783
<base desc="SGX EPC section base, must be page aligned">0</base>
@@ -96,6 +102,9 @@
96102
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
97103
<guest_flag>0</guest_flag>
98104
</guest_flags>
105+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
106+
<pcpu_id>3</pcpu_id>
107+
</vcpu_affinity>
99108
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
100109
<epc_section desc="epc section">
101110
<base desc="SGX EPC section base, must be page aligned">0</base>

misc/acrn-config/xmls/config-xmls/apl-mrb/logical_partition.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
77
<guest_flag></guest_flag>
88
</guest_flags>
9-
<pcpu_ids desc="Assign physical CPU IDs to the VM" multiselect="true">
9+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
1010
<pcpu_id>0</pcpu_id>
1111
<pcpu_id>2</pcpu_id>
12-
</pcpu_ids>
12+
</vcpu_affinity>
1313
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
1414
<epc_section desc="epc section">
1515
<base desc="SGX EPC section base, must be page aligned">0</base>
@@ -52,10 +52,10 @@
5252
<guest_flag>GUEST_FLAG_RT</guest_flag>
5353
<guest_flag>GUEST_FLAG_LAPIC_PASSTHROUGH</guest_flag>
5454
</guest_flags>
55-
<pcpu_ids desc="Assign physical CPU IDs to the VM" multiselect="true">
55+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
5656
<pcpu_id>1</pcpu_id>
5757
<pcpu_id>3</pcpu_id>
58-
</pcpu_ids>
58+
</vcpu_affinity>
5959
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
6060
<epc_section desc="epc section">
6161
<base desc="SGX EPC section base, must be page aligned">0</base>

misc/acrn-config/xmls/config-xmls/apl-mrb/sdc.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@
4848
<guest_flags desc="Select all applicable flags for the VM" multiselect="true">
4949
<guest_flag>0</guest_flag>
5050
</guest_flags>
51+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
52+
<pcpu_id>1</pcpu_id>
53+
<pcpu_id>2</pcpu_id>
54+
<pcpu_id>3</pcpu_id>
55+
</vcpu_affinity>
5156
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
5257
<epc_section desc="epc section">
5358
<base desc="SGX EPC section base, must be page aligned">0</base>
@@ -70,6 +75,9 @@
7075
<load_order desc="Specify the VM by its load order: PRE_LAUNCHED_VM, SOS_VM or POST_LAUNCHED_VM.">POST_LAUNCHED_VM</load_order>
7176
<uuid configurable="0" desc="vm uuid">a7ada506-1ab0-4b6b-a0da-e513ca9b8c2f</uuid>
7277
<clos desc="Class of Service for Cache Allocation Technology. Please refer SDM 17.19.2 for details and use with caution.">0</clos>
78+
<vcpu_affinity desc="vCPU affinity map. Each vCPU will pin to the selected pCPU ID. Please make sure each vCPU pin to different pCPU.">
79+
<pcpu_id>3</pcpu_id>
80+
</vcpu_affinity>
7381
<epc_section desc="epc section">
7482
<base desc="SGX EPC section base, must be page aligned">0</base>
7583
<size desc="SGX EPC section size in Bytes, must be page aligned">0</size>

0 commit comments

Comments
 (0)