You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(stack-coexist): route sendmsg/recvmsg/getpeername/getsockname/shutdown to kernel stack
Add 5 host bridges (ff_host_sendmsg/recvmsg/shutdown/getpeername/getsockname) and route them in ff_syscall_wrapper.c for managed kernel fds; ff_shutdown also dual-drives the dual-stack map fd like ff_close. All under FF_KERNEL_COEXIST. Verified: macro-on build rc=0 with symbols present, macro-off rc=0 size 6539682 byte-identical to baseline (zero regression); cmocka dual-mode (host 27/24, epoll 21, config 54/50) incl. new loopback bridge test; real-machine kernel-fd selftest PASS (getpeername/getsockname/sendmsg/recvmsg/shutdown end-to-end) and F-Stack fast path curl 200. Spec D8 converged (zh+en): these 5 now routed, readv/writev/ioctl remain known limitations.
Copy file name to clipboardExpand all lines: docs/kernel_event_support_spec/02-current-state-analysis.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@
12
12
> -**hook cross-reference**: `fstack_kernel_fd_map[65536]` (`ff_hook_syscall.c:258`, bare array, lock-free, single-threaded poll); epoll dual-build merge (create `:1990-2000`, wait `:2324+`, close linkage `:1871-1884`); **socket/listen are NOT dual-built**.
13
13
> -**native vs hook**: isomorphic (map / epoll merge / close linkage); divergent (socket/bind/listen/connect auto dual-build is v6-only).
14
14
> -**v6 map gap (D9, grep verified)**: `grep ff_native_fd_map / ff_native_map_get/set/clear lib/` → 0 hits; `FF_MAX_FREEBSD_FILES` only in `ff_hook_syscall.c:257` and these docs. The v6 native map and default dual-build/dual-drive are NOT yet landed — to-be-implemented at R7. v6 adds (HOST_CFLAGS, `#ifdef FF_KERNEL_COEXIST`): `static int ff_native_fd_map[FF_MAX_FREEBSD_FILES]` + `ff_native_map_get/set/clear` in `ff_host_interface.{c,h}`, lock-free (modeled on hook).
15
-
> -**D1-D8** code-doc inconsistencies fixed in §6 (D2 config parse line `:1027-1031` not `:956`; D3 no `default_stack`, `ff_api.h:91` comment stale; D4 header `unsigned int` vs impl `socklen_t`; D5 `ff_stack_get_stats` NOT implemented; D6 encode-offset + `ff_epoll_pairs`, not enum/ownership-table; D8 routing covers 13 entries, NOT `ff_readv/writev/send/recv/getpeername/getsockname/shutdown/ioctl/sendmsg/recvmsg`).
15
+
> -**D1-D8** code-doc inconsistencies fixed in §6 (D2 config parse line `:1027-1031` not `:956`; D3 no `default_stack`, `ff_api.h:91` comment stale; D4 header `unsigned int` vs impl `socklen_t`; D5 `ff_stack_get_stats` NOT implemented; D6 encode-offset + `ff_epoll_pairs`, not enum/ownership-table; D8 R8 adds kernel routing for `sendmsg/recvmsg/getpeername/getsockname/shutdown` (first four single-stack hot-route, shutdown kernel-route + dual-stack dual-drive); `ff_readv/writev/ioctl` remain unrouted (known limitation)).
0 commit comments