fpga: update screencast to work with both kernel drivers

Made the screencast to work with OPAE and DFL kernel drivers.
This commit is contained in:
Ed Bartosh 2020-01-16 18:32:33 +02:00
parent 4e2855dc0f
commit 15ce126817

View File

@ -2,6 +2,18 @@
PV='pv -qL' PV='pv -qL'
# check if FPGA devices exist
if [ -d /sys/class/fpga ] ; then
DRIVER=OPAE
DEVICE_PREFIX=/dev/intel-fpga-port
elif [ -d /sys/class/fpga_region ] ; then
DRIVER=DFL
DEVICE_PREFIX=/dev/dfl-port
else
>&2 echo 'ERROR: FPGA devices not found or kernel drivers not loaded'
exit 1
fi
command() command()
{ {
speed=$2 speed=$2
@ -45,13 +57,13 @@ record()
{ {
clear clear
out 'Record this screencast' out 'Record this screencast'
command 'asciinema rec -t "Intel FPGA Device Plugin for Kubernetes in orchestrated mode with DFL kernel driver." Intel-FPGA-Device-Plugin-for-Kubernetes-orchestrated-DFL-Demo.cast -c "sh ./screencast-fpga-orchestrated-dfl.sh play"' command "asciinema rec -t 'Intel FPGA Device Plugin for Kubernetes in orchestrated mode with $DRIVER kernel driver.' Intel-FPGA-Device-Plugin-for-Kubernetes-orchestrated-$DRIVER-Demo.cast -c 'sh ./screencast-fpga-orchestrated.sh play'"
} }
screen1() screen1()
{ {
clear clear
out 'This screencast demonstrates deployment of the Intel FPGA Plugin for Kubernetes in orchestrated mode with DFL kernel driver' out "This screencast demonstrates deployment of the Intel FPGA Plugin for Kubernetes in orchestrated mode with $DRIVER kernel driver"
out "Let's get started!" out "Let's get started!"
out '1. Check if Kubernetes node is in good shape:' out '1. Check if Kubernetes node is in good shape:'
command 'kubectl get nodes' command 'kubectl get nodes'
@ -124,20 +136,18 @@ screen6()
clear clear
cd $GOPATH/src/github.com/intel/intel-device-plugins-for-kubernetes cd $GOPATH/src/github.com/intel/intel-device-plugins-for-kubernetes
out '6. Run OPAE workload that uses NLB3 bitstream' out '6. Run OPAE workload that uses NLB3 bitstream'
out 'Program devices with a bitstream that is not wanted by the workload:' out 'Program devices with a NLB0 bitstream that is not wanted by the workload:'
command 'sudo /opt/intel/fpga-sw/fpgatool -b /srv/intel.com/fpga/Arria10.dcp1.2/nlb0.gbs -d /dev/dfl-port.0 pr' command "sudo /opt/intel/fpga-sw/fpgatool -b /srv/intel.com/fpga/Arria10.dcp1.2/nlb0.gbs -d ${DEVICE_PREFIX}.0 pr"
command 'sudo /opt/intel/fpga-sw/fpgatool -b /srv/intel.com/fpga/Arria10.dcp1.2/nlb0.gbs -d /dev/dfl-port.1 pr' command "sudo /opt/intel/fpga-sw/fpgatool -b /srv/intel.com/fpga/Arria10.dcp1.2/nlb0.gbs -d ${DEVICE_PREFIX}.1 pr"
out 'Check if devices are programmed with it:' out 'Check if devices are programmed with it:'
command 'cat /sys/class/fpga_region/region0/dfl-port.0/afu_id' command 'cat /sys/class/*/*/*/afu_id'
command 'cat /sys/class/fpga_region/region1/dfl-port.1/afu_id'
out 'Run workload:' out 'Run workload:'
command 'kubectl create -f demo/test-fpga-region.yaml' command 'kubectl create -f demo/test-fpga-region.yaml'
sleep 5 sleep 5
out 'Look at the test output' out 'Look at the test output'
command 'kubectl logs test-fpga-region' command 'kubectl logs test-fpga-region'
out 'Check if orchestration reprogrammed one device with required(NLB3) bitstream:' out 'Check if orchestration reprogrammed one device with required(NLB3) bitstream:'
command 'cat /sys/class/fpga_region/region0/dfl-port.0/afu_id' command 'cat /sys/class/*/*/*/afu_id'
command 'cat /sys/class/fpga_region/region1/dfl-port.1/afu_id'
} }
screen7() screen7()
@ -164,5 +174,5 @@ elif [ "$1" == 'cleanup' ] ; then
elif [ "$1" == 'record' ] ; then elif [ "$1" == 'record' ] ; then
record record
else else
echo 'Usage: screencast-fpga-orchestrated-dfl.sh [--help|help|-h] | [play [<screen number>]] | [cleanup] | [record]' echo 'Usage: screencast-fpga-orchestrated.sh [--help|help|-h] | [play [<screen number>]] | [cleanup] | [record]'
fi fi