Skip to content

Stride Run - TUI output format design #2

@dragonJACson

Description

@dragonJACson

Perftest's TUI output is pretty good, but still has some problems:

  1. When there are a lot of QPs, things get too verbose, every QP would output detailed information of CQ, MR, PSN and GIDs
  2. Parsers unfriendly, especially when there is a new option added in perftest's output

To solve these problems, we would split output into sections, including test configuration, QP details, and results, user could decide which section they don't need, and we would also provide structured format output like yaml / toml / json, as serde already supports them.

----------------------------  Test Configuration  ----------------------------
Device         : rocep65s0f0
Transport      : IB         
QP Count       : 2          
Connection Type: RC         
MTU            : 4096       
GID Type       : RoCEv2     
Rx Depth       : 512        
Tx Depth       : 256        

--------------------------------  QP Details  --------------------------------
QP #0: (Local QPN: 0x04fc PSN: 0xc46be7) -> (Remote QPN: 0x04fc PSN: 0x7d6053)
QP #1: (Local QPN: 0x04fd PSN: 0xc46be8) -> (Remote QPN: 0x04fd PSN: 0x7d6054)
Local  GID: Index: 0, GID: fd80:0000:0000:0000:0000:0000:0000:0002
Remote GID: Index: 1, GID: fd80:0000:0000:0000:0000:0000:0000:0003

-----------------------------  Running Results  ------------------------------
 Size (B)   | Iterations | Avg BW (Gb/s) | MsgRate (Mpps) | Time  
------------+------------+---------------+----------------+-------
 65536      | 1847       | 98.08         | 0.187068       | 23.4s 
{
  "timestamp": "2023-11-15T10:30:00Z",
  "metadata": {
    "test_id": "550e8400-e29b-41d4-a716-446655440000",
    "version": "0.1.0",
    "duration": 60,
    "hostname": "test-server",
    "tags": ["production"]
  },
  "config": {
    "test_type": "Send BW",
    "device_name": "rocep65s0f0",
    "transport_type": "IB",
    "qp_count": 1
  },
  "results": [
    {
      "msg_size": 65536,
      "iterations": 1000,
      "bw_peak": 0.0,
      "bw_average": 98.08,
      "msg_rate": 0.187068
    }
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions