config-tools: genertate performance policy parameter

This patch is to generate an ACRN CPU performance policy type boot
parameter.

The generated parameter is either 'cpu_perf_policy=Performance’ or
‘cpu_perf_policy=Nominal’, according to the 'CPU performance policy type'
config item in configurator.

It will then be packed into acrn-hypervisor deb file, and will be
automatically added to grub cfg file through installation.

Tracked-On: #8168
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
Wu Zhou 2022-09-02 14:55:26 +08:00 committed by acrnsi-robot
parent a971e12fc6
commit dd7a71900b
3 changed files with 28 additions and 4 deletions

View File

@ -63,6 +63,8 @@ ACRN_BOOTARGS=$(for arg in ${ACRN_BOOTARGS}; do if [ "${arg##root=}" = "${arg}"
# special handling for memmap: make sure $ is escaped to \$. This is a GRUB requirement
ACRN_BOOTARGS="$(echo "${ACRN_BOOTARGS}" | sed 's/\(.*memmap=[^\$]*\)\$\(.*\)/\1\\\$\2/')"
GRUB_CMDLINE_ACRN="cpu_perf_policy=$(xmllint --xpath '//CPU_PERFORMANCE_POLICY/text()' ${ACRN_SCENARIO_FILE} 2>/dev/null || true) "$GRUB_CMDLINE_ACRN
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
OS=GNU/Linux
else

View File

@ -13,6 +13,13 @@ BOARD=(nuc11tnbi5)
#Build info End
#ACRN parameters Start
GENERATED_PARAMS=(cpu_perf_policy=Performance)
#ACRN parameters End
ACRNBIN="/boot/acrn.${SCENARIO}.${BOARD}.bin"
type=$(lsblk -l |awk '$NF == "/" {print $1}')
@ -45,7 +52,7 @@ menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set $uuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS
$kernelimg
module2 /boot/zephyr64.elf Zephyr_ElfImage
module2 /boot/ACPI_VM0.bin ACPI_VM0
@ -64,7 +71,7 @@ menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set $uuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS
$kernelimg
module2 /boot/bzImage_RT RT_bzImage
module2 /boot/ACPI_VM0.bin ACPI_VM0
@ -82,7 +89,7 @@ menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 {
insmod ext2
search --no-floppy --fs-uuid --set $uuid
echo 'loading ACRN...'
multiboot2 $ACRNBIN root=PARTUUID=$partuuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS
$kernelimg
module2 /boot/ACPI_VM0.bin ACPI_VM0
module2 /boot/ACPI_VM1.bin ACPI_VM1
@ -99,7 +106,7 @@ menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set $uuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid
multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS
$kernelimg
}

View File

@ -13,6 +13,7 @@ import shlex
import shutil
import subprocess
import argparse
import re
from pathlib import Path
@ -81,6 +82,20 @@ def create_acrn_deb(board, scenario, version, build_dir):
del lines[(start + 1):(end - 1)]
lines.insert(start + 1, "\nSCENARIO=(%s)\n" % scenario)
lines.insert(start + 2, "\nBOARD=(%s)\n" % board)
a_f = open(build_dir + "/hypervisor/.scenario.xml", 'r')
for a_line in a_f:
l = re.search("<CPU_PERFORMANCE_POLICY>(\w*)</CPU_PERFORMANCE_POLICY>", a_line)
if l != None:
break;
start = lines.index('#ACRN parameters Start\n')
end = lines.index('#ACRN parameters End\n')
del lines[(start + 1):(end - 1)]
if l == None:
lines.insert(start + 1, "\nGENERATED_PARAMS=(cpu_perf_policy=%s)\n" % "Performance")
else:
lines.insert(start + 1, "\nGENERATED_PARAMS=(cpu_perf_policy=%s)\n" % l.group(1))
with open(cur_dir + "/misc/packaging/acrn-hypervisor.postinst", "w") as f:
for line in lines:
f.write(line)