| {%- from "linux/map.jinja" import system with context %} |
| {%- if system.cpu.governor is defined %} |
| |
| linux_sysfs_package: |
| pkg.installed: |
| - pkgs: |
| - sysfsutils |
| - refresh: true |
| |
| /etc/sysfs.d: |
| file.directory: |
| - require: |
| - pkg: linux_sysfs_package |
| |
| ondemand_service_disable: |
| service.dead: |
| - name: ondemand |
| - enable: false |
| |
| {%- if grains.get('virtual', None) in ['physical', None] %} |
| {#- Governor cannot be set in VMs, etc. #} |
| |
| /etc/sysfs.d/governor.conf: |
| file.managed: |
| - source: salt://linux/files/governor.conf.jinja |
| - template: jinja |
| - user: root |
| - group: root |
| - mode: 0644 |
| - defaults: |
| governor: {{ system.cpu.governor }} |
| |
| {% for cpu_core in range(salt['grains.get']('num_cpus', 1)) %} |
| |
| {% set core_key = 'devices/system/cpu/cpu' + cpu_core|string + '/cpufreq/scaling_governor' %} |
| {% if salt['file.file_exists']('/sys/'+ core_key) %} |
| governor_write_sysfs_cpu_core_{{ cpu_core }}: |
| module.run: |
| - name: sysfs.write |
| - key: {{ core_key }} |
| - value: {{ system.cpu.governor }} |
| {% endif %} |
| |
| {%- endfor %} |
| |
| {%- endif %} |
| |
| {%- endif %} |