diff options
Diffstat (limited to 'ansible/roles/enable_hugepages_on_boot')
3 files changed, 52 insertions, 1 deletions
diff --git a/ansible/roles/enable_hugepages_on_boot/defaults/main.yml b/ansible/roles/enable_hugepages_on_boot/defaults/main.yml index 015e01bab..cc89ea346 100644 --- a/ansible/roles/enable_hugepages_on_boot/defaults/main.yml +++ b/ansible/roles/enable_hugepages_on_boot/defaults/main.yml @@ -1,3 +1,10 @@ --- num_hugepages: auto -huge_pagesize_mb: 1024
\ No newline at end of file +huge_pagesize_mb: 1024 +# disable EFI for chroot +efi: + stat: + exists: False +update_grub: + Debian: "grub-mkconfig -o {% if efi.stat.exists %}/boot/efi/EFI/{{ ansible_distribution|lower }}/grub.cfg{% else %}/boot/grub/grub.cfg{% endif %}" + RedHat: "grub2-mkconfig -o {% if efi.stat.exists %}/boot/efi/EFI/{{ ansible_distribution|lower }}/grub.cfg{% else %}/boot/grub2/grub.cfg{% endif %}" diff --git a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml index 6e7657a39..29432d2e4 100755 --- a/ansible/roles/enable_hugepages_on_boot/tasks/main.yml +++ b/ansible/roles/enable_hugepages_on_boot/tasks/main.yml @@ -17,6 +17,11 @@ register: is_mine_huge ignore_errors: True +# won't work in chroot +#- name: Detect EFI +# stat: path="/sys/firmware/efi" +# register: efi + - name: check if hugepages are set by someone else command: "grep -o 'default_hugepagesz=' /etc/default/grub" register: is_huge @@ -53,3 +58,7 @@ - service: name: procps enabled: yes + +- include: manual_modify_grub.yml + # only tested on Ubuntu, kernel line is probably different on other distros + when: ansible_distribution == "Ubuntu" diff --git a/ansible/roles/enable_hugepages_on_boot/tasks/manual_modify_grub.yml b/ansible/roles/enable_hugepages_on_boot/tasks/manual_modify_grub.yml new file mode 100644 index 000000000..cac10e80e --- /dev/null +++ b/ansible/roles/enable_hugepages_on_boot/tasks/manual_modify_grub.yml @@ -0,0 +1,35 @@ +# Copyright (c) 2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: find boot grub.cfg + find: + paths: /boot + file_type: file + patterns: 'grub*.cfg' + recurse: yes + register: grub_files + + +- name: added hugepages to grub manually because we can't run update-grub in chroot + replace: + dest: "{{ item.path }}" + # console= should end the line + regexp: '(linux\s+/boot/vmlinuz.*console=\S+$)' + # default_hugepagesz=1G hugepagesz=1G hugepages=8 + replace: '\1 default_hugepagesz={{ huge_pagesize_short[huge_pagesize_mb] }} hugepagesz={{ huge_pagesize_short[huge_pagesize_mb] }} hugepages={{ num_hugepages }}' + with_items: "{{ grub_files.files }}" + + + + |