Bender: Intel HWP mode configurable via RUN_OPT

The updated Bender version is configurable regarding the mode in which to run
the Intel HWP plugin. This can now be controlled via the new run option
'--bender-intel-hwp-mode' (only when running on NOVA). The option knows 4 valid
values 'off', 'performance', 'balanced', and 'power_saving'. When running on
NOVA, the default value applied by the run tool is 'performance'. when running
on any other kernel, the default value of Bender ('off') is used. Therefore,
when not setting the new '--bender-intel-hwp-mode' flag, the behavior is the
same as before this commit.

Fixes #4224
This commit is contained in:
Martin Stein 2022-09-05 13:34:36 +02:00 committed by Norman Feske
parent d9b5e4ae8d
commit ede007c2dd
3 changed files with 33 additions and 5 deletions

View File

@ -18,14 +18,14 @@ code respectively the download source of binaries are described below.
configured via commandline.
The changes are available from
https://github.com/alex-ab/morbo.git.
https://github.com/m-stein/morbo.git.
git branch genode_bender
git commit 7909dd0b56c66400bfb9c1c4abf70d2c593b4902
git commit 3645d67dc0643b8aab008eb76a8e056636e5edee
:'pulsar':
The 'pulsar' tool was obtained in binary form from
The 'pulsar' tool was obtained in binary form from
http://os.inf.tu-dresden.de/~us15/pulsar.
:'unzip'

Binary file not shown.

View File

@ -1,3 +1,31 @@
#
# Return Bender option that configures Bender's Intel HWP plugin
#
# \param --bender-intel-hwp-mode Run the Intel HWP plugin of Bender in the
# given mode. Valid argument values are
# "off",
# "performance",
# "balanced", and
# "power_saving"
# The argument value defaults to
# "performance".
#
proc bender_intel_hwp_mode_option { } {
set opt [get_cmd_arg_first --bender-intel-hwp-mode "performance"]
if {$opt == "off"} {
return "intel_hwp_off"
} elseif {$opt == "performance"} {
return "intel_hwp_performance"
} elseif {$opt == "balanced"} {
return "intel_hwp_balanced"
} elseif {$opt == "power_saving"} {
return "intel_hwp_power_saving"
} else {
return "intel_hwp_performance"
}
}
proc binary_name_ld_lib_so { } { return "ld-nova.lib.so" }
proc binary_name_core_a { } { return "core-nova.a" }
proc binary_name_timer { } { return "nova_timer_drv" }
@ -65,9 +93,9 @@ proc run_boot_dir {binaries} {
set options_bender ""
#
# Enable Intel HWP unconditionally
# Apply Intel HWP mode
#
append options_bender " intel_hwp"
append options_bender " [bender_intel_hwp_mode_option]"
if {[apply_microcode]} {
exec cp bin/micro.code [run_dir]/boot/