Comment 28 for bug 1836682

Revision history for this message
Paulina Flores (paulina-flores) wrote :

Hi everyone,

Thanks for your collaboration and efforts. I've run this test case with all the information gathered in here and have marked it as passed. I got the PCI alias from the nova.conf document inside the compute nova pod and set that property for the flavour, and the instance spawned correctly in the corresponding compute.

As such, here are the steps used:

Steps:
1. Ssh to host compute and configure VF on eno1 port
 echo '8' > /sys/class/net/eno1/device/sriov_numvfs
2. Lock host machine
3. Configure interface (eno1) as pci-pt
  DATA0IF=eno1
  PHYSNET0='physnet0'
  SPL=/tmp/tmp-system-port-list
  SPIL=/tmp/tmp-system-host-if-list

  for COMPUTE in compute-0 compute-1; do
    echo "Configuring interface for: $COMPUTE"
    set -ex
    system host-port-list ${COMPUTE} --nowrap > ${SPL}
    system host-if-list -a ${COMPUTE} --nowrap > ${SPIL}
    DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}')
    DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}')
    DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}')
    DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}')
    system host-if-modify -m 1500 -n pcipass -c pci-passthrough ${COMPUTE} ${DATA0IFUUID}
    system interface-datanetwork-assign ${COMPUTE} pcipass ${PHYSNET0}
    set +ex
  done

4. Find physical and vitual device IDs using lspci -nn | grep Eth
5. Unlock host machine
6. Wait for stx-openstack application status is complete
7. Create an instance using pcipassthrough alias set to flavor
 mkdir -p /home/sysadmin/.ssh/
 vi /home/sysadmin/.ssh/id_rsa
 openstack keypair create key1 --private-key /home/sysadmin/.ssh/id_rsa
 openstack security group create security1
 openstack security group rule create --ingress --protocol icmp --remote-ip 0.0.0.0/0 security1
 openstack security group rule create --ingress --protocol tcp --remote-ip 0.0.0.0/0 security1
 openstack security group rule create --ingress --protocol udp --remote-ip 0.0.0.0/0 security1

        kubectl -n openstack get pod | grep nova-compute
        kubectl -n openstack exec -it ${nova-compute-agent} bash
        cd /etc/nova/
        cat nova.conf

        [pci]
        alias = {"vendor_id": "8086", "product_id": "0435", "name": "qat-dh895xcc-pf"}
        alias = {"vendor_id": "8086", "product_id": "0443", "name": "qat-dh895xcc-vf"}
        alias = {"vendor_id": "8086", "product_id": "37c8", "name": "qat-c62x-pf"}
        alias = {"vendor_id": "8086", "product_id": "37c9", "name": "qat-c62x-vf"}

 openstack flavor create --ram 4096 --disk 100 --vcpus 2 m1.medium.pci_passthrough
 openstack flavor set --property "pci_passthrough:alias"="${alias}:0" m1.medium.pci_passthrough
 openstack image create --file xenial-server-cloudimg-amd64-disk1.img --disk-format qcow2 --public ${NET}-image
        openstack server create --image ${NET}-image --flavor m1.medium.pci_passthrough --network public-net0 --security-group security1 --key-name key1 ${NET}-vm0