powerhint: provide android-mainline versions for Oriole & Raven
The android-mainline kernel doesn't provide the scheduler vendor hooks,
and therefore the pixel drivers don't expose anything below
/proc/vendor_sched/. This causes powerpower-libperfmgr to emit *a lot*
of warnings to logcat regarding failures to write to nodes below
/proc/vendor_sched/.
As a solution, provide a -mainline version of powerhint.json for the
two platforms supported by android-mainline.
The new files are based on revision f56bbd1bfbba ("disable vendor idle
balancer") of powerhint.json and have all nodes and actions referring
to /proc/vendor_sched/ removed using the following jq commands:
for f in powerhint-oriole.json powerhint-raven.json ; do \
fdst="$(basename "${f}" .json)-mainline.json"
names=$(jq '."Nodes"[] | select(."Path" | startswith("/proc/vendor_sched/")).Name' "${f}" \
| tr '\n' ' ' \
| sed -e 's|" "|", "|g')
jq '. | del( ."Actions"[] | select(."Node"==('"${names}"')))' "${f}" > "${fdst}"
jq '. | del( ."Nodes"[] | select(."Path" | startswith("/proc/vendor_sched/")) )' "${fdst}" > "${fdst}2"
mv "${fdst}2" "${fdst}"
done
The -mainline version will be picked based on a boot property set by
the mainline kernel.
Bug: 265961701
Test: adb shell -nT getprop vendor.powerhal.config
adb logcat -b all -D 'libperfmgr:V powerhal-libperfmgr:V *:S'
m libperfmgr_test \
&& adb push \
out/target/product/oriole/data/nativetest64/libperfmgr_test/libperfmgr_test \
/data/libperfmgr_test \
&& adb shell /data/libperfmgr_test
Change-Id: Ice07444e38194e5fcf2127e935afdd4d29ff8e87
Signed-off-by: André Draszik <draszik@google.com>
6 files changed