Fix failing if hugepages already configured
[yardstick.git] / ansible / roles / enable_hugepages_on_boot / tasks / main.yml
index 6e7657a..f84e075 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Intel Corporation
+# Copyright (c) 2017-2019 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ---
-- name: check if hugepages are set by this role
+- name: Check if hugepages are set by this role
   command: "grep -o '{{ hugepage_param_regex }}' /etc/default/grub"
   register: is_mine_huge
   ignore_errors: True
 
-- name: check if hugepages are set by someone else
+# 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
   ignore_errors: True
 
-- fail:
+- debug:
     msg: "Hugepages already set by someone else"
   when: is_mine_huge.stdout == "" and is_huge.stdout != ""
 
-- name: use 16 for auto num_hugepages and 1G size
-  set_fact:
-    num_hugepages: 8
-  when: num_hugepages|default("auto") == "auto"
-
-- name: set hugepages in grub
-  lineinfile:
-    dest: /etc/default/grub
-    regexp: '{{ hugepage_param_regex }}'
-    line: '{{ hugepage_param }}'
-    state: present
-
-- name: create hugetables mount
-  file:
-    path: "{{ hugetable_mount }}"
-    state: directory
+- name: Configure hugepages as idempotent block
+  block:
+    - name: Use 8 for auto num_hugepages and 1G size
+      set_fact:
+        num_hugepages: 8
+      when: num_hugepages|default("auto") == "auto"
 
-- name: mount hugetlbfs
-  mount:
-    name: "{{ hugetable_mount }}"
-    src: nodev
-    fstype: hugetlbfs
-    state: present
+    - name: Set hugepages in grub
+      lineinfile:
+        dest: /etc/default/grub
+        regexp: '{{ hugepage_param_regex }}'
+        line: '{{ hugepage_param }}'
+        state: present
 
-- 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"
+  when:
+    - is_mine_huge.stdout == ""
+    - is_huge.stdout == ""