aboutsummaryrefslogtreecommitdiffstats
path: root/ansible/roles/enable_hugepages_on_boot/tasks/manual_modify_grub.yml
blob: 6fa0c1d25711ac38c386ee66dc230c4cb43c4c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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: check if hugepages are already enabled
  command: "grep -o 'default_hugepagesz=' {{ item.path }}"
  register: hugepage_enabled
  ignore_errors: True
  with_items: "{{ grub_files.files }}"

- name: add hugepages to grub manually because we can't run update-grub in chroot
  replace:
    dest: "{{ item.path }}"
    regexp: '(linux\s+/boot/vmlinuz.*$)'
    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 }}"
  # we suppose consistent /boot/grub/grub.cfg files
  when:  hugepage_enabled['results'][0].stdout == ""