DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Windows community call: MoM 2021-08-04
@ 2021-08-05 19:15 Dmitry Kozlyuk
  2021-08-06 23:17 ` William Tu
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Kozlyuk @ 2021-08-05 19:15 UTC (permalink / raw)
  To: dev

# About

The meeting takes place in MS Teams every two weeks on Wednesday 15:00 UTC.
Ask Harini Ramakrishnan <Harini.Ramakrishnan@microsoft.com> for invitation.


# Attendees

* Microsoft:
  - Khoa To
  - Narcisa Ana Maria Vasile (Naty)
  - Omar Cordona
  - Tyler Retzlaff
* NVIDIA:
  - Dmitry Kozlyuk (DmitryK)
  - Tal Shnaiderman
* VMWare:
  - Cheng-Chung William Tu (VMWare)
  - Sergey Madaminov (VMWare)
* Mark Cheatham (Boulder Imaging)
* Nick Connolly (Datapath)
* Pallavi Kadam (Intel)
* Yan Vugenfirer (Daynix)


# Agenda

* Patch status review
* Porting OvS build system to meson status report
* Windows 21.11 roadmap planning
* Misc


# Patch review

1. eal: Add EAL API for threading v13

	DmitryK to finish the review and ack.
	Naty to follow up with Thomas if the series can be merged without
	the next one once acked because the code is used in unit tests at
	least.

2. Enable the internal EAL thread API v2

	Naty to send v3.

3. [v2] eal/windows: ensure all enabled CPUs are counted v2

	DmitryK acked, but suggested a shorted working.
	Naty to track the patch (maybe send v3 following suggestion).

4. windows/virt2phys: fix paging issue v2 (DmitryK)

	Tyler to do a security-centered review and/or ping DmitryM.


# Porting OvS build system to meson (William Tu)

Status: OvS compiles with some features disabled, with a lot of warnings.
Issues:

* vhost-user is Linux-specific.
  [Omar] Microsoft is working on functional equivalent.
* rte_version* not exported.
  AI William to send patches.
* rte_open_logstream() implementation relies on Linux-specific fopencookie().
  We need a more generic facility to redirect logs.
  AI William and DmitryK to discuss.
* meson not finding DPDK with pkg-config, maybe meson bug.
  AI William and DmitryK to investigate.

[Omar] What are the use cases for OvS on Windows?
[William]:
1. VMWare NSX on Windows;
2. AF_XDP replacement (fast data path);
   [Omar] Windows now has its own experimental AF_XDP
3. Kubernetes containers scenario.


# Windows 21.11 roadmap

AI DmitryK to send a roadmap patch, below are brief notes.

1. Harini, Omar, and Tyler will work on establishing the process of signing
and publishing netuio and virt2phys. Likely some form of external signing
will be used, i.e. not by Microsoft name. Audit before signing must be
aligned with DPDK releases. CI for signing is also currently missing.
Microsoft will discuss the topic externally and reach more people of needed.

2. DmitryK will work on interrupt support in DPDK and netuio.
   Intel will help with testing on their HW.
   Microsoft will help with code review.

3. Naty will finish the work on threading API.
   DmitryK to track them and review on time.

4. Tyler will work on enabling shared build of DPDK, mostly
solving the issues with thread-local storage. At least patches will be sent
by 21.11, not sure if merged. DmitryK will help with review.

6. DmitryK will replace SetupAPI with cfgmgr32 API in lib/eal and bus/pci.

7. Harini will expedite investigation by Microsoft,
   why netuio doesn't work with vmxnet3 HW in VMWare hypervisor.

8. External issues to track:

8.1) wpcap lacks pkg-config file:
     https://github.com/nmap/npcap/issues/299
8.2) meson 0.58 unable to build DPDK:
     https://github.com/mesonbuild/meson/issues/8981


# Misc

* We need to better automation scripts for things in Windows GSG:
  - to setup development environment;
  - to enable "Lock pages in memory privilege";
  - to install drivers.

* netuio needs tracing (logging), maybe it will be WPP tracing,
  maybe Microsoft will advise a better technology.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Windows community call: MoM 2021-08-04
  2021-08-05 19:15 [dpdk-dev] Windows community call: MoM 2021-08-04 Dmitry Kozlyuk
@ 2021-08-06 23:17 ` William Tu
  2021-08-17 14:14   ` Bruce Richardson
  0 siblings, 1 reply; 6+ messages in thread
From: William Tu @ 2021-08-06 23:17 UTC (permalink / raw)
  To: Dmitry Kozlyuk, dpdk-dev

On Thu, Aug 5, 2021 at 12:15 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
>
snip

> # Porting OvS build system to meson (William Tu)
>
> Status: OvS compiles with some features disabled, with a lot of warnings.
> Issues:
>
> * vhost-user is Linux-specific.
>   [Omar] Microsoft is working on functional equivalent.
> * rte_version* not exported.
>   AI William to send patches.
> * rte_open_logstream() implementation relies on Linux-specific fopencookie().
>   We need a more generic facility to redirect logs.
>   AI William and DmitryK to discuss.
> * meson not finding DPDK with pkg-config, maybe meson bug.

To give more details about this for people who are interested.
At OVS side, we tried to link the DPDK library, by doing below at
meson.build file
    libdpdk = dependency('libdpdk', method: 'pkg-config')" , or give
it a specific path
    libdpdk = cc.find_library('dpdk', dirs: ['C:\\temp\\dpdk\\lib'])

However, it doesn't work, with error below
    Run-time dependency libdpdk found: NO (tried pkgconfig)
    meson.build:45:4: ERROR: Dependency "libdpdk" not found, tried pkgconfig

On the other hand, pkg-config seems OK for locating the dpdk library.
PS C:\k8s-antrea-dpdk-win\ovs> pkg-config --list-all
libdpdk      DPDK - The Data Plane Development Kit (DPDK).
libdpdk-libs dpdk-libs - Internal-only DPDK pkgconfig file. Not for direct use.

We are using meson 0.59.0 and pkg-config-lite 0.28
Currently we can work around it by linking the rte_xxx.lib one-by-one.
    rte_eal_lib = cc.find_library('rte_eal', dirs: ['C:\\temp\\dpdk\\lib'])
    rte_ethdev_lib = cc.find_library('rte_ethdev', dirs:
['C:\\temp\\dpdk\\lib'])

Regards,
William

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Windows community call: MoM 2021-08-04
  2021-08-06 23:17 ` William Tu
