summaryrefslogtreecommitdiffstats
path: root/sw_config/bmra
diff options
context:
space:
mode:
authorMichael Pedersen <michaelx.pedersen@intel.com>2021-10-27 11:49:18 +0200
committerMichael Pedersen <michaelx.pedersen@intel.com>2021-10-27 12:01:09 +0000
commite66b9747332444e5a68a4f7f45f157c660bb4199 (patch)
treea09658860501cfcaaae27c98c5000619267cbedf /sw_config/bmra
parent7ee1ba901358248f1d8800a34fc7831f2995006f (diff)
Fix bugs with preflight check and DPDK dependency
Remove preflight check for isolcpus as this breaks libvirt (VM) deployments Update DPDK dependency on meson as v0.60.0 breaks build process Signed-off-by: Michael Pedersen <michaelx.pedersen@intel.com> Change-Id: I5f0a46c80c88958437b7ab8c34de5fefc337de60 Reviewed-on: https://gerrit.opnfv.org/gerrit/c/kuberef/+/72991 Tested-by: jenkins-ci <jenkins-opnfv-ci@opnfv.org> Reviewed-by: Rihab Banday <rihab.banday@ericsson.com> Reviewed-by: Georg Kunz <georg.kunz@ericsson.com>
Diffstat (limited to 'sw_config/bmra')
-rw-r--r--sw_config/bmra/patched_install_dpdk_meson.yml132
-rw-r--r--sw_config/bmra/patched_preflight.yml9
2 files changed, 132 insertions, 9 deletions
diff --git a/sw_config/bmra/patched_install_dpdk_meson.yml b/sw_config/bmra/patched_install_dpdk_meson.yml
new file mode 100644
index 0000000..9b9a7e7
--- /dev/null
+++ b/sw_config/bmra/patched_install_dpdk_meson.yml
@@ -0,0 +1,132 @@
+##
+## Copyright (c) 2020-2021 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: install Python3 from epel-release
+ package:
+ name:
+ - python36
+ - python36-devel
+ - libselinux-python
+ state: present
+ enablerepo: "epel"
+ when:
+ - ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS'
+ - ansible_distribution_version < '8'
+
+- name: install dpdk-devel required for libraries enablement in RHEL / CentOS >= 8.2
+ dnf:
+ name: dpdk-devel
+ when: ansible_distribution in ["RedHat", "CentOS"] and ansible_distribution_version >= '8.2'
+
+- name: build and install dpdk using meson and ninja tools
+ block:
+ - name: install building tools as python packages
+ pip:
+ name:
+ - selinux
+ - meson>=0.53.2,<0.60.0
+ - ninja>=1.10.0
+ - pyelftools>=0.26
+ state: present
+ register: pip_result
+ retries: 5
+ until: pip_result is succeeded
+ delay: 5
+
+ - name: meson build for ease of compiling and linking libraries enablement
+ command: "meson build"
+ args:
+ chdir: "{{ dpdk_dir }}"
+
+ - name: configure DPDK with ninja
+ command: "ninja"
+ args:
+ chdir: "{{ dpdk_dir }}/build"
+
+ - name: install DPDK with ninja
+ command: "ninja install"
+ args:
+ chdir: "{{ dpdk_dir }}/build"
+
+ - name: update the dynamic linker cache
+ command: "ldconfig"
+ args:
+ chdir: "{{ dpdk_dir }}/build"
+ vars:
+ ansible_python_interpreter: /usr/bin/python3
+
+- name: Ensure dpdk libs is in loader search path on RHEL/CentOS
+ copy:
+ dest: "/etc/ld.so.conf.d/libdpdk-x86_64.conf"
+ content: "/usr/local/lib64/"
+ mode: 0644
+ owner: root
+ group: root
+ become: yes
+ when: ansible_os_family == "RedHat"
+
+- name: find dpdk tools
+ find:
+ path: "{{ dpdk_dir }}"
+ patterns: "dpdk-devbind.py"
+ recurse: yes
+ register: dpdk_tools_dir
+
+- name: set path to dpdk usertools directory
+ set_fact:
+ dpdk_tools: "{{ dpdk_tools_dir.files[0].path }}"
+
+- name: load userspace modules
+ modprobe:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - vfio-pci
+ - uio
+
+- name: install dpdk-devbind.py in /usr/local/bin
+ copy:
+ remote_src: yes
+ src: "{{ dpdk_tools }}"
+ dest: "/usr/local/bin/dpdk-devbind.py"
+ mode: 0700
+ owner: root
+ group: root
+ become: yes
+
+- name: clone intel module
+ git:
+ repo: "{{ dpdk_kmods_repo }}"
+ dest: "{{ dpdk_kmods_dest }}"
+ version: 'main'
+ force: yes
+
+- name: apply fix to Makefile
+ replace:
+ path: "{{ dpdk_kmods_dest }}/linux/igb_uio/Makefile"
+ regexp: "\\(PWD\\)"
+ replace: "(CURDIR)"
+ mode: "0644"
+
+- name: build intel module
+ make:
+ chdir: "{{ dpdk_kmods_dest }}/linux/igb_uio"
+
+- name: load intel module
+ command: "insmod {{ dpdk_kmods_dest }}/linux/igb_uio/igb_uio.ko"
+ register: result
+ failed_when: "'No such file or directory' in result.stderr"
+ changed_when: "'already bound' not in result.stderr"
diff --git a/sw_config/bmra/patched_preflight.yml b/sw_config/bmra/patched_preflight.yml
index 41b7efd..ae401f9 100644
--- a/sw_config/bmra/patched_preflight.yml
+++ b/sw_config/bmra/patched_preflight.yml
@@ -223,15 +223,6 @@
with_items: "{{ isolcpus_list }}"
when: isolcpus is defined
- - name: Check isolcpus OS Reserved
- assert:
- that: "item not in isolcpus_list"
- msg:
- - Incorrect configuration pertaining isolcpus. Conflicting or improper values detected
- - The CPU ID 0...{{ ansible_processor_count - 1 }} should NOT be set for isolcpus. Please correct the configuration
- with_items: "{{ lookup('sequence','0-{{ ansible_processor_count - 1 }}').split(',') }}"
- when: isolcpus is defined
-
#TODO relationship between cmk shared/exclusive cores and isolcpus
when: