[dpdk-dev] [PATCH v3 0/6] app/testpmd: enable testpmd on Windows
Jie Zhou
jizh at linux.microsoft.com
Tue Apr 13 19:19:17 CEST 2021
This patch is to enable testpmd on windows. It mainly includes:
- Enable building libraries on Windows that TestPMD depends on
- Enable building testpmd on Windows
- Resolve name collisions with Windows types
- Add clock_gettime_monotic for testpmd on Windows
- Make printf format work for both Linux and Windows
- Add missing macros
- Add missing IPPROTO_RAW to in.h
- Replace htons with RTE_BE16
- Replace inet_aton with inet_pton
- Fix parse_fec_mode to return fec_capa to remove compilation warning
- ...
Issue under active investigation:
- Recent DPDK upstream change "eal: detach memsegs on cleanup" exposed
failure at eal exit with "EAL: Could not unmap memory: No Error".
Investigating KERNELBASE!UnmapViewOfFile. The issue will cause system
crash. Currently temporarily remove cleanup at exit on Windows.
Will revert after issue root caused and fixed
Future work:
- Some issues discovered at validation need further investigations
* Perf inconsistency: TPUT fluctuated significantly from runs
* After traffic stop, port stats shows pps being 0 while bps not
* mempool allocation only succeed with native. Other methods failed
at rte_mem_lock/VirtualLock.
- Hot-plug on Windows not supported yet
---
V3 changes:
- Split one patch into patchset
- Replace mman APIs with rte_mem_xxx APIs
- Use OS independant rte_rand
- Add device event stubs for Windows
- Disable unsupported Apps
---
V2 changes:
- Fix commit message log long line issue
- Fix coding style issues of pointer location
- Fix indentation issue
- Fix FreeBSD2101 compilation issue of AF_INET undeclared
---
Jie Zhou (6):
app/testpmd: build libraries that testpmd depends on
app/testpmd: define IPPROTO_RAW in in.h
app/testpmd: add required Macros
app/testpmd: add device event stubs on Windows
app/testpmd: add rte_mem_lockall in librte_eal
app/testpmd: enable testpmd on Windows
app/meson.build | 10 +-
app/pdump/meson.build | 6 +
app/proc-info/meson.build | 6 +
app/test-acl/meson.build | 6 +
app/test-bbdev/meson.build | 6 +
app/test-cmdline/meson.build | 6 +
app/test-compress-perf/meson.build | 6 +
app/test-crypto-perf/meson.build | 6 +
app/test-eventdev/meson.build | 6 +
app/test-fib/meson.build | 6 +
app/test-flow-perf/meson.build | 6 +
app/test-pipeline/meson.build | 6 +
app/test-pmd/cmdline.c | 12 +-
app/test-pmd/cmdline_flow.c | 440 ++++++++++----------
app/test-pmd/config.c | 35 +-
app/test-pmd/csumonly.c | 2 +-
app/test-pmd/icmpecho.c | 4 +-
app/test-pmd/ieee1588fwd.c | 10 +-
app/test-pmd/meson.build | 4 +
app/test-pmd/parameters.c | 8 +-
app/test-pmd/testpmd.c | 44 +-
app/test-pmd/testpmd.h | 4 +-
app/test-regex/meson.build | 6 +
app/test-sad/meson.build | 6 +
app/test/meson.build | 6 +
lib/librte_eal/include/rte_eal_paging.h | 20 +
lib/librte_eal/unix/eal_unix_memory.c | 13 +
lib/librte_eal/version.map | 1 +
lib/librte_eal/windows/eal_dev.c | 35 ++
lib/librte_eal/windows/eal_memory.c | 10 +
lib/librte_eal/windows/include/netinet/in.h | 1 +
lib/librte_eal/windows/include/rte_os.h | 16 +
lib/librte_eal/windows/meson.build | 1 +
lib/meson.build | 7 +
34 files changed, 500 insertions(+), 261 deletions(-)
create mode 100644 lib/librte_eal/windows/eal_dev.c
--
2.30.0.vfs.0.2
More information about the dev
mailing list