Skip to content

Test: Refactored performance tests on rxtxapp#1306

Open
awilczyns wants to merge 11 commits intomainfrom
refactored-performance-tests-on-rxtxapp
Open

Test: Refactored performance tests on rxtxapp#1306
awilczyns wants to merge 11 commits intomainfrom
refactored-performance-tests-on-rxtxapp

Conversation

@awilczyns
Copy link
Collaborator

@awilczyns awilczyns commented Oct 28, 2025

Purpose
Introduces a dual-host session capacity sweep framework for MTL ST2110-20 performance testing. Uses binary search to find the maximum number of video sessions that maintain target FPS on a single lcore (or multi-core), across resolutions (1080p/4K/8K), framerates (25/29/50/59fps), with optional ST2022-7 redundancy and DSA offloading.

File Lines What it does
collect_platform_info.py 373 Gathers SW/HW platform info (OS, kernel, CPU, NIC firmware, BIOS, memory) from remote hosts via SSH
generate_report.py 859 Generates self-contained HTML performance report by parsing pytest log dirs — sweep results, topology, platform tables, per-session FPS/throughput details
dsa.py 330 DSA device management — auto-discovery via lspci, NUMA-aware selection, VFIO binding with IOMMU group validation
performance_monitoring.py 451 FPS validation (warmup/cooldown filtering, 99% tolerance), frame counting, throughput extraction, CpuCoreMonitor class (background mpstat sampler)
test_vf_perf_dualhost.py 911 Main test file — 4 parametrized test functions (test_tx, test_rx, test_tx_redundant, test_rx_redundant), each with 48 combinations. Binary-search sweep with crash recovery, inter-iteration VF cleanup, and sweep summary logging

Key Modifications
• conftest.py — Major expansion: topology fixture override for extra fields (dsa_device, build_path, per-host mtl_path), nic_port_list now sets up redundant VFs on 2nd NIC, new collect_platform_config autouse fixture, log_session routes perf tests to dedicated log folder, auto-base_performance marker for 1080p/59fps tests
• rxtxapp.py — Config generation refactored for ST2022-7 redundant mode (dual interfaces, dual IP arrays), queue count overrides (rx_queues_cnt/tx_queues_cnt), netsniff capture_time fix
• application_base.py — start_process changed to background=True (was blocking), get_executable_path handles direct paths
• nicctl.py — Per-host MTL paths, new reset_vfio_bindings() (crash recovery) and ensure_vfio_bound() (inter-iteration cleanup)
• gen_config.py — New --media_path and --dsa_device CLI args, extra_info field in topology config
• execute.py — New helpers: kill_all_rxtxapp(), stop_remote_process(), read_remote_log()
• universal_params.py — New params: redundant, nic_port_r, source_ip_r, destination_ip_r, rx_queues_cnt, tx_queues_cnt, disable_migrate, tx_copy_once
• ip_pools.py — New tx_r/rx_r redundant IP address pools
pytest.ini — Registered performance and base_performance markers

@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch from 99ea65a to e55efd6 Compare October 31, 2025 12:34
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch from b89972a to 33d8e2d Compare December 22, 2025 15:38
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 3 times, most recently from f569077 to cfbf02c Compare February 6, 2026 19:34
…approach.

Tests are prepared for test performance for multiple session on single lcore.

Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Multi-session performance tests are now available for 25, 30, 50, and 59 FPS with and without DSA usage. Currently, only FPS metrics are measured. Additional KPIs will be enhanced in the future.

Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
…s rx redundant single core

Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 6 times, most recently from 36fba0b to aff37bc Compare February 20, 2026 19:19
…port generation

Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 2 times, most recently from 0aa748d to b2528de Compare February 23, 2026 07:43
@awilczyns awilczyns marked this pull request as ready for review February 23, 2026 07:45
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 5 times, most recently from 8fc9cd1 to 69534fd Compare February 23, 2026 10:50
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch from ad8c956 to 926fae6 Compare February 23, 2026 14:00
# Copyright(c) 2024-2025 Intel Corporation

"""
DSA (Data Streaming Accelerator) device management — detection, NUMA validation, setup.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rename it to DMA, this is the general dma handling isn't it ?

Comment on lines 506 to 508
# ── Verify media file is available on the TX host ──
# The TX side reads the input file; if missing the companion crashes.
_ensure_media_on_host(tx_host, media_file_path, test_config)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't think we wan't to do this this way there is a pytest fixture for input files ramdisk creaton,

Here you just put the files randomly outside of that framework if you do so the perf will and is limited via the disk operations wchich is suboptimal

IF there is no file we exit with error and thats fine
Please configure the ramdisk way

Copy link
Collaborator

@DawidWesierski4 DawidWesierski4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i geniully think that the most importat would be the ramdisk fixture workaround fixes
and the genconfig -> i would try to simplify it, we don't wnat to add anything there

we should propably also add copyright everywhere i see a lot of these are missing

@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 4 times, most recently from 82e0fd9 to fbb0ed7 Compare February 25, 2026 12:35
@awilczyns awilczyns enabled auto-merge (squash) February 25, 2026 12:40
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch from fbb0ed7 to 449ce07 Compare February 25, 2026 13:15
Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants