mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-20 20:53:46 +00:00
acrn-config: Fix target xml generation issue when no P-state scaling driver is present
There seems to be a corner case where target xml file fails to get generated if there was no P-state scaling driver or C-state idle driver present. This patch addresses it by handling the file not present exception and setting a warning as well a "not available" string to successfully generate target xml file. Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com> Tracked-On: #4199 Acked-by: Victor Sun <victor.sun@intel.com>
This commit is contained in:
parent
8c87ee3951
commit
f3688c7e45
@ -417,19 +417,24 @@ def store_cx_data(sysnode1, sysnode2, config):
|
|||||||
"""
|
"""
|
||||||
i = 0
|
i = 0
|
||||||
state_cpus = {}
|
state_cpus = {}
|
||||||
with open(sysnode1, 'r') as acpi_idle:
|
try:
|
||||||
idle_driver = acpi_idle.read(32)
|
with open(sysnode1, 'r') as acpi_idle:
|
||||||
|
idle_driver = acpi_idle.read(32)
|
||||||
|
|
||||||
if idle_driver.find("acpi_idle") == -1:
|
if idle_driver.find("acpi_idle") == -1:
|
||||||
parser_lib.print_yel("The Cx data for ACRN relies on " +\
|
parser_lib.print_yel("The Cx data for ACRN relies on " +\
|
||||||
"acpi_idle driver but it is not found, ", warn=True, end=False)
|
"acpi_idle driver but it is not found, ", warn=True, end=False)
|
||||||
if idle_driver.find("intel_idle") == 0:
|
if idle_driver.find("intel_idle") == 0:
|
||||||
print("please add idle=nomwait in kernel " +\
|
print("please add idle=nomwait in kernel " +\
|
||||||
"cmdline to fall back to acpi_idle driver")
|
"cmdline to fall back to acpi_idle driver")
|
||||||
else:
|
else:
|
||||||
parser_lib.print_yel("please make sure ACPI Cstate is enabled in BIOS.", warn=True)
|
parser_lib.print_yel("please make sure ACPI Cstate is enabled in BIOS.", warn=True)
|
||||||
print("\t/* Cx data is not available */", file=config)
|
print("\t/* Cx data is not available */", file=config)
|
||||||
return
|
return
|
||||||
|
except IOError:
|
||||||
|
parser_lib.print_yel("No idle driver found.", warn=True)
|
||||||
|
print("\t/* Cx data is not available */", file=config)
|
||||||
|
return
|
||||||
|
|
||||||
files = os.listdir(sysnode2)
|
files = os.listdir(sysnode2)
|
||||||
for d_path in files:
|
for d_path in files:
|
||||||
@ -486,18 +491,24 @@ def store_px_data(sysnode, config):
|
|||||||
"""
|
"""
|
||||||
px_tmp = PxPkg()
|
px_tmp = PxPkg()
|
||||||
px_data = {}
|
px_data = {}
|
||||||
with open(sysnode+'cpu0/cpufreq/scaling_driver', 'r') as f_node:
|
|
||||||
freq_driver = f_node.read()
|
try:
|
||||||
if freq_driver.find("acpi-cpufreq") == -1:
|
with open(sysnode+'cpu0/cpufreq/scaling_driver', 'r') as f_node:
|
||||||
parser_lib.print_yel("The Px data for ACRN relies on " +\
|
freq_driver = f_node.read()
|
||||||
"acpi-cpufreq driver but it is not found, ", warn=True, end=False)
|
if freq_driver.find("acpi-cpufreq") == -1:
|
||||||
if freq_driver.find("intel_pstate") == 0:
|
parser_lib.print_yel("The Px data for ACRN relies on " +\
|
||||||
print("please add intel_pstate=disable in kernel " +\
|
"acpi-cpufreq driver but it is not found, ", warn=True, end=False)
|
||||||
"cmdline to fall back to acpi-cpufreq driver")
|
if freq_driver.find("intel_pstate") == 0:
|
||||||
else:
|
print("please add intel_pstate=disable in kernel " +\
|
||||||
parser_lib.print_yel("please make sure ACPI Pstate is enabled in BIOS.", warn=True)
|
"cmdline to fall back to acpi-cpufreq driver")
|
||||||
print("\t/* Px data is not available */", file=config)
|
else:
|
||||||
return
|
parser_lib.print_yel("please make sure ACPI Pstate is enabled in BIOS.", warn=True)
|
||||||
|
print("\t/* Px data is not available */", file=config)
|
||||||
|
return
|
||||||
|
except IOError:
|
||||||
|
parser_lib.print_yel("No scaling_driver found.", warn=True)
|
||||||
|
print("\t/* Px data is not available */", file=config)
|
||||||
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(sysnode+'cpufreq/boost', 'r') as f_node:
|
with open(sysnode+'cpufreq/boost', 'r') as f_node:
|
||||||
|
Loading…
Reference in New Issue
Block a user