Skip to content

Test: Refactored performance tests on rxtxapp#1306

Merged
awilczyns merged 12 commits intomainfrom
refactored-performance-tests-on-rxtxapp
Mar 3, 2026
Merged

Test: Refactored performance tests on rxtxapp#1306
awilczyns merged 12 commits intomainfrom
refactored-performance-tests-on-rxtxapp

Conversation

@awilczyns
Copy link
Copy Markdown
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
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 8 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 6 times, most recently from ad8c956 to 926fae6 Compare February 23, 2026 14:00
Comment thread tests/validation/common/collect_platform_info.py
Comment thread tests/validation/common/collect_platform_info.py Outdated
Comment thread tests/validation/common/collect_platform_info.py Outdated
Comment thread tests/validation/common/collect_platform_info.py Outdated
Comment thread tests/validation/common/collect_platform_info.py
Comment thread tests/validation/mtl_engine/dsa.py Outdated
Comment thread tests/validation/mtl_engine/performance_monitoring.py Outdated
Comment thread tests/validation/tests/dual/performance/test_vf_perf_dualhost.py Outdated
Comment thread tests/validation/configs/gen_config.py Outdated
Comment thread tests/validation/mtl_engine/application_base.py
Copy link
Copy Markdown
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

Comment thread tests/validation/mtl_engine/execute.py Outdated
@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
@DawidWesierski4 DawidWesierski4 force-pushed the refactored-performance-tests-on-rxtxapp branch from 449ce07 to ff09d39 Compare March 2, 2026 10:04
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch 5 times, most recently from 6532b8f to f3502e8 Compare March 3, 2026 14:47
awilczyns added 11 commits March 3, 2026 14:48
…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>
…port generation

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>
@awilczyns awilczyns force-pushed the refactored-performance-tests-on-rxtxapp branch from f3502e8 to 3cced23 Compare March 3, 2026 14:52
- Add _get_active_vf_pf_indices() to track which PFs host active VFs
- Rewrite _select_sniff_interface() with topology-aware heuristic:
  single-host captures on VF-hosting PF (loopback visibility),
  multi-host prefers PF without VFs (avoids VFIO contention)
- Add 1s delay after VF creation in nicctl for VFIO binding stabilization
- Handle empty PCAP streams gracefully in compliance teardown
- Skip redundant VF creation only when capture needs the 2nd PF (multi-host)

Signed-off-by: Wilczynski, Andrzej <andrzej.wilczynski@intel.com>
@awilczyns awilczyns disabled auto-merge March 3, 2026 15:54
@awilczyns awilczyns enabled auto-merge (squash) March 3, 2026 15:54
Copy link
Copy Markdown
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.

reaprove after force push

@awilczyns awilczyns merged commit 89ba5ca into main Mar 3, 2026
18 of 21 checks passed
@awilczyns awilczyns deleted the refactored-performance-tests-on-rxtxapp branch March 3, 2026 15:58
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