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 .. 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 Enable Mount Bryce HW Accelerator for Hosted vRAN Containerized Workloads
@ -21,7 +21,7 @@ enables the Mount Bryce device.
.. rubric:: |prereq| .. 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. - The system has been provisioned and unlocked.
@ -40,7 +40,8 @@ enables the Mount Bryce device.
~(keystone_admin)$ system host-lock controller-0 ~(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 .. 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-cpu-mgr-policy=static
~(keystone_admin)$ system host-label-assign controller-0 kube-topology-mgr-policy=restricted ~(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 .. code-block:: none
~(keystone_admin)$ system host-cpu-modify -f application-isolated -p0 12 controller-0 ~(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 .. code-block:: none
~(keystone_admin)$ system host-memory-modify controller-0 0 -1G 12 ~(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 .. code-block:: none
@ -114,11 +123,12 @@ enables the Mount Bryce device.
| Device 0d5c | 1 | True | | 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 .. 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. #. Unlock the host.

View File

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