mbox series

[v10,00/10] app/testpmd: enable testpmd on Windows

Message ID 1620088449-14770-1-git-send-email-jizh@linux.microsoft.com (mailing list archive)
Headers
Series app/testpmd: enable testpmd on Windows |

Message

Jie Zhou May 4, 2021, 12:33 a.m. UTC
  This patchset is to enable testpmd on windows. It mainly includes:
- Enable building libraries on Windows that testpmd depends on
- Add necessary macros required by testpmd on Windows in rte_os_shim.h
- Add device event stubs for Windows
- Resolve name collisions with Windows types
- Add clock_gettime in testpmd on Windows
- Fix parse_fec_mode to return fec_capa instead of mode
- Replace POSIX specific codes
- Disable unsupported Apps build on Windows
- Enable testpmd build on Windows

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
- Support mempool allocation native mode only for now

---
V10 changes:
    - Remove unneeded newline in config.c
    - Add Fixes: and Cc: Stable for parse_fec_mode fix
    - More appropriate and granular commit messages
    - Use US_PER_S
    - Put signal inside ifndef

---
V9 changes:
    - Add clock_gettime for Windows into eal in rte_os_shim.h

---
V8 changes:
    - Fix pointer location for _clock_gettime in config.h

---
V7 changes:
    - Resolve V6 patch set applying conflicts due to recent upstream
      merges of linux testpmd changes, lib\meson.build format change,
      lib path changes, and sources change in meson.build under app\
    - Move Windows clock_gettime related code from config.c into 
      config.h and leverage rte_os_shim.h for timespec_get
    - Fix a "BAD_SIGN_OFF" warning for patch "[v6,09/10] app/testpmd: 
      fix unused function warnings"

---
V6 changes:
    - Fix "unused function" compilation warning when neither i40e
      nor ixgbe presents

---
V5 changes:
    - Remove macro trailing semicolon which missed to include in V4

---
V4 changes:
    - Split previous patch into more granular patches
    - Remove the bypass of rte_eal_cleanup at exit
    - Move all added macros into rte_os_shim.h
    - Remove redundant headers after the rte_os_shim patch merge
    - Revert the mman APIs replacement to leave relevant part UNIX only
    - Keep Windows library list the same structure and order as the 
      Unix library list in lib meson.build
	
---
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 (10):
  lib: build libraries that testpmd depends on
  eal/windows: add necessary macros
  eal/windows: add device event stubs
  eal/Windows: add clock_gettime on Windows
  app/testpmd: resolve name collisions
  app/testpmd: fix parse_fec_mode return type name
  app/testpmd: replace POSIX specific code
  app/testpmd: fix headers inclusion
  app/testpmd: fix unused function warnings
  app/testpmd: enable building testpmd on Windows

 app/meson.build                       |   4 -
 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           | 514 +++++++++++++-------------
 app/test-pmd/config.c                 |  86 ++---
 app/test-pmd/csumonly.c               |   2 +-
 app/test-pmd/icmpecho.c               |   4 +-
 app/test-pmd/ieee1588fwd.c            |   8 +-
 app/test-pmd/parameters.c             |  11 +-
 app/test-pmd/testpmd.c                |  21 +-
 app/test-pmd/testpmd.h                |   5 +-
 app/test-regex/meson.build            |   6 +
 app/test-sad/meson.build              |   6 +
 app/test/meson.build                  |   6 +
 lib/eal/windows/eal_dev.c             |  33 ++
 lib/eal/windows/include/rte_os_shim.h |  47 +++
 lib/eal/windows/meson.build           |   1 +
 lib/meson.build                       |   7 +
 28 files changed, 512 insertions(+), 327 deletions(-)
 create mode 100644 lib/eal/windows/eal_dev.c
  

Comments

Thomas Monjalon May 4, 2021, 7:31 a.m. UTC | #1
When you receive an ack in previous versions,
you should add it manually in your patch
so we keep track of it.
  
Kadam, Pallavi May 4, 2021, 11:51 p.m. UTC | #2
On 5/3/2021 5:33 PM, Jie Zhou wrote:
> This patchset is to enable testpmd on windows. It mainly includes:
> - Enable building libraries on Windows that testpmd depends on
> - Add necessary macros required by testpmd on Windows in rte_os_shim.h
> - Add device event stubs for Windows
> - Resolve name collisions with Windows types
> - Add clock_gettime in testpmd on Windows
> - Fix parse_fec_mode to return fec_capa instead of mode
> - Replace POSIX specific codes
> - Disable unsupported Apps build on Windows
> - Enable testpmd build on Windows
>
> 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
> - Support mempool allocation native mode only for now
>
> ---

Tested-by: Pallavi Kadam <pallavi.kadam@intel.com>
Acked-by: Pallavi Kadam <pallavi.kadam@intel.com>
  
Jie Zhou May 5, 2021, 4 p.m. UTC | #3
On Tue, May 04, 2021 at 09:31:08AM +0200, Thomas Monjalon wrote:
> When you receive an ack in previous versions,
> you should add it manually in your patch
> so we keep track of it.
> 

Will send out V11 with adding back the acked-by from V9. Thanks.