Updates for Mount Bryce

Updated Patchset 1
Enable Mount Bryce HW Accelerator for Hosted vRAN Containerized Workloads
Set Up Pods to Use SRIOV to Access Mount Bryce HW Accelerator

Signed-off-by: Juanita-Balaraj <juanita.balaraj@windriver.com>
Change-Id: Idf3621329d92b19e5f2949545c734f2e30d884b7
Signed-off-by: Juanita-Balaraj <juanita.balaraj@windriver.com>
This commit is contained in:
Juanita-Balaraj 2021-06-01 17:38:36 -04:00
parent 61c3954247
commit c90784c735
2 changed files with 70 additions and 39 deletions

View File

@ -1,6 +1,6 @@
.. zad1611611564761
.. enabling-mount-bryce-hw-accelerator-for-hosted-vram-containerized-workloads:
.. _enabling-mount-bryce-hw-accelerator-for-hosted-vram-containerized-workloads:
===========================================================================
Enable Mount Bryce HW Accelerator for Hosted vRAN Containerized Workloads
@ -21,7 +21,7 @@ enables the Mount Bryce device.
.. rubric:: |prereq|
.. enabling-mount-bryce-hw-accelerator-for-hosted-vram-containerized-workloads-ul-i3g-gh2-l4b:
.. _enabling-mount-bryce-hw-accelerator-for-hosted-vram-containerized-workloads-ul-i3g-gh2-l4b:
- The system has been provisioned and unlocked.
@ -40,7 +40,8 @@ enables the Mount Bryce device.
~(keystone_admin)$ system host-lock controller-0
#. Assign labels to controller-0.
#. Assign labels to controller-0 to enable |SRIOV| device plugin, static
Kubernetes CPU manager and restricted Kubernetes topology manager policy.
.. code-block:: none
@ -48,19 +49,27 @@ enables the Mount Bryce device.
~(keystone_admin)$ system host-label-assign controller-0 kube-cpu-mgr-policy=static
~(keystone_admin)$ system host-label-assign controller-0 kube-topology-mgr-policy=restricted
#. Modify the CPU.
#. Modify the CPU core assignments for controller-0 to have 12
application-isolated physical cores \(24 virtual cores if hyper-threading
is supported and enabled on the processor\) on processor 0. Your specific
application(s) may need more or less cores.
.. code-block:: none
~(keystone_admin)$ system host-cpu-modify -f application-isolated -p0 12 controller-0
#. Modify the memory.
#. Modify the memory configuration for controller-0 numa-node 0 to have 12 1G
Huge Pages. Your specific application(s) may need more or less, or
different sized Huge Pages.
.. code-block:: none
~(keystone_admin)$ system host-memory-modify controller-0 0 -1G 12
#. List and enable the device.
#. List all devices on controller-0 and identify the name of the Mount Bryce
Hardware Accelerator (i.e. device id = 0d5c).
.. code-block:: none
@ -114,11 +123,12 @@ enables the Mount Bryce device.
| Device 0d5c | 1 | True |
+----------------------------------------------------------+-----------+---------+
#. Modify device 0000:85:00.0 as listed in the table above.
#. Modify the Mount Bryce device to enable it, specify the base driver and
vf driver, and configure it for 16 VFs.
.. code-block:: none
~(keystone_admin)$ system host-device-modify controller-0 pci_0000_85_00_0 -e true --driver igb_uio --vf-driver igb_uio -N 16
~(keystone_admin)$ system host-device-modify controller-0 pci_0000_85_00_0 -e true --driver igb_uio --vf-driver vfio -N 16
#. Unlock the host.

View File

@ -22,41 +22,62 @@ The following procedure shows an example of launching a container image with
$ source /etc/platform/openrc ~(keystone_admin)$
#. Create a pod.yml file.
#. Create a pod.yml file that requests 16 Mount Bryce VFs
\(i.e. intel.com/intel_acc100_fec: '16'\)
.. code-block:: none
~(keystone_admin)$ cat >> pod0.yml << EOF
apiVersion: v1
kind: Pod
metadata:
name: pod0
spec:
restartPolicy: Never
containers:
- name: pod0
image: "windse/pktgen-testpmd-bbdev:d1911r4p1912" volumeMounts: -
mountPath: /mnt/huge-1048576kB
name: hugepage
- mountPath: /sys/devices
name: uio
command: ["/bin/bash", "-ec", "sleep infinity"] securityContext:
privileged: false capabilities:
add:
["IPC_LOCK", "SYS_ADMIN"]
resources:
requests:
hugepages-1Gi: 4Gi memory: 4Gi intel.com/intel_acc100_fec: '16'
windriver.com/isolcpus: '24'
limits:
hugepages-1Gi: 4Gi memory: 4Gi intel.com/intel_acc100_fec: '16'
windriver.com/isolcpus: '24'
volumes: - name: hugepage
emptyDir:
medium: HugePages
- name: uio
hostPath:
path: /sys/devices
apiVersion: apps/v1
kind: Deployment
metadata:
name: pod0
annotations:
labels:
app: pod0
spec:
replicas: 1
selector:
matchLabels:
app: pod0
template:
metadata:
name: pod0
labels:
app: pod0
spec:
restartPolicy: Always
containers:
- name: pod0
image: "windse/pktgen-testpmd-bbdev:d1911r4p1912"
volumeMounts:
- mountPath: /mnt/huge-1048576kB
name: hugepage
- mountPath: /sys/devices
name: uio
command: ["/bin/bash", "-ec", "sleep infinity"]
securityContext:
privileged: false
capabilities:
add:
["IPC_LOCK", "SYS_ADMIN"]
resources:
requests:
memory: 4Gi
intel.com/intel_acc100_fec: '16'
windriver.com/isolcpus: 24
limits:
hugepages-1Gi: 2Gi
memory: 4Gi
intel.com/intel_acc100_fec: '16'
windriver.com/isolcpus: 24
volumes:
- name: hugepage
emptyDir:
medium: HugePages
- name: uio
hostPath:
path: /sys/devices
EOF
#. Start the pod.