host_exerciser¶
SYNOPSIS¶
Usage: host_exerciser [OPTIONS] SUBCOMMAND
Options:
-h,--help Print this help message and exit
-p,--pci-address TEXT [<domain>:]<bus>:<device>.<function>
-l,--log-level TEXT:{trace,debug,info,warning,error,critical,off}=warning
stdout logging level
-s,--shared open in shared mode, default is off
-t,--timeout UINT=60000 test timeout (msec)
-m,--mode UINT:value in {lpbk->0,read->1,trput->3,write->2} OR {0,1,3,2}=lpbk
host exerciser mode {lpbk,read, write, trput}
--cls UINT:value in {cl_1->0,cl_2->1,cl_4->2,cl_8->3} OR {0,1,2,3}=cl_1
number of CLs per request{cl_1, cl_2, cl_4, cl_8}
--continuousmode BOOLEAN=false
test rollover or test termination
--atomic UINT:value in {cas_4->9,cas_8->11,fadd_4->1,fadd_8->3,off->0,swap_4->5,swap_8->7} OR {9,11,1,3,0,5,7}=off
atomic requests (only permitted in combination with lpbk/cl_1)
--encoding UINT:value in {default->0,dm->1,pu->2,random->3} OR {0,1,2,3}=default
data mover or power user encoding -- random interleaves both in the same stream
-d,--delay BOOLEAN=false Enables random delay insertion between requests
--interleave UINT=0 Interleave requests pattern to use in throughput mode {0, 1, 2}
indicating one of the following series of read/write requests:
0: rd-wr-rd-wr
1: rd-rd-wr-wr
2: rd-rd-rd-rd-wr-wr-wr-wr
--interrupt UINT:INT in [0 - 3]
The Interrupt Vector Number for the device
--contmodetime UINT=1 Continuous mode time in seconds
--testall BOOLEAN=false Run all tests
--clock-mhz UINT=0 Clock frequency (MHz) -- when zero, read the frequency from the AFU
Subcommands:
lpbk run simple loopback test
mem run simple mem test
DESCRIPTION¶
A host exerciser is used to exercise and characterize the various host-FPGA interactions eg. MMIO, Data transfer from host to FPGA , PR, host to FPGA memory etc.
Host Exerciser Loopback (HE-LB)¶
The HE-LB module is responsible for generating traffic with the intention of exercising the path from the AFU to the Host at full bandwidth. Host Exerciser Loopback (HE-LB) AFU can move data between host memory and FPGA.
HE-LB IP supports: 1. Latency (AFU to Host memory read) 2. MMIO latency (Write+Read) 3. MMIO BW (64B MMIO writes) 4. BW (Read/Write, Read only, Wr only)
Host Exerciser Memory (HE-MEM)¶
The HE-MEM module is used to exercise use of FPGA connected DDR; data read from the host is written to DDR, and the same data is read from DDR before sending it back to the host. HE-MEM uses external DDR memory (i.e. EMIF) to store data. It has a customized version of the AVMM interface to communicate with the EMIF memory controller.
Execution of these exercisors requires the user to bind specific VF endpoint to vfio-pci Bind the correct endpoint for a device with B/D/F 0000:b1:00.0
[user@localhost]: sudo opae.io init -d 0000:b1:00.2 user:user
HOST EXERCISER SUB COMMANDS¶
lpbk
run host exerciser loopback test
mem
run host exerciser memory test
OPTIONAL ARGUMENTS¶
--help, -h
Prints help information and exit.
COMMON ARGUMENTS / OPTIONS¶
The following arguments are common to all commands and are optional.
-p,--pci-address
PCIe domain, bus, device, function number of fpga resource.
-l,--log-level
set host exerciser tool log level, trace, debug, info, warning, error, critical, off
-s,--shared
open FPGA PCIe resource in shared mode
-t,--timeout
host exerciser tool time out, by default time out 60000
-m,--mode
host exerciser test modes are lpbk, read, write, trput
--cls
Number of cachelines per request 1, 2, 3, 4.
--continuousmode
Configures test rollover or test termination mode.
--atomic
atomic requests.
--encoding
select data mover mode or power user mode or random.
-d,--delay
Enables random delay insertion between requests.
--interleave
Enables interleave requests in throughput mode. Value:3'b000-Rd,Wr,Rd,Wr Value:3'b001-Rd,Rd,Wr,Wr Value:3'b010-Rd,Rd,Rd,Rd,Wr,Wr,Wr,Wr Value:3'b011-Not supported
--interrupt
Accelerator interrupt vector Number.
--contmodetime
Continuous mode time in seconds.
--testall
Run all host exerciser tests.
--clock-mhz
pcie clock frequency, default value 350Mhz.
EXAMPLES¶
This command exerciser Loopback afu:
This command exerciser memory afu:
This command exerciser Loopback afu on pcie 000:3b:00.0:
This command exerciser Loopback afu on pcie 000:3b:00.0 and run in write mode:
This command exerciser Loopback afu on pcie 000:3b:00.0 and run 2 cache lines per request:
This command exerciser Loopback afu on pcie 000:3b:00.0 and run continuous mode for 10 seconds:
host_exerciser --pci-address 000:3b:00.0 -cls cl_1 -m 0 --continuousmode true --contmodetime 10 lpbk
Created: May 25, 2024