fix(ansible): QAT v1.x install 23/39323/2 oper-230807
authorpmikus <peter.mikus@protonmail.ch>
Fri, 4 Aug 2023 10:27:17 +0000 (10:27 +0000)
committerPeter Mikus <peter.mikus@protonmail.ch>
Fri, 4 Aug 2023 11:01:25 +0000 (11:01 +0000)
Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: I2e2047f3d02a1c4f90298cb15f2574e5ea6a7ad4

fdio.infra.ansible/roles/intel/defaults/main.yaml
fdio.infra.ansible/roles/intel/tasks/main.yaml
fdio.infra.ansible/roles/intel/tasks/qat1.yaml [new file with mode: 0644]
fdio.infra.ansible/roles/intel/tasks/qat2.yaml [moved from fdio.infra.ansible/roles/intel/tasks/qat.yaml with 64% similarity]

index 56696a5..4589ec2 100644 (file)
@@ -88,7 +88,8 @@ intel_dsa_compatibility_matrix:
   dsa: "4.0"
 
 intel_qat_compatibility_matrix:
-  qat: "1.0.20-00008"
+  qat2: "1.0.20-00008"
+  qat1: "4.22.0-00001"
 
 intel_i40e_url:
   "2.17.15": "i40e%20stable/2.17.15/i40e-2.17.15.tar.gz/download"
@@ -113,4 +114,5 @@ intel_dsa_url:
   "4.0": "https://github.com/intel/idxd-config/archive/refs/tags/accel-config-v4.0.tar.gz"
 
 intel_qat_url:
-  "1.0.20-00008": "777529/QAT20.L.1.0.20-00008.tar.gz"
\ No newline at end of file
+  "1.0.20-00008": "777529/QAT20.L.1.0.20-00008.tar.gz"
+  "4.22.0-00001": "780675/QAT.L.4.22.0-00001.tar.gz"
\ No newline at end of file
index 80c8d38..81b97d8 100644 (file)
   tags:
     - intel-inst-drivers
 
+- name: Check Presence of Intel C4XXX
+  ansible.builtin.shell: "lspci -d 8086:18a0"
+  register: intel_qat1_pcis
+  failed_when: false
+  changed_when: false
+  tags:
+    - intel-inst-drivers
+
+- name: Check Presence of Intel 4XXX
+  ansible.builtin.shell: "lspci -d 8086:4942"
+  register: intel_qat2_pcis
+  failed_when: false
+  changed_when: false
+  tags:
+    - intel-inst-drivers
+
 - name: Get Intel Ethernet 700 Series driver versions
   ansible.builtin.set_fact:
     i40e: "{{ intel_700_compatibility_matrix[intel_700_matrix]['i40e'] }}"
@@ -72,7 +88,8 @@
 
 - name: Get Intel QAT driver versions
   ansible.builtin.set_fact:
-    qat: "{{ intel_qat_compatibility_matrix['qat'] }}"
+    qat1: "{{ intel_qat_compatibility_matrix['qat1'] }}"
+    qat2: "{{ intel_qat_compatibility_matrix['qat2'] }}"
   when: >
     intel_qat_matrix is defined
   tags:
   tags:
     - intel-inst-drivers
 
-- name: Driver Intel QAT
-  import_tasks: qat.yaml
+- name: Driver Intel QAT 1.x
+  import_tasks: qat1.yaml
+  when: >
+    intel_qat1_pcis.stdout_lines | length > 0 and
+    intel_qat_matrix is defined
+  tags:
+    - intel-inst-drivers
+
+- name: Driver Intel QAT 2.x
+  import_tasks: qat2.yaml
   when: >
+    intel_qat2_pcis.stdout_lines | length > 0 and
     intel_qat_matrix is defined
   tags:
     - intel-inst-drivers
\ No newline at end of file
diff --git a/fdio.infra.ansible/roles/intel/tasks/qat1.yaml b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml
new file mode 100644 (file)
index 0000000..701c0c1
--- /dev/null
@@ -0,0 +1,54 @@
+---
+# file: tasks/qat1.yaml
+
+- name: Get QAT 1.x Driver
+  ansible.builtin.uri:
+    url: "{{ intel_download_url }}/{{ intel_qat_url[qat1] }}"
+    follow_redirects: "all"
+    force: true
+    dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+    mode: "0644"
+  failed_when: false
+  tags:
+    - intel-inst
+
+- name: Create a Directory For QAT 1.x Driver
+  ansible.builtin.file:
+    path: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+    state: "directory"
+    mode: "0755"
+  tags:
+    - intel-inst
+
+- name: Extract QAT 1.x Driver
+  ansible.builtin.unarchive:
+    remote_src: true
+    src: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+    dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+  register: intel_driver_extracted
+  tags:
+    - intel-inst
+
+- name: Install QAT1.x Driver
+  ansible.builtin.command: "{{ item }}"
+  args:
+    chdir: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}"
+  become: true
+  with_items:
+    - "./configure --enable-icp-sriov=host --enable-icp-sym-only"
+    - "make"
+    - "make install"
+  when:
+    - intel_driver_extracted
+  tags:
+    - intel-inst
+
+- name: Load Kernel Modules By Default
+  ansible.builtin.lineinfile:
+    path: "/etc/modules"
+    state: "present"
+    line: "{{ item }}"
+  with_items:
+    - "qat_c4xxx"
+  tags:
+    - intel-inst
\ No newline at end of file
@@ -1,38 +1,38 @@
 ---
-# file: tasks/qat.yaml
+# file: tasks/qat2.yaml
 
-- name: Get QAT Driver
+- name: Get QAT 2.x Driver
   ansible.builtin.uri:
-    url: "{{ intel_download_url }}/{{ intel_qat_url[qat] }}"
+    url: "{{ intel_download_url }}/{{ intel_qat_url[qat2] }}"
     follow_redirects: "all"
     force: true
-    dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat }}.tar.gz"
+    dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
     mode: "0644"
   failed_when: false
   tags:
     - intel-inst
 
-- name: Create a Directory For QAT Driver
+- name: Create a Directory For QAT 2.x Driver
   ansible.builtin.file:
-    path: "{{ intel_extract_dir }}/QAT20.L.{{ qat }}/"
+    path: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
     state: "directory"
     mode: "0755"
   tags:
     - intel-inst
 
-- name: Extract QAT Driver
+- name: Extract QAT 2.x Driver
   ansible.builtin.unarchive:
     remote_src: true
-    src: "{{ intel_extract_dir }}/QAT20.L.{{ qat }}.tar.gz"
-    dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat }}/"
+    src: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
+    dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
   register: intel_driver_extracted
   tags:
     - intel-inst
 
-- name: Install QAT Driver
+- name: Install QAT 2.x Driver
   ansible.builtin.command: "{{ item }}"
   args:
-    chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat }}"
+    chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}"
   become: true
   with_items:
     - "wget http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_249.11-0ubuntu3.7_amd64.deb"