@ 2021-08-17 14:14   ` Bruce Richardson
  2021-08-18 23:40     ` William Tu
  0 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2021-08-17 14:14 UTC (permalink / raw)
  To: William Tu; +Cc: Dmitry Kozlyuk, dpdk-dev

On Fri, Aug 06, 2021 at 04:17:32PM -0700, William Tu wrote:
> On Thu, Aug 5, 2021 at 12:15 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> >
> snip
> 
> > # Porting OvS build system to meson (William Tu)
> >
> > Status: OvS compiles with some features disabled, with a lot of warnings.
> > Issues:
> >
> > * vhost-user is Linux-specific.
> >   [Omar] Microsoft is working on functional equivalent.
> > * rte_version* not exported.
> >   AI William to send patches.
> > * rte_open_logstream() implementation relies on Linux-specific fopencookie().
> >   We need a more generic facility to redirect logs.
> >   AI William and DmitryK to discuss.
> > * meson not finding DPDK with pkg-config, maybe meson bug.
> 
> To give more details about this for people who are interested.
> At OVS side, we tried to link the DPDK library, by doing below at
> meson.build file
>     libdpdk = dependency('libdpdk', method: 'pkg-config')" , or give
> it a specific path
>     libdpdk = cc.find_library('dpdk', dirs: ['C:\\temp\\dpdk\\lib'])
> 
> However, it doesn't work, with error below
>     Run-time dependency libdpdk found: NO (tried pkgconfig)
>     meson.build:45:4: ERROR: Dependency "libdpdk" not found, tried pkgconfig
> 

Can you share the meson log file snippet where it tries the pkg-config
call? Does PKG_CONFIG_PATH have to be set to a special value to get the .pc
files found?

For the "find_library" calls, that would not be expected to work since
there is no single "libdpdk.so" file.

By any chance are you looking to investigate meson subproject support in
future? [1] It should provide an easy way to provide DPDK with OVS for
systems without it already installed, but may require some small changes to
DPDK meson files to work neatly. I've always meant to investigate how to
use it for applications using DPDK but never actually got around to it.

/Bruce

[1] https://mesonbuild.com/Subprojects.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Windows community call: MoM 2021-08-04
  2021-08-17 14:14   ` Bruce Richardson
@ 2021-08-18 23:40     ` William Tu
  2021-08-19  9:12       ` Bruce Richardson
  0 siblings, 1 reply; 6+ messages in thread
From: William Tu @ 2021-08-18 23:40 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Dmitry Kozlyuk, dpdk-dev

On Tue, Aug 17, 2021 at 7:14 AM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Fri, Aug 06, 2021 at 04:17:32PM -0700, William Tu wrote:
> > On Thu, Aug 5, 2021 at 12:15 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> > >
> > snip
> >
> > > # Porting OvS build system to meson (William Tu)
> > >
> > > Status: OvS compiles with some features disabled, with a lot of warnings.
> > > Issues:
> > >
> > > * vhost-user is Linux-specific.
> > >   [Omar] Microsoft is working on functional equivalent.
> > > * rte_version* not exported.
> > >   AI William to send patches.
> > > * rte_open_logstream() implementation relies on Linux-specific fopencookie().
> > >   We need a more generic facility to redirect logs.
> > >   AI William and DmitryK to discuss.
> > > * meson not finding DPDK with pkg-config, maybe meson bug.
> >
> > To give more details about this for people who are interested.
> > At OVS side, we tried to link the DPDK library, by doing below at
> > meson.build file
> >     libdpdk = dependency('libdpdk', method: 'pkg-config')" , or give
> > it a specific path
> >     libdpdk = cc.find_library('dpdk', dirs: ['C:\\temp\\dpdk\\lib'])
> >
> > However, it doesn't work, with error below
> >     Run-time dependency libdpdk found: NO (tried pkgconfig)
> >     meson.build:45:4: ERROR: Dependency "libdpdk" not found, tried pkgconfig
> >
>
> Can you share the meson log file snippet where it tries the pkg-config
> call? Does PKG_CONFIG_PATH have to be set to a special value to get the .pc
> files found?

Hi Bruce,
Thanks!
The log below:
---
Target machine cpu: x86_64
Pkg-config binary for MachineChoice.HOST is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config:
C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0
.28-1\bin\pkg-config.EXE (0.28)
Determining dependency 'libdpdk' with pkg-config executable
'C:\\ProgramData\\chocola
tey\\lib\\pkgconfiglite\\tools\\pkg-config-lite-0.28-1\\bin\\pkg-config.EXE'
env[PKG_CONFIG_PATH]:
Called `C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\
pkg-config.EXE --modversion libdpdk` -> 1

Run-time dependency libdpdk found: NO (tried pkgconfig)
---
However, I copy the command and run it on powershell
PS C:\k8s-antrea-dpdk-win\ovs>
C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-
config-lite-0.28-1\bin\pkg-config.EXE --modversion libdpdk
21.08.0-rc1

Yes, for example:
$env:PKG_CONFIG_PATH = 'C:\temp\DPDK\lib\pkgconfig'

>
> For the "find_library" calls, that would not be expected to work since
> there is no single "libdpdk.so" file.
>
> By any chance are you looking to investigate meson subproject support in
> future? [1] It should provide an easy way to provide DPDK with OVS for
> systems without it already installed, but may require some small changes to
> DPDK meson files to work neatly. I've always meant to investigate how to
> use it for applications using DPDK but never actually got around to it.

Sure, I'm new to Meson, will take a look at subproject support.
Thanks
William

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Windows community call: MoM 2021-08-04
  2021-08-18 23:40     ` William Tu
@ 2021-08-19  9:12       ` Bruce Richardson
  2021-08-19 12:36         ` William Tu
  0 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2021-08-19  9:12 UTC (permalink / raw)
  To: William Tu; +Cc: Dmitry Kozlyuk, dpdk-dev

On Wed, Aug 18, 2021 at 04:40:02PM -0700, William Tu wrote:
> On Tue, Aug 17, 2021 at 7:14 AM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Fri, Aug 06, 2021 at 04:17:32PM -0700, William Tu wrote:
> > > On Thu, Aug 5, 2021 at 12:15 PM Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> wrote:
> > > >
> > > snip
> > >
> > > > # Porting OvS build system to meson (William Tu)
> > > >
> > > > Status: OvS compiles with some features disabled, with a lot of warnings.
> > > > Issues:
> > > >
> > > > * vhost-user is Linux-specific.
> > > >   [Omar] Microsoft is working on functional equivalent.
> > > > * rte_version* not exported.
> > > >   AI William to send patches.
> > > > * rte_open_logstream() implementation relies on Linux-specific fopencookie().
> > > >   We need a more generic facility to redirect logs.
> > > >   AI William and DmitryK to discuss.
> > > > * meson not finding DPDK with pkg-config, maybe meson bug.
> > >
> > > To give more details about this for people who are interested.
> > > At OVS side, we tried to link the DPDK library, by doing below at
> > > meson.build file
> > >     libdpdk = dependency('libdpdk', method: 'pkg-config')" , or give
> > > it a specific path
> > >     libdpdk = cc.find_library('dpdk', dirs: ['C:\\temp\\dpdk\\lib'])
> > >
> > > However, it doesn't work, with error below
> > >     Run-time dependency libdpdk found: NO (tried pkgconfig)
> > >     meson.build:45:4: ERROR: Dependency "libdpdk" not found, tried pkgconfig
> > >
> >
> > Can you share the meson log file snippet where it tries the pkg-config
> > call? Does PKG_CONFIG_PATH have to be set to a special value to get the .pc
> > files found?
> 
> Hi Bruce,
> Thanks!
> The log below:
> ---
> Target machine cpu: x86_64
> Pkg-config binary for MachineChoice.HOST is not cached.
> Pkg-config binary missing from cross or native file, or env var undefined.
> Trying a default Pkg-config fallback at pkg-config
> Found pkg-config:
> C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0
> .28-1\bin\pkg-config.EXE (0.28)
> Determining dependency 'libdpdk' with pkg-config executable
> 'C:\\ProgramData\\chocola
> tey\\lib\\pkgconfiglite\\tools\\pkg-config-lite-0.28-1\\bin\\pkg-config.EXE'
> env[PKG_CONFIG_PATH]:
> Called `C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\
> pkg-config.EXE --modversion libdpdk` -> 1
> 
> Run-time dependency libdpdk found: NO (tried pkgconfig)
> ---
> However, I copy the command and run it on powershell
> PS C:\k8s-antrea-dpdk-win\ovs>
> C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-
> config-lite-0.28-1\bin\pkg-config.EXE --modversion libdpdk
> 21.08.0-rc1
> 
> Yes, for example:
> $env:PKG_CONFIG_PATH = 'C:\temp\DPDK\lib\pkgconfig'
> 

Looking at the meson log, it appears that the PKG_CONFIG_PATH is empty for
the meson call to pkg-config "env[PKG_CONFIG_PATH]:", which may explain why
DPDK is not found. I suspect meson only uses the PKG_CONFIG_PATH from the
environment on first run, but beyond that you can configure a
PKG_CONFIG_PATH using a meson configuration option "-Dpkg_config_path". Can
you try explicitly setting that in your build and see if it fixes it for
you?

/Bruce

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Windows community call: MoM 2021-08-04
  2021-08-19  9:12       ` Bruce Richardson
@ 2021-08-19 12:36         ` William Tu
  0 siblings, 0 replies; 6+ messages in thread
From: William Tu @ 2021-08-19 12:36 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Dmitry Kozlyuk, dpdk-dev

[...]
> > Target machine cpu: x86_64
> > Pkg-config binary for MachineChoice.HOST is not cached.
> > Pkg-config binary missing from cross or native file, or env var undefined.
> > Trying a default Pkg-config fallback at pkg-config
> > Found pkg-config:
> > C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0
> > .28-1\bin\pkg-config.EXE (0.28)
> > Determining dependency 'libdpdk' with pkg-config executable
> > 'C:\\ProgramData\\chocola
> > tey\\lib\\pkgconfiglite\\tools\\pkg-config-lite-0.28-1\\bin\\pkg-config.EXE'
> > env[PKG_CONFIG_PATH]:
> > Called `C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\
> > pkg-config.EXE --modversion libdpdk` -> 1
> >
> > Run-time dependency libdpdk found: NO (tried pkgconfig)
> > ---
> > However, I copy the command and run it on powershell
> > PS C:\k8s-antrea-dpdk-win\ovs>
> > C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-
> > config-lite-0.28-1\bin\pkg-config.EXE --modversion libdpdk
> > 21.08.0-rc1
> >
> > Yes, for example:
> > $env:PKG_CONFIG_PATH = 'C:\temp\DPDK\lib\pkgconfig'
> >
>
> Looking at the meson log, it appears that the PKG_CONFIG_PATH is empty for
> the meson call to pkg-config "env[PKG_CONFIG_PATH]:", which may explain why
> DPDK is not found. I suspect meson only uses the PKG_CONFIG_PATH from the
> environment on first run, but beyond that you can configure a
> PKG_CONFIG_PATH using a meson configuration option "-Dpkg_config_path". Can
> you try explicitly setting that in your build and see if it fixes it for
> you?

Hi Bruce,

It works, thanks a lot! I did
PS C:\k8s-antrea-dpdk-win\ovs> meson --reconfigure build
-Dpkg_config_path=C:\temp\dpdk\lib\pkgconfig\
Log below, if you're interested
----
The Meson build system
Version: 0.59.1
...
Pkg-config binary for MachineChoice.HOST is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config:
C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\pkg-config.EXE
(0.28)
Determining dependency 'libdpdk' with pkg-config executable
'C:\\ProgramData\\chocolatey\\lib\\pkgconfiglit
e\\tools\\pkg-config-lite-0.28-1\\bin\\pkg-config.EXE'
env[PKG_CONFIG_PATH]: C:/temp/dpdk/lib/pkgconfig
Called `C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\pkg-config.EXE
--modversion libdpdk` -> 0
21.08.0-rc1
env[PKG_CONFIG_PATH]: C:/temp/dpdk/lib/pkgconfig
Called `C:\ProgramData\chocolatey\lib\pkgconfiglite\tools\pkg-config-lite-0.28-1\bin\pkg-config.EXE
--cflag
s libdpdk` -> 0
-include rte_config.h -march=native -IC:/temp/dpdk/include
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: C:/temp/dpdk/lib/pkgconfig
---
William

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-08-19 12:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-05 19:15 [dpdk-dev] Windows community call: MoM 2021-08-04 Dmitry Kozlyuk
2021-08-06 23:17 ` William Tu
2021-08-17 14:14   ` Bruce Richardson
2021-08-18 23:40     ` William Tu
2021-08-19  9:12       ` Bruce Richardson
2021-08-19 12:36         ` William Tu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).