Commit 14355bf
dpdk-port-leader
port: re-apply F-Stack local DPDK patches onto 24.11.6 (4 patches: redundant cleanup + igb_uio + rte_timer + eal secondary)
Re-applies 4 historical F-Stack patches on top of the freshly-replaced upstream
24.11.6 tree per plan.md §4.4 (single-commit merge per DP-A8). Patch list
updated 3 -> 4 after user 2026-06-09 14:50 KNI feedback uncovered patch-scout's
missed identification of 29c7d58.
All 4 patches re-applied via SEMANTIC re-application (not git apply hunk-based,
because each patch failed git apply --check due to context-line drift between
23.11.5 and 24.11.6). Approach: cp from dpdk.bak-23.11.5/ for cp-able units
(igb_uio subtree, lib/timer files, kernel meson.build, freebsd rte_os.h);
manual replace_in_file for eal.c PRIMARY guard rebase; selective rm via
rm_tmp_file.sh for redundant-files deletion.
Patches re-applied (chronological):
29c7d58 (2025-01-10) Remove redundant dpdk files (310 files, -43195)
Strategy: keep F-Stack's lean dpdk/ mirror.
Result on 24.11.6:
- 301 files auto-N/A (24.11.6 upstream already lacks them: KNI subtree,
old igb_uio, liquidio, acc200_*, nfp, idpf, flow_classify, kni-related
examples/ip_pipeline + server_node_efd, Windows EAL log, etc.)
- 6 files belong to old igb_uio subtree, replaced by NEW igb_uio from
5f3768c (kept active, NOT deleted)
- 1 file (drivers/baseband/acc/acc_common.c) is legitimate in 24.11.6
upstream (referenced by 24's baseband/acc/meson.build:27); does NOT
match the 23.11.5 'redundant' semantics — restored after build break
- 2 files actually deleted on 24.11.6 (still redundant for F-Stack):
* dpdk/dts/framework/remote_session/remote_session.py
* dpdk/dts/framework/remote_session/ssh_session.py
5f3768c (2025-10-31) Sync DPDK's modifies (igb_uio + freebsd rte_os.h)
- dpdk/kernel/linux/igb_uio/{igb_uio.c, compat.h, Kbuild, Makefile, meson.build}
cp-ed from dpdk.bak-23.11.5/kernel/linux/igb_uio/ (DPDK upstream removed
igb_uio in 21.05; F-Stack maintains its own port from <=20.11)
- dpdk/kernel/linux/meson.build cp-ed from bak (subdirs = ['igb_uio'])
- dpdk/kernel/meson.build cp-ed from bak (point to 'linux' subdir)
- dpdk/lib/eal/freebsd/include/rte_os.h cp-ed from bak (FreeBSD 13.1+
CPU_AND/CPU_OR 3-arg adaptation)
62f1c34 (2026-01-16) Fix infinite loop when restarting DPDK secondary
- dpdk/lib/timer/rte_timer.c cp-ed from bak (+13: rte_timer_meta_init body)
- dpdk/lib/timer/rte_timer.h cp-ed from bak (+8: declaration; lib/timer in
24.11.6 has 0 logical changes vs 23.11.5, only macro position
adjustment; cp is safe)
- lib/ff_dpdk_if.c:910 rte_timer_meta_init() call site UNCHANGED (M2 tree
replace does not touch f-stack/lib/, so the call site remains intact)
9271817 (2026-03-18) eal: secondary process eal_bus_cleanup PRIMARY guard
- dpdk/lib/eal/linux/eal.c manual rebase to 24.11.6 call order:
surrounded eal_bus_cleanup() at line 1324 with PRIMARY guard, after the
24.11.6-newly-added rte_service_finalize() at line 1323. Real upstream
fix in DPDK 25.07 commit 4bc53f8f0d64, NOT backported to 24.11.6.
KNI clarification (per user 2026-06-09 14:50 feedback):
F-Stack's 'KNI' (lib/ff_dpdk_kni.c) is a ring + virtio_user user-space
exception path with ZERO dependency on DPDK librte_kni. lib/Makefile:34
comment 'No DPDK KNI support on FreeBSD' / 'Enable KNI, via virtio only,
no longer support rte_kni.ko' makes this explicit. FF_KNI=1 retained.
No DPDK lib/kni or kernel/linux/kni in upgraded dpdk/ (24.11.6 upstream
already lacks them, plus 29c7d58 keeps it that way). Only kernel module
in dpdk/kernel/linux/ is igb_uio (per 5f3768c).
Build verification (M3 + M4 acceptance):
ninja -C build: exit=0 / 0 errors / 3 warnings / 2m29s build
(vs 23.11.5 baseline 4 warnings; cleaner)
igb_uio.ko: compiled successfully (MODPOST + LD [M] OK)
lib/libfstack.a: clean rebuild OK / 0 errors / 16s
example/helloworld: 29021744 bytes (identical to 23.11.5 baseline)
example/helloworld_epoll: 29019656 bytes (identical to 23.11.5 baseline)
helloworld_zc: skip (libfstack.a built without FF_ZC_SEND)
R-D11 rte_ip.h stub forwarding: AUTO-RESOLVED — 24.11.6's rte_ip.h (210B
stub) auto-forwards to rte_ip4.h + rte_ip6.h, making struct rte_ipv4_hdr /
rte_ipv6_hdr visible without any F-Stack source edit. M4 'fix:' commit
SKIPPED per spec §4.4 exception clause (zero glue-layer changes needed).
Local commit only; no push.1 parent fe55216 commit 14355bf
13 files changed
Lines changed: 1047 additions & 347 deletions
File tree
- dpdk
- dts/framework/remote_session
- kernel
- linux
- igb_uio
- lib
- eal
- freebsd/include
- linux
- timer
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments