cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

README.loopback (9406B)


      1
      2
      3        1 - LOOPBACK DRIVER
      4
      5The driver implements the main logic of the loopback test and provides
      6sysfs files to configure the test and retrieve the results.
      7A user could run a test without the need of the test application given
      8that he understands the sysfs interface of the loopback driver.
      9
     10The loopback kernel driver needs to be loaded and at least one module
     11with the loopback feature enabled must be present for the sysfs files to be
     12created and for the loopback test application to be able to run.
     13
     14To load the module:
     15# modprobe gb-loopback
     16
     17
     18When the module is probed,  New files are available on the sysfs
     19directory of the detected loopback device.
     20(typically under "/sys/bus/graybus/devices").
     21
     22Here is a short summary of the sysfs interface files that should be visible:
     23
     24* Loopback Configuration Files:
     25    async - Use asynchronous operations.
     26    iteration_max - Number of tests iterations to perform.
     27    size - payload size of the transfer.
     28    timeout - The number of microseconds to give an individual
     29              asynchronous request before timing out.
     30    us_wait - Time to wait between 2 messages
     31    type - By writing the test type to this file, the test starts.
     32           Valid tests are:
     33             0 stop the test
     34             2 - ping
     35             3 - transfer
     36             4 - sink
     37
     38* Loopback feedback files:
     39    error - number of errors that have occurred.
     40    iteration_count - Number of iterations performed.
     41    requests_completed - Number of requests successfully completed.
     42    requests_timedout - Number of requests that have timed out.
     43    timeout_max - Max allowed timeout
     44    timeout_min - Min allowed timeout.
     45
     46* Loopback result files:
     47    apbridge_unipro_latency_avg
     48    apbridge_unipro_latency_max
     49    apbridge_unipro_latency_min
     50    gpbridge_firmware_latency_avg
     51    gpbridge_firmware_latency_max
     52    gpbridge_firmware_latency_min
     53    requests_per_second_avg
     54    requests_per_second_max
     55    requests_per_second_min
     56    latency_avg
     57    latency_max
     58    latency_min
     59    throughput_avg
     60    throughput_max
     61    throughput_min
     62
     63
     64
     65            2 - LOOPBACK TEST APPLICATION
     66
     67The loopback test application manages and formats the results provided by
     68the loopback kernel module. The purpose of this application
     69is to:
     70    - Start and manage multiple loopback device tests concurrently.
     71    - Calculate the aggregate results for multiple devices.
     72    - Gather and format test results (csv or human readable).
     73
     74The best way to get up to date usage information for the application is
     75usually to pass the "-h" parameter.
     76Here is the summary of the available options:
     77
     78 Mandatory arguments
     79   -t     must be one of the test names - sink, transfer or ping
     80   -i     iteration count - the number of iterations to run the test over
     81 Optional arguments
     82   -S     sysfs location - location for greybus 'endo' entries default /sys/bus/greybus/devices/
     83   -D     debugfs location - location for loopback debugfs entries default /sys/kernel/debug/gb_loopback/
     84   -s     size of data packet to send during test - defaults to zero
     85   -m     mask - a bit mask of connections to include example: -m 8 = 4th connection -m 9 = 1st and 4th connection etc
     86                 default is zero which means broadcast to all connections
     87   -v     verbose output
     88   -d     debug output
     89   -r     raw data output - when specified the full list of latency values are included in the output CSV
     90   -p     porcelain - when specified printout is in a user-friendly non-CSV format. This option suppresses writing to CSV file
     91   -a     aggregate - show aggregation of all enabled devies
     92   -l     list found loopback devices and exit.
     93   -x     Async - Enable async transfers.
     94   -o     Timeout - Timeout in microseconds for async operations.
     95
     96
     97
     98             3 - REAL WORLD EXAMPLE USAGES
     99
    100 3.1 - Using the driver sysfs files to run a test on a single device:
    101
    102* Run a 1000 transfers of a 100 byte packet. Each transfer is started only
    103after the previous one finished successfully:
    104    echo 0 > /sys/bus/greybus/devices/1-2.17/type
    105    echo 0 > /sys/bus/greybus/devices/1-2.17/async
    106    echo 2000 > /sys/bus/greybus/devices/1-2.17/us_wait
    107    echo 100 > /sys/bus/greybus/devices/1-2.17/size
    108    echo 1000 > /sys/bus/greybus/devices/1-2.17/iteration_max
    109    echo 0 > /sys/bus/greybus/devices/1-2.17/mask
    110    echo 200000 > /sys/bus/greybus/devices/1-2.17/timeout
    111    echo 3 > /sys/bus/greybus/devices/1-2.17/type
    112
    113* Run a 1000 transfers of a 100 byte packet. Transfers are started without
    114waiting for the previous one to finish:
    115    echo 0 > /sys/bus/greybus/devices/1-2.17/type
    116    echo 3 > /sys/bus/greybus/devices/1-2.17/async
    117    echo 0 > /sys/bus/greybus/devices/1-2.17/us_wait
    118    echo 100 > /sys/bus/greybus/devices/1-2.17/size
    119    echo 1000 > /sys/bus/greybus/devices/1-2.17/iteration_max
    120    echo 0 > /sys/bus/greybus/devices/1-2.17/mask
    121    echo 200000 > /sys/bus/greybus/devices/1-2.17/timeout
    122    echo 3 > /sys/bus/greybus/devices/1-2.17/type
    123
    124* Read the results from sysfs:
    125    cat /sys/bus/greybus/devices/1-2.17/requests_per_second_min
    126    cat /sys/bus/greybus/devices/1-2.17/requests_per_second_max
    127    cat /sys/bus/greybus/devices/1-2.17/requests_per_second_avg
    128
    129    cat /sys/bus/greybus/devices/1-2.17/latency_min
    130    cat /sys/bus/greybus/devices/1-2.17/latency_max
    131    cat /sys/bus/greybus/devices/1-2.17/latency_avg
    132
    133    cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_min
    134    cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_max
    135    cat /sys/bus/greybus/devices/1-2.17/apbridge_unipro_latency_avg
    136
    137    cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_min
    138    cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_max
    139    cat /sys/bus/greybus/devices/1-2.17/gpbridge_firmware_latency_avg
    140
    141    cat /sys/bus/greybus/devices/1-2.17/error
    142    cat /sys/bus/greybus/devices/1-2.17/requests_completed
    143    cat /sys/bus/greybus/devices/1-2.17/requests_timedout
    144
    145
    1463.2 - using the test application:
    147
    148* Run a transfer test 10 iterations of size 100 bytes on all available devices
    149    #/loopback_test -t transfer -i 10 -s 100
    150    1970-1-1 0:10:7,transfer,1-4.17,100,10,0,443,509,471.700012,66,1963,2256,2124.600098,293,102776,118088,109318.898438,15312,1620,1998,1894.099976,378,56,57,56.799999,1
    151    1970-1-1 0:10:7,transfer,1-5.17,100,10,0,399,542,463.399994,143,1845,2505,2175.800049,660,92568,125744,107393.296875,33176,1469,2305,1806.500000,836,56,57,56.799999,1
    152
    153
    154* Show the aggregate results of both devices. ("-a")
    155    #/loopback_test -t transfer -i 10 -s 100  -a
    156    1970-1-1 0:10:35,transfer,1-4.17,100,10,0,448,580,494.100006,132,1722,2230,2039.400024,508,103936,134560,114515.703125,30624,1513,1980,1806.900024,467,56,57,57.299999,1
    157    1970-1-1 0:10:35,transfer,1-5.17,100,10,0,383,558,478.600006,175,1791,2606,2115.199951,815,88856,129456,110919.703125,40600,1457,2246,1773.599976,789,56,57,57.099998,1
    158    1970-1-1 0:10:35,transfer,aggregate,100,10,0,383,580,486.000000,197,1722,2606,2077.000000,884,88856,134560,112717.000000,45704,1457,2246,1789.000000,789,56,57,57.000000,1
    159
    160* Example usage of the mask option to select which devices will
    161  run the test (1st, 2nd, or both devices):
    162    # /loopback_test -t transfer -i 10 -s 100 -m 1
    163    1970-1-1 0:11:56,transfer,1-4.17,100,10,0,514,558,544.900024,44,1791,1943,1836.599976,152,119248,129456,126301.296875,10208,1600,1001609,101613.601562,1000009,56,57,56.900002,1
    164    # /loopback_test -t transfer -i 10 -s 100 -m 2
    165    1970-1-1 0:12:0,transfer,1-5.17,100,10,0,468,554,539.000000,86,1804,2134,1859.500000,330,108576,128528,124932.500000,19952,1606,1626,1619.300049,20,56,57,57.400002,1
    166    # /loopback_test -t transfer -i 10 -s 100 -m 3
    167    1970-1-1 0:12:3,transfer,1-4.17,100,10,0,432,510,469.399994,78,1959,2313,2135.800049,354,100224,118320,108785.296875,18096,1610,2024,1893.500000,414,56,57,57.200001,1
    168    1970-1-1 0:12:3,transfer,1-5.17,100,10,0,404,542,468.799988,138,1843,2472,2152.500000,629,93728,125744,108646.101562,32016,1504,2247,1853.099976,743,56,57,57.099998,1
    169
    170* Show output in human readable format ("-p")
    171    # /loopback_test -t transfer -i 10 -s 100 -m 3 -p
    172
    173    1970-1-1 0:12:37
    174    test:                       transfer
    175    path:                       1-4.17
    176    size:                       100
    177    iterations:                 10
    178    errors:                     0
    179    async:                      Disabled
    180    requests per-sec:           min=390, max=547, average=469.299988, jitter=157
    181    ap-throughput B/s:          min=90480 max=126904 average=108762.101562 jitter=36424
    182    ap-latency usec:            min=1826 max=2560 average=2146.000000 jitter=734
    183    apbridge-latency usec:      min=1620 max=1982 average=1882.099976 jitter=362
    184    gpbridge-latency usec:      min=56 max=57 average=57.099998 jitter=1
    185
    186
    187    1970-1-1 0:12:37
    188    test:                       transfer
    189    path:                       1-5.17
    190    size:                       100
    191    iterations:                 10
    192    errors:                     0
    193    async:                      Disabled
    194    requests per-sec:           min=397, max=538, average=461.700012, jitter=141
    195    ap-throughput B/s:          min=92104 max=124816 average=106998.898438 jitter=32712
    196    ap-latency usec:            min=1856 max=2514 average=2185.699951 jitter=658
    197    apbridge-latency usec:      min=1460 max=2296 average=1828.599976 jitter=836
    198    gpbridge-latency usec:      min=56 max=57 average=57.099998 jitter=1