'''Page used to document about Ubuntu running Open Power machines.''' <> = Recommendations = == Extra packages to be installed == If you are using a bare metal Ubuntu on a OpenPower machine, it is strongly recommended to install the [[http://packages.ubuntu.com/search?keywords=opal-prd|opal-prd]] package. 'Opal-prd' stands for OPAL Processor Recovery Diagnostics daemon, and it is an user space package provided by Canonical. This package provides a daemon to load and run the OpenPower firmware's Processor Recovery Diagnostics binary. This is responsible for runtime maintenance of Power hardware. In order to install it, please run: {{{ # apt-get install opal-prd }}} == Netboot installation over IPMI == Ubuntu installer is loaded via kexec when netboot installation is used. The kexec by default will append Petitboot (the bootloader) command-line on Ubuntu's installer kernel. Ubuntu installer parses this command-line and if it has one or more "console=" entries, it will display the installer by default on the last console. We experienced situations in which the last console was tty1 and from the ipmi console perspective, installer seemed hanged since the output was in another terminal. That said, '''we have a recommendation on netboot installation over IPMI''': append manually your preferred console on Ubuntu's kexec procedure, so it will surely shows the installer output on the right console. Example: '''kexec -l vmlinux --initrd initrd.gz --apppend="console=hvc0"''' = Tips = == CPUfreq scaling == For Power systems running in OPAL mode, the Linux CPUfreq subsystem controls the frequency and scaling using the powernv_cpufreq driver. === Check current settings === A user can check the current CPU frequency in multiple ways, for example: 1. Check the per-cpu cpuinfo_cur_freq file {{{ # cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq 2061000 3491000 3491000 3491000 […] }}} 2. Check the per-cpu clock from the cpuinfo file {{{ # cat /proc/cpuinfo | grep MHz clock : 2061.000000MHz clock : 2061.000000MHz clock : 3491.000000MHz clock : 3491.000000MHz […] }}} CPUfreq governors are used to control scaling. Check which governors have been enabled in the kernel, ex: {{{ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative userspace powersave ondemand performance }}} More information about each governor can be found in the kernel cpu-freq documentation: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt === Customize CPUfreq settings === Users can configure the system as desired using the cpufreq control files. For example, a user could limit the max scaling frequency to a certain speed (perhaps for energy efficiency reasons) and still allow the system to scale CPU frequency down when not utilized. To do so, first set a scaling governor, ex: {{{ # echo ondemand | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor >/dev/null }}} Check the available frequencies, ex: {{{ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 3491000 3458000 3424000 3391000 3358000 3325000 3291000 3258000 3225000 3192000 3158000 3125000 3092000 3059000 3025000 2992000 2959000 2926000 2892000 2859000 2826000 2793000 2759000 2726000 2693000 2660000 2626000 2593000 2560000 2527000 2493000 2460000 2427000 2394000 2360000 2327000 2294000 2261000 2227000 2194000 2161000 2128000 2094000 2061000 }}} Pick a frequency and set the max scaling value, ex: {{{ # echo 2992000 | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq >/dev/null }}} Note the same method could be used to control the minimum scaling frequency with the scaling_min_freq file. CPUfreq settings are not preserved across reboots, but users can easily add the desired configuration commands to their favorite system init script. For more details and examples of CPU frequency scaling for Linux on Power, check out this blog: https://developer.ibm.com/linuxonpower/2016/10/12/cpu-frequency-scaling-on-ibm-power-systems-running-linux/