The UIO Linux Kernel driver should be used for this design example, The VFIO Linux Kernel driver is not supported. Use the following steps to verify the external fetch descriptors:
- Define the following software flag in p0_software/user/common/include/mcdma_ip_params.h
#define IFC_MCDMA_EXTERNL_DESC
- Complete the instructions outlined in Prerequisites to install the UIO Linux Kernel driver, and build the driver application for testing.
- Build the devmem utility and run as the root user.
cd p0_software/user/cli/devmem/
make clean all
- Disable the queues and FIFOs.
sudo ./devmem 0000:09:00.0 0 0x8 0x1
- Enable the queues and FIFOs.
sudo ./devmem 0000:09:00.0 0 0x8 0x0
Run the following commands to test the external fetch descriptor:
cd p0_software/user/cli/perfq/ make clean all sudo ./perfq_app -b 0000:09:00.0 -d 1 -c 16 -a 8 -p 128 -s 128 -u
Configuration:
- bdf (-b 0000:09:00.0)
- 16 channels (-c 16)
- Bidirectional (-u)
- Payload length of 128 bytes in each descriptor (-p 128)
- Total data amount to transfer = 128 bytes (-s 128)
- Dump every 1 second (-d 1)
- Total 8 threads/CPU core used (-a 8)
Figure 36. Results of External Fetch Descriptor Test