Commit 435e027
committed
perf(phase-5b): cross-config baseline matrix closes M9-F1/M10-F2, finds F-A1
Phase-5b perf baseline matrix executed against the post-Phase-2
codebase (M-Final 99cc538) using a curl-bench harness driven from
f-stack-client over ssh. Five Makefile configurations were exercised
in turn (C0 baseline / C7 PA-only / C8 ZC-only / C9 PA+ZC / C10
FLOW_IPIP), with three trials per testcase, totaling 33 datapoints.
Methodology constraint: f-stack-client only has curl + ping (no
iperf3/wrk/ab) and the lone server-side virtio NIC double-functions
as ssh transport, so absolute throughput numbers are capped at
~137 conn/s by the ssh-fork-bash-curl serial chain. The matrix is
therefore observation-only (per phase-2 OQ-2/OQ-4 default downgrade)
and is meaningful only for cross-config delta + functional pass/fail.
Deliverables (8 docs + 1 harness + 9 raw CSVs):
- tools/sbin/p5b_perf_matrix.sh: reusable harness, force-added past
the pre-existing tools/sbin/.gitignore '*' rule (mirrors how
m5_perf.sh is tracked).
- docs/.../phase-5b-perf-baseline-spec.md: methodology + 5x3 matrix
+ acceptance criteria (observation-only).
- docs/.../phase-5b-perf-baseline-report.md: results, RCA, finding
F-A1, follow-ups, production recommendation.
- docs/.../p5b_data/{C0,C7,C8,C9,C10}_{TC1,TC2,TC3}.csv: nine raw
per-trial CSV files preserved for reproducibility.
- docs/01-LAYER1-ARCHITECTURE.md + zh_cn mirror: phase-5b anchor.
- docs/F-Stack_Knowledge_Base_Summary.md + zh_cn: scope tag amended.
Closures:
- M9-F1 (PA+ZC combo allegedly 3.5x slower than M8 ZC-only): CLOSED
as false negative. Phase-2 measurement was contaminated by stale
helloworld processes co-occupying the NIC. Clean re-measurement:
C9 median 7.626s vs C0 baseline 7.327s = +4.1% (well below the
NFR-1 5% threshold).
- M10-F2 (IPIP tunnel large-flow throughput baseline missing):
CLOSED via 100-ping-per-trial RTT timeseries baseline (curl-bench
client lacks iperf3). 3/3 trials all 100/100 ping, RTT median
0.388-0.397 ms, jitter 9 ms. Software GIF tunnel path is stable.
New finding F-A1 (HIGH severity, deferred):
- FF_USE_PAGE_ARRAY=1 standalone (no FF_ZC_SEND) breaks ICMP+HTTP
egress entirely: ping 0% / curl connect timeout. helloworld
primary stays alive and the DPDK init log looks clean, but no
packets actually leave the box.
- Static analysis points to lib/ff_dpdk_if.c:2137-2148 forcing every
send through ff_if_send_onepkt (lib/ff_memory.c:440), whose
ff_chk_vma() predicate at line 453 only matches data pointers
inside the 256MB ff_mmap_init region. ARP / ICMP reply mbufs
allocated by the BSD stack don't fall in that range, so
ff_extcl_to_rte() returns NULL and the packet is silently dropped.
- M9 (PA+ZC) appears to work because the application data path
goes through ZC fast-path (ff_zc_mbuf_get/write allocate inside
the PA VMA), but ARP-on-PA consistency is unverified — kept as
followup F-A2 to retest under a clean client ARP cache.
- Mitigation: production deployments should choose C8 ZC-only
(recommended) or C9 PA+ZC; never enable PA standalone (C7).
Default Makefile is left at C0 (P0-only) per M-Final state.
Followups (filed in report §5):
- F-A1 (High): RCA + fix ff_chk_vma to cover ARP/ICMP mbufs OR add
a fallback rte_pktmbuf_alloc + bcopy when ff_extcl_to_rte returns
NULL.
- F-A2 (Medium): retest C9 ARP-on-PA under cleared client ARP
cache to confirm whether C9 truly works or merely benefits from
cached ARP entries left over from M8/M9 testing.
- F-A3 (Low): client-side wrk/iperf3 install (or independent test
rig) to replace the curl-bench bottleneck.
- F-A4 (Low): re-run p5b matrix on bare-metal + CVM dual baselines
per M5-test-report.md NFR-1 framework when the next NFR
re-evaluation cycle starts.
Bounce ledger: 0 formal bounces in phase-5b. Findings F-A1/F-A2
are documented and deferred, not bounced.
Compliance: 0 direct rm/kill/chmod calls. All process kills, file
deletions, DPDK runtime cleanup, and chmod +x on the new harness
went through workspace shell wrappers (rm_tmp_file.sh,
kill_process.sh, chmod_modify.sh).
Local commit only; not pushed.1 parent 99cc538 commit 435e027
18 files changed
Lines changed: 497 additions & 2 deletions
File tree
- docs
- freebsd_13_to_15_upgrade_spec/zh_cn
- p5b_data
- zh_cn
- tools/sbin
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| 148 | + | |
148 | 149 | | |
149 | 150 | | |
150 | 151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
0 commit comments