Skip to contentSkip to conversation

Windows Draft Build

dpdk-dev In review Dmitry Kozlyuk 4 participants 20 messages Feb 8, 2020 – Aug 15, 2021 Network drivers

lore
Share & tools
lore
#0 lore raw

Hi,

I'm having trouble building "dpdk.sln" from "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repository using Visual Studio 2019 Community Edition. All projects are set up to use some "llvm" toolset. If I install LLVM Build Tools and switch toolset to Clang-cl, build fails because Platform SDK is not accessible. I tried to add Platform SDK include paths to Additional Include Directories, but ended up with multiple errors, indicating incompatibilities between Windows headers and Clang. Please find screenshots and logs attached.

"Netuio.sln" builds OK.

Signature · 1 line
Dmitry Kozlyuk

1>------ Rebuild All started: Project: librte_kvargs, Configuration: Debug x64 ------
1>In file included from <built-in>:1:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(26,10): warning : non-portable path to file '<Windows.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h:105:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\kernelspecs.h(36,10): warning : non-portable path to file '"driverspecs.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h:198:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\basetsd.h(322,12): warning : cast to 'void * __ptr32' from smaller integer type 'unsigned long' [-Wint-to-void-pointer-cast]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(2487,1): error : '__C_ASSERT__' declared as an array with a negative size
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(193,47): message : expanded from macro 'C_ASSERT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3245,19): warning : '__cpuidex' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3350,19): warning : '_m_prefetchw' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3398,19): warning : '__getcallerseflags' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3411,19): warning : '__segmentlimit' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3424,19): warning : '__readpmc' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3471,19): warning : '__movsb' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3472,19): warning : '__movsw' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3473,19): warning : '__movsd' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3474,19): warning : '__movsq' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3509,19): warning : '__stosw' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3510,19): warning : '__stosd' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3511,19): warning : '__stosq' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3715,19): warning : '__writegsbyte' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3716,19): warning : '__writegsword' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3717,19): warning : '__writegsdword' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3718,19): warning : '__writegsqword' is not a recognized builtin; consider including <intrin.h> to access non-builtin intrinsics [-Wignored-pragma-intrinsic]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(3886,35): warning : __declspec attribute 'no_init_all' is not supported [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(49,39): message : expanded from macro 'DECLSPEC_NOINITALL'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(8670,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(8770,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(9004,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(9013,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(16662,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(16670,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack2.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(16792,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(17202,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack2.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(17904,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18006,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack8.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18018,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18288,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack1.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18322,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18346,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack1.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18386,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:171:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h:24:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:182:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h(18929,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h(172,10): warning : non-portable path to file '<WinBase.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:172:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winbase.h(9305,5): warning : macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winbase.h(9302,104): message : expanded from macro 'MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS'
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(615,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack1.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(629,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(932,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack2.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(948,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1049,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack2.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1070,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1148,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1214,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1231,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack4.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:173:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1305,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5266,9): warning : unknown pragma ignored [-Wunknown-pragmas]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5267,9): warning : unknown pragma ignored [-Wunknown-pragmas]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h(174,10): warning : non-portable path to file '<WinUser.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:174:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(1180,5): warning : anonymous structs are a Microsoft extension [-Wmicrosoft-anon-tag]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4899,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\pshpack2.h(26,9): message : previous '#pragma pack' directive that modifies alignment is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:174:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4983,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>note: previous '#pragma pack' directive that modifies alignment is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(13552,5): warning : anonymous structs are a Microsoft extension [-Wmicrosoft-anon-tag]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(13557,5): warning : anonymous structs are a Microsoft extension [-Wmicrosoft-anon-tag]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h(176,10): warning : non-portable path to file '<WinNls.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:176:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnls.h:1457:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\stringapiset.h(19,10): warning : non-portable path to file '<WinNls.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:26:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\windows.h:180:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winver.h(18,10): warning : non-portable path to file '<specstrings.h>'; specified path differs in case from file name on disk [-Wnonportable-include-path]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:19:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h:13:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1488,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1853,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1405,37): message : previous definition is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1488,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1854,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1207,37): message : previous definition is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1497,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1849,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1446,37): message : previous definition is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1497,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1850,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wstdio.h(1223,37): message : previous definition is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:19:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1412,16): warning : '_vsnprintf_l' is deprecated: This function or variable may be unsafe. Consider using _vsnprintf_s_l instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations] 1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1378,24): message : '_vsnprintf_l' has been explicitly marked deprecated here
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:19:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1788,19): warning : '_vsprintf_l' is deprecated: This function or variable may be unsafe. Consider using _vsprintf_s_l instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations] 1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1449,24): message : '_vsprintf_l' has been explicitly marked deprecated here
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:19:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1800,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(766,5): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1849,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1774,37): message : previous definition is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1980,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1895,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1961,37): message : previous definition is here
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1980,5): warning : attribute declaration must precede definition [-Wignored-attributes]
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt.h(1896,17): message : expanded from macro '__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1400,37): message : previous definition is here
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:20:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_debug.h:13:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\../common/include/rte_debug.h:17:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include/rte_log.h:25:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_common.h:18:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\../common/include/rte_common.h:25:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(259,32): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(260,31): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:64:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_tailq.h:20:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_debug.h:13:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\../common/include/rte_debug.h:17:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include/rte_log.h:26:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(259,32): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(260,31): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(65,26): warning : extra tokens at end of #ifdef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(66,26): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:82:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_bus.h:53:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\common\include\rte_dev.h:23:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(259,32): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_config.h(260,31): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(83,24): warning : extra tokens at end of #ifdef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(84,24): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:186:
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override/rte_config.h(259,32): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override/rte_config.h(260,31): warning : extra tokens at end of #undef directive [-Wextra-tokens]
1>In file included from <built-in>:1:
1>In file included from Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h:196:
1>In file included from C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\time.h:13:
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wtime.h(188,20): warning : '_wctime64' is deprecated: This function or variable may be unsafe. Consider using _wctime64_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations] 1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_wtime.h(103,16): message : '_wctime64' has been explicitly marked deprecated here
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(311,55): message : expanded from macro '_CRT_INSECURE_DEPRECATE'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vcruntime.h(301,47): message : expanded from macro '_CRT_DEPRECATE_TEXT'
1><built-in>(1,10): warning : the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
1>Z:\mk\exec-env\windows\..\..\..\lib\librte_eal\windows\rte_override\rte_windows.h(169,9): message : previous '#pragma pack' directive that modifies alignment is here
1>Done building project "librte_kvargs.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

#1 lore raw
Quoted 10 lines · Dmitry Kozlyuk

Hi,

I'm having trouble building "dpdk.sln" from "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repository using Visual Studio 2019 Community Edition. All projects are set up to use some "llvm" toolset. If I install LLVM Build Tools and switch toolset to Clang-cl, build fails because Platform SDK is not accessible. I tried to add Platform SDK include paths to Additional Include Directories, but ended up with multiple errors, indicating incompatibilities between Windows headers and Clang. Please find screenshots and logs attached.

Quoted 2 lines

"Netuio.sln" builds OK.

Dmitry...
Did you install the LLVM toolchain for VStudio:
https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain

You will need to ensure VS is closed before installing it.
It says it supports VS2017, but it will also work with VS2019, if VS2017 is already installed.

ranjit m.

#2 lore raw
Quoted 5 lines

Did you install the LLVM toolchain for VStudio:
https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain

You will need to ensure VS is closed before installing it.
It says it supports VS2017, but it will also work with VS2019, if VS2017 is already installed.

Thanks Ranjit! Wouldn't have guessed I need VS2017 extension
for VS2019 development. "Dpdk.sln" builds OK, will try launching sample apps a bit later. I'm planning to use QEMU and virtio PMD (modern interface, because legacy uses PIO, which is not implemented by netuio) by adding a project similar to existing "librte_pmd_i40e".

Signature · 1 line
Dmitry Kozlyuk
#3 lore raw

Hi,

Quoted 2 lines

"Dpdk.sln" builds OK, will try launching sample apps a bit later.

Netuio driver consistently fails to install on Windows 10 in QEMU with virtio-net (modern interface). Described below is my attempt to install the driver from clean "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repo. The only change is hardware ID in INF file. What am I doing wrong here?

1. QEMU version: 4.2.0

QEMU command line:

    qemu-system-x86_64 \
        -enable-kvm \
        -cpu host -smp 'cores=4,sockets=1,threads=1' \
        -m 6G \
        -drive "file=$disk,format=qcow2" \
        -nic "user,id=winnet,model=e1000,smb=$HOME/src/dpdk" \
        -netdev 'socket,listen=:10000,id=dp0' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp0' \
        -netdev 'socket,listen=:10001,id=dp1' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp1' \
        \
        -vga qxl

2. Loading unsigned drivers is enabled as follows:

Microsoft Windows [Version 10.0.18363.418]
(c) 2019 Microsoft Corporation. All rights reserved.

Z:\>bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS The operation completed successfully.

Z:\>bcdedit.exe -set TESTSIGNING ON
The operation completed successfully.

Z:\>shutdown -r -t 0

After that, the desktop message shows:

Test Mode
Windows 10 Pro
Build 18362.19h1_release.190318-1202

Including this step FTR, it works for other drivers.

3. Device status (no conflicting drivers):

The drivers for this device are not installed. (Code 28)

There are no compatible drivers for this device.

To find a driver for this device, click Update Driver.

Device event log (note the hardware ID part):

Device PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01\3&13c0b0c5&0&20 requires further installation.

4. INF file is modified to include corresponding hardware ID:

kernel/windows/netuio/netuio.inf +2 -0
index b1696cc50..b6fd2c798 100644
@@ -55,6 +55,7 @@ DriverVer=
 %F158B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_158B   ; I40E_DEV_ID_25G_SFP28
 %F37D0.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_37D0
 %F153B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_153B
+%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01
 
 [netuio_Device.NT]
 CopyFiles=Drivers_Dir
@@ -121,5 +122,6 @@ F158A.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX
 F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XXV710-DA1"
 F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722"
 F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V"
+virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)"
 netuio.DeviceDesc = "netuio Device"
 netuio.SVCDESC = "netuio Service"

5. Installation command fails after waiting for several minutes:

Z:\>pnputil /add-driver Z:\windows\x64\Debug\netuio\netuio\netuio.inf /install Microsoft PnP Utility

Adding driver package: netuio.inf
Driver package added successfully.
Published Name: oem2.inf
Unable to install driver package: This operation returned because the timeout period expired.

Total driver packages: 1
Added driver packages: 0

Z:\>

Please find "C:\Windows\INF\setupapi.dev.log" attached as "clean_setupapi.dev.log". Using devcon.exe from DDK yields similar result and log.

I also tried to add event tracing to the driver, but the driver doesn't even get loaded, that is, DriverEntry is never called, so the cause shouldn't be in driver code.

Quoted 3 lines

I'm planning to use QEMU and virtio PMD (modern interface, because legacy uses PIO, which is not implemented by netuio) by adding a project similar to existing "librte_pmd_i40e".

Also tried doing this, attaching patches. Got the same result.

I start every new attempt to install a driver variant from clean system restored from disk snapshot. "Userpci" driver from my port installs and binds OK, so this is not an QEMU/Windows incompatibility issue.

Signature · 1 line
Dmitry Kozlyuk
#4 lore raw
Quoted 113 lines · Dmitry Kozlyuk

Hi,

Quoted 2 lines

"Dpdk.sln" builds OK, will try launching sample apps a bit later.

Netuio driver consistently fails to install on Windows 10 in QEMU with virtio-net (modern interface). Described below is my attempt to install the driver from clean "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repo. The only change is hardware ID in INF file. What am I doing wrong here?

1. QEMU version: 4.2.0

QEMU command line:

     qemu-system-x86_64 \
         -enable-kvm \
         -cpu host -smp 'cores=4,sockets=1,threads=1' \
         -m 6G \
         -drive "file=$disk,format=qcow2" \
         -nic "user,id=winnet,model=e1000,smb=$HOME/src/dpdk" \
         -netdev 'socket,listen=:10000,id=dp0' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp0' \
         -netdev 'socket,listen=:10001,id=dp1' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp1' \
         \
         -vga qxl

2. Loading unsigned drivers is enabled as follows:

      Microsoft Windows [Version 10.0.18363.418]
      (c) 2019 Microsoft Corporation. All rights reserved.

      Z:\>bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS The operation completed successfully.

      Z:\>bcdedit.exe -set TESTSIGNING ON
      The operation completed successfully.

      Z:\>shutdown -r -t 0

After that, the desktop message shows:

      Test Mode
      Windows 10 Pro
      Build 18362.19h1_release.190318-1202

Including this step FTR, it works for other drivers.

3. Device status (no conflicting drivers):

      The drivers for this device are not installed. (Code 28)

      There are no compatible drivers for this device.

      To find a driver for this device, click Update Driver.

Device event log (note the hardware ID part):

      Device PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01\3&13c0b0c5&0&20 requires further installation.

4. INF file is modified to include corresponding hardware ID:

kernel/windows/netuio/netuio.inf +0 -0
index b1696cc50..b6fd2c798 100644
@@ -55,6 +55,7 @@ DriverVer=

  %F158B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_158B   ; I40E_DEV_ID_25G_SFP28 %F37D0.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_37D0 %F153B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_153B +%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01

  [netuio_Device.NT]
  CopyFiles=Drivers_Dir

kernel/windows/netuio/netuio.inf +0 -0
@@ -121,5 +122,6 @@ F158A.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX

  F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XXV710-DA1" F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722" F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V" +virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)" netuio.DeviceDesc = "netuio Device"
  netuio.SVCDESC = "netuio Service"

5. Installation command fails after waiting for several minutes:

      Z:\>pnputil /add-driver Z:\windows\x64\Debug\netuio\netuio\netuio.inf /install Microsoft PnP Utility

      Adding driver package:  netuio.inf
      Driver package added successfully.
      Published Name:         oem2.inf
      Unable to install driver package: This operation returned because the timeout period expired.

      Total driver packages:  1
      Added driver packages:  0

      Z:\>

Please find "C:\Windows\INF\setupapi.dev.log" attached as "clean_setupapi.dev.log". Using devcon.exe from DDK yields similar result and log.

I also tried to add event tracing to the driver, but the driver doesn't even get loaded, that is, DriverEntry is never called, so the cause shouldn't be in driver code.

Quoted 3 lines

I'm planning to use QEMU and virtio PMD (modern interface, because legacy uses PIO, which is not implemented by netuio) by adding a project similar to existing "librte_pmd_i40e".

Quoted 6 lines

Also tried doing this, attaching patches. Got the same result.

I start every new attempt to install a driver variant from clean system restored from disk snapshot. "Userpci" driver from my port installs and binds OK, so this is not an QEMU/Windows incompatibility issue.

Oh boy! If DriverEntry() is not being called, the loader is finding something wrong and is unable to load the driver.

@Harini: Can Jeffrey (@MS) help here?

thanks,

Ranjit

#5 lore raw
Quoted 3 lines

Oh boy! If DriverEntry() is not being called, the loader is finding something wrong and is unable to load the driver.

@Harini: Can Jeffrey (@MS) help here?

By trial and error I determined that changing device class from "Net" to a custom one fixes the issue (see attached patch), root cause is still unknown.

From this point, running virtio PMD is blocked by lack of multi-BAR support in NETUIO, which is a separate concern, outside of scope of this thread.

Signature · 1 line
Dmitry Kozlyuk
#6 lore raw
Quoted 10 lines · Dmitry Kozlyuk
Quoted 3 lines

Oh boy! If DriverEntry() is not being called, the loader is finding something wrong and is unable to load the driver.

@Harini: Can Jeffrey (@MS) help here?

By trial and error I determined that changing device class from "Net" to a custom one fixes the issue (see attached patch), root cause is still unknown.

 From this point, running virtio PMD is blocked by lack of multi-BAR support in NETUIO, which is a separate concern, outside of scope of this thread.

Dmitry...
This is a very interesting find. Will this change to a custom class allow the driver to load in the native (bare-metal) case, too? Also, Naty (Narcisa) has a patch for multi-BAR support, that we (Intel) were not able to successfully use...but it's working for her. If you'd like to try it out, she can send it to you.

ranjit m.

#7 lore raw

Hi Ranjit,

Quoted 1 line

This is a very interesting find. Will this change to a custom class allow the driver to load in the native (bare-metal) case, too?

I don't have a DPDK-compatible hardware NIC right now, so I can't perform a complete test. However, I was able to successfully install netUIO with multi-BAR patches and custom class for QLogic BCM5706C 1GbE (bnx2 family, hardware ID PCI\VEN_14E4&DEV_164A&SUBSYS_3070103C&REV_02) on bare-metal Windows 10. Thus, installation and multi-BAR discovery works at least for some hardware (can't tell for multi-BAR mapping).

Signature · 1 line
Dmitry Kozlyuk
#8 lore raw

Finally managed to run l2fwd with virtio PMD. Providing details as promised.

1. For some reason, when l2fwd is running, virtual screen stops updating. The system itself is NOT frozen: l2fwd forwards packets, processes can be launched using QEMU guest agent, input is received and processed. Since this doesn't happen with different driver and ported upstream DPDK, there is obviously a software bug either in netUIO or in draft DPDK, not in QEMU.

2. Testing setup

Schematically:

  +-------------------+  +-------------------+  +-------------------+
  | Linux guest Alice |  | Windows guest     |  | Linux guest Bob   |
  |                   |  |                   |  |                   |
  | 172.16.0.1/24     |  |     __l2fwd__     |  | 172.16.0.2/24     |
  | 02:00:ac:10:00:01 |  |    /         \    |  | 02:00:ac:10:00:02 |
  |              ens4 |  | 00:04.0   00:05.0 |  | ens4              |
  +-------------------+  +-------------------+  +-------------------+
  | QEMU           dp |  | dp0    QEMU   dp1 |  | dp           QEMU |
  +-------------------+  +-------------------+  +-------------------+
              connect      listen     listen      connect
              :10000       :10000     :10001      :10001
  Linux host      \___________/           \_________/

Windows VM (Windows 10 Pro):

qemu-system-x86_64 \
    -enable-kvm -cpu host -smp 'cores=4,sockets=1,threads=1' -m 6G -drive "file=$disk,format=qcow2" \
    -netdev 'socket,listen=:10000,id=dp0' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp0' \
    -netdev 'socket,listen=:10001,id=dp1' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp1'

Linux VM "Alice" (Debian 10):

qemu-system-x86_64 \
-enable-kvm -cpu host -smp 'cores=2,sockets=1,threads=1' -m 1G drive "file=$disk,format=qcow2" \
-netdev "socket,connect=:10000,id=dp" -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp'

Linux VM "Bob" (Debian 10):

qemu-system-x86_64 \
-enable-kvm -cpu host -smp 'cores=2,sockets=1,threads=1' -m 1G drive "file=$disk,format=qcow2" \
-netdev "socket,connect=:10001,id=dp" -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp'

(Note: non-essential QEMU options omitted, like management NIC).

Driver: netUIO + multi-BAR patches from Narcisa + virtio HW ID patch.
DPDK: windpdk-v18.08-clang + PCI patch + patches for virtio.

Endpoint setup:

root@alice# ip link set ens4 address 02:00:ac:10:00:01
root@alice# ip address add 172.16.0.1/24 dev ens4
root@alice# ip link set ens4 up
root@bob# ip link set ens4 address 02:00:ac:10:00:02
root@bob# ip address add 172.16.0.2/24 dev ens4
root@bob# ip link set ens4 up

DUT setup:

Z:\dpdk\x64\Debug\netuio\netuio> pnputil /add-driver netuio.inf /install Z:\dpdk\x64\Debug\l2fwd> l2fwd.exe -c3 -- -p3 -T1 --no-mac-updating (display stops updating, exit later with Ctrl+C)

Validate connectivity:

root@alice# ping 172.16.0.2

3. Patch instruction is a bit involved:

* Base on windpdk-v18.08-clang.
* Import drivers/net/virtio from v18.08 (not attached due to size).
* Apply windpdk-virtio-1.patch (attached).
* Apply multi-BAR patches (not attached due to not being mine).
* Apply windpdk-virtio-2.patch (attached).

There is one patch in windpdk-virtio-2.patch that splits PCI config I/O of arbitrary size to a series of 4/2/1 accesses. It is implemented in user-mode because it was easier to debug, but maybe it should be moved to netUIO, so that any region of PCI config space can be read/written in a single syscall.

Signature · 1 line
Dmitry Kozlyuk
#9 lore raw
Quoted 7 lines

3. Patch instruction is a bit involved:

* Base on windpdk-v18.08-clang.
* Import drivers/net/virtio from v18.08 (not attached due to size).
* Apply windpdk-virtio-1.patch (attached).
* Apply multi-BAR patches (not attached due to not being mine).
* Apply windpdk-virtio-2.patch (attached).

Hi Dmitry,
I did not see any attachment of the above.
Can you send again?
Thanks
William

Quoted 8 lines

There is one patch in windpdk-virtio-2.patch that splits PCI config I/O of arbitrary size to a series of 4/2/1 accesses. It is implemented in user-mode because it was easier to debug, but maybe it should be moved to netUIO, so that any region of PCI config space can be read/written in a single syscall.

--
Dmitry Kozlyuk

#10 lore raw
Quoted 9 lines · William Tu
Quoted 8 lines

3. Patch instruction is a bit involved:

* Base on windpdk-v18.08-clang.
* Import drivers/net/virtio from v18.08 (not attached due to size).
* Apply windpdk-virtio-1.patch (attached).
* Apply multi-BAR patches (not attached due to not being mine).
* Apply windpdk-virtio-2.patch (attached).

Quoted 3 lines

Hi Dmitry,
I did not see any attachment of the above.
Can you send again?

Attachments are dropped on the dev@ mailing list.
So please send the patches as you would do for a normal proposal, adding a RFC prefix if you prefer to tag them.

Signature · 1 line
David Marchand
#11 lore raw

cover virtio-net support for Windows draft

In reply to Dmitry Kozlyuk

This patchset provides reference of the changes made to run virtio-net PMD with Windows draft DPDK, so that this could be reproduced. Is is not intended to be merged neither soon, nor "as is".

Patches must be applied over "multi-BAR" patchset yet to be released by Microsoft, those patches are not included. After applying Microsoft patches, the whole drivers/net/virtio directory from upstream v18.08 must be imported. It is also not included for brevity.

Dmitry Kozlyuk (5):
pci/windows: add stubs for port IO
net: add stub for RARP packet generation on Windows pci/windows: split config I/O into series of fixed-size operations
netuio: change class for Net to custom
mk/windows: add virtio-net PMD

 drivers/bus/pci/windows/pci.c                 |  80 +-
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |  17 +-
 lib/librte_eal/windows/eal/eal.c              |   4 +
 lib/librte_net/rte_net.c                      |  12 +
 mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
 mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
 mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
 .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
 .../librte_pmd_net_virtio.vcxproj             | 129 +++
 10 files changed, 1075 insertions(+), 657 deletions(-)
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj
Signature · 1 line
2.25.1
#12 lore raw

RFC PATCH 1/5 pci/windows: add stubs for port IO

NetUIO does not currently implement port I/O, which is used by some drivers, notable virtio-net in legacy mode.

---
 drivers/bus/pci/windows/pci.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
drivers/bus/pci/windows/pci.c +32 -0
index 75168c542..387ed4f02 100644
@@ -143,6 +143,38 @@ int rte_pci_write_config(const struct rte_pci_device *dev,
 	return pci_config_io(dev, (void *)buf, len, offset, PCI_IO_WRITE);
 }
 
+int
+rte_pci_ioport_map(struct rte_pci_device *dev, int bar,
+		struct rte_pci_ioport *p)
+{
+	RTE_SET_USED(dev);
+	RTE_SET_USED(bar);
+	RTE_SET_USED(p);
+	RTE_LOG(ERR, EAL, "I/O port mapping not supported for Windows\n");
+	return -1;
+}
+
+void
+rte_pci_ioport_read(struct rte_pci_ioport *p,
+		void *data, size_t len, off_t offset)
+{
+	RTE_SET_USED(p);
+	RTE_SET_USED(data);
+	RTE_SET_USED(len);
+	RTE_SET_USED(offset);
+	RTE_LOG(ERR, EAL, "I/O port read not implemented for Windows\n");
+}
+
+void
+rte_pci_ioport_write(struct rte_pci_ioport *p,
+		const void *data, size_t len, off_t offset)
+{
+	RTE_SET_USED(p);
+	RTE_SET_USED(data);
+	RTE_SET_USED(len);
+	RTE_SET_USED(offset);
+	RTE_LOG(ERR, EAL, "I/O port write not implemented for Windows\n");
+}
 
 static
 int send_ioctl(HANDLE f, DWORD ioctl,
Signature · 1 line
2.25.1
#13 lore raw

RFC PATCH 2/5 net: add stub for RARP packet generation on Windows

In reply to Dmitry Kozlyuk

RARP packets are optionally generated by virtio-net PMD.

---
 lib/librte_net/rte_net.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
lib/librte_net/rte_net.c +12 -0
index 56a13e3c4..8391ceae7 100644
@@ -487,3 +487,15 @@ uint32_t rte_net_get_ptype(const struct rte_mbuf *m,
 
 	return pkt_type;
 }
+
+#ifdef _WIN64
+struct rte_mbuf * __rte_experimental
+rte_net_make_rarp_packet(struct rte_mempool *mpool,
+		const struct ether_addr *mac)
+{
+	RTE_SET_USED(mpool);
+	RTE_SET_USED(mac);
+	RTE_LOG(ERR, EAL, "RARP packet creation not implemented for Windows\n");
+	return NULL;
+}
+#endif
Signature · 1 line
2.25.1
#14 lore raw

RFC PATCH 3/5 pci/windows: split config I/O into series of fixed-size operations

In reply to Dmitry Kozlyuk

PCI bus kernel driver mandates accessing config space in a series of reads/writes by 4, 2, or 1 bytes. NETUIO driver checks this requirement before performing config space I/O. Users of DPDK PCI bus driver, however, access config space without regard for this requirement.

Make DPDK PCI bus driver split config I/O to a series of 4-, 2-, or 1-byte reads/writes. Each of these operations is a syscall to netUIO.

---
 drivers/bus/pci/windows/pci.c | 45 ++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 14 deletions(-)
drivers/bus/pci/windows/pci.c +31 -14
index 387ed4f02..4ffa6a610 100644
@@ -200,6 +200,32 @@ int send_ioctl(HANDLE f, DWORD ioctl,
 	return ERROR_SUCCESS;
 }
 
+static int
+pci_config_io_sized(HANDLE device, struct dpdk_pci_config_io *io,
+	void **buf, size_t *left_size, size_t access_size)
+{
+	uint64_t out;
+
+	io->access_size = access_size;
+
+	while (*left_size >= access_size) {
+		if (io->op == PCI_IO_WRITE)
+			memcpy(&io->data, *buf, access_size);
+
+		if (send_ioctl(device, IOCTL_NETUIO_PCI_CONFIG_IO,
+				io, sizeof(*io), &out, sizeof(out)) != ERROR_SUCCESS)
+			return -1;
+
+		if (io->op == PCI_IO_READ)
+			memcpy(*buf, &out, access_size);
+
+		io->offset += access_size;
+		*buf += access_size;
+		*left_size -= access_size;
+	}
+	return 0;
+}
+
 /* Send IOCTL to driver to read/write PCI configuration space */
 static
 int pci_config_io(const struct rte_pci_device *dev, void *buf,
@@ -227,23 +253,14 @@ int pci_config_io(const struct rte_pci_device *dev, void *buf,
 	pci_io.dev_addr.dev_num = dev->addr.devid;
 	pci_io.dev_addr.func_num = dev->addr.function;
 	pci_io.offset = offset;
-	pci_io.access_size = sizeof(UINT32);
 	pci_io.op = operation;
 
-	if (operation == PCI_IO_WRITE)
-	{
-		pci_io.data.u32 = *(UINT32 UNALIGNED*)buf;
-	}
-
-	uint64_t  outputbuf = 0;
-	if (send_ioctl(f, IOCTL_NETUIO_PCI_CONFIG_IO, &pci_io, sizeof(pci_io),
-				&outputbuf, sizeof(outputbuf)) != ERROR_SUCCESS)
+	if (pci_config_io_sized(f, &pci_io, &buf, &len, sizeof(uint32_t)) < 0)
+		goto error;
+	if (pci_config_io_sized(f, &pci_io, &buf, &len, sizeof(uint16_t)) < 0)
+		goto error;
+	if (pci_config_io_sized(f, &pci_io, &buf, &len, sizeof(uint8_t)) < 0)
 		goto error;
-
-	if (operation == PCI_IO_READ)
-	{
-		memcpy(buf, &outputbuf, sizeof(UINT32));
-	}
 
 	ret = 0;
 error:
Signature · 1 line
2.25.1
#15 lore raw

RFC PATCH 4/5 netuio: change class for Net to custom

In reply to Dmitry Kozlyuk

This resolves the issue with timeout on driver loading.

---
 drivers/bus/pci/windows/pci.c    |  3 ++-
 kernel/windows/netuio/netuio.inf | 11 +++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)
drivers/bus/pci/windows/pci.c +2 -1
index 4ffa6a610..de385bf89 100644
@@ -731,7 +731,8 @@ rte_pci_scan(void)
 	SP_DEVINFO_DATA	    DeviceInfoData = { 0 };
 	int		    ret = -1;
 
-	hDevInfo = SetupDiGetClassDevs(&GUID_DEVCLASS_NET, NULL, NULL, DIGCF_PRESENT);
+	hDevInfo = SetupDiGetClassDevs(
+		NULL, L"PCI", NULL, DIGCF_ALLCLASSES | DIGCF_PRESENT);
 	if (INVALID_HANDLE_VALUE == hDevInfo) {
 		RTE_LOG(ERR, EAL, "Unable to enumerate PCI devices.\n", __func__);
 		goto end;
kernel/windows/netuio/netuio.inf +9 -2
index 4c4d5e047..e244bed3a 100644
@@ -36,12 +36,19 @@
 
 [Version]
 Signature="$WINDOWS NT$"
-Class=Net
-ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
+Class=UIO
+ClassGuid={86807C09-8149-4C34-9F2D-82575B8369DA}
 Provider=%Intel%
 CatalogFile=netuio.cat
 DriverVer=
 
+[ClassInstall32]
+Addreg=UioClassReg
+
+[UioClassReg]
+HKR,,,0,%ClassName%
+HKR,,Icon,,-5
+
 ;*****************************************
 ; Install Section
 ;*****************************************
Signature · 1 line
2.25.1
#16 lore raw

RFC PATCH 5/5 mk/windows: add virtio-net PMD

In reply to Dmitry Kozlyuk
---
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |   6 +
 lib/librte_eal/windows/eal/eal.c              |   4 +
 mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
 mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
 mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
 .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
 .../librte_pmd_net_virtio.vcxproj             | 129 +++
 8 files changed, 989 insertions(+), 640 deletions(-)
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj
drivers/net/virtio/virtio_ethdev.c +4 -0
index 614357da7..aa951e351 100644
@@ -1786,6 +1786,7 @@ static struct rte_pci_driver rte_virtio_pmd = {
 	.remove = eth_virtio_pci_remove,
 };
 
+#ifndef _WIN64
 RTE_INIT(rte_virtio_pmd_init)
 {
 	if (rte_eal_iopl_init() != 0) {
@@ -1795,6 +1796,9 @@ RTE_INIT(rte_virtio_pmd_init)
 
 	rte_pci_register(&rte_virtio_pmd);
 }
+#endif
+
+RTE_PMD_REGISTER_PCI(net_virtio, rte_virtio_pmd);
 
 static bool
 rx_offload_enabled(struct virtio_hw *hw)
kernel/windows/netuio/netuio.inf +6 -0
index e244bed3a..89d7c183c 100644
@@ -56,6 +56,7 @@ HKR,,Icon,,-5
 [Manufacturer]
 %Intel%=Standard,NT$ARCH$
 %Broadcom%=Broadcom,NT$ARCH$
+%virtio%=virtio,NT$ARCH$
 
 [Standard.NT$ARCH$]
 %F1583.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_1583
@@ -67,6 +68,9 @@ HKR,,Icon,,-5
 [Broadcom.NT$ARCH$]
 %F16D7.netuio.Description%=netuio_Device, PCI\VEN_14E4&DEV_16D7
 
+[virtio.NT$ARCH$]
+%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01
+
 [netuio_Device.NT]
 CopyFiles=Drivers_Dir
 
@@ -126,6 +130,7 @@ KmdfLibraryVersion = $KMDFVERSION$
 SPSVCINST_ASSOCSERVICE= 0x00000002
 Intel = "Intel"
 Broadcom = "Broadcom Corporation"
+virtio = "virtio"
 ClassName = "Intel(R) DPDK netUIO Driver"
 DiskName = "DPDK netUIO Installation Disk"
 F1583.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Converged Network Adapter XL710-Q2"
@@ -134,5 +139,6 @@ F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX
 F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722"
 F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V"
 F16D7.netuio.Description = "DPDK netUIO for Broadcom P225p NetXtreme-E Dual-port 10Gb/25Gb Ethernet PCIe Adapter"
+virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)"
 netuio.DeviceDesc = "netuio Device"
 netuio.SVCDESC = "netuio Service"
lib/librte_eal/windows/eal/eal.c +4 -0
index 9c3e52e1f..0a35d46ef 100644
@@ -80,11 +80,13 @@ extern void init_rte_lpm6_tailq(void);
 
 /* these functions are created by the RTE_PMD_REGISTER_PCI macro */
 extern void pciinitfn_net_i40e(void);
+extern void pciinitfn_net_virtio(void);
 
 /* these are more constructor-like function, that we'll need to call at the start */
 extern void rte_timer_init(void);
 extern void rte_log_init(void);
 extern void i40e_init_log(void);
+extern void virtio_init_log(void);
 
 /* Return a pointer to the configuration structure */
 struct rte_config *
@@ -475,6 +477,7 @@ eal_register_and_init_pmd()
 {
 	/* these functions are created by the RTE_PMD_REGISTER_PCI macro */
 	pciinitfn_net_i40e();  /* init the Intel 40GbE PMD */
+	pciinitfn_net_virtio();  /* init the virtio-net PMD */
 }
 
 /* Launch threads, called at application init(). */
@@ -516,6 +519,7 @@ rte_eal_init(int argc, char **argv)
 	rte_eal_log_init(NULL, 0);
 	rte_log_init();
 	i40e_init_log();
+	virtio_init_log();
 
 	eal_log_level_parse(argc, argv);
 
mk/exec-env/windows/dpdk.sln +381 -373

754 lines not on this page · raw message

mk/exec-env/windows/l2fwd/l2fwd.vcxproj +121 -121

244 lines not on this page · raw message

mk/exec-env/windows/l3fwd/l3fwd.vcxproj +146 -146

294 lines not on this page · raw message

mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters new file +198 -0

199 lines not on this page · raw message

mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj new file +129 -0

130 lines not on this page · raw message

Signature · 1 line
2.25.1
#17 lore raw

Re: [dpdk-dev] [RFC PATCH 5/5] mk/windows: add virtio-net PMD

Hi Dmitry,

I'm looking at this patch and have some questions.

Quoted 6 lines · Dmitry Kozlyuk
---
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |   6 +
 lib/librte_eal/windows/eal/eal.c              |   4 +

Why do we need these change below?
I thought to add a new Windows driver support, we only need to compile the drivers/net/xxx, and add the device ID to netuio.inf, at the dpdk-kmod repo?

Quoted 8 lines
 mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
 mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
 mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
 .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
 .../librte_pmd_net_virtio.vcxproj             | 129 +++
 8 files changed, 989 insertions(+), 640 deletions(-)
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj

Thanks
William

#18 lore raw

Re: [dpdk-dev] [RFC PATCH 5/5] mk/windows: add virtio-net PMD

2021-08-14 08:55 (UTC-0700), William Tu:

Quoted 7 lines

Hi Dmitry,

I'm looking at this patch and have some questions.

Quoted 1 line · Dmitry Kozlyuk
Quoted 7 lines
Quoted 5 lines
---
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |   6 +
 lib/librte_eal/windows/eal/eal.c              |   4 +  

Why do we need these change below?

1. At the time of the patch there was no dpdk-kmods repo.

2. The patch is for dpdk-draft-windows repo,
which was using Vistual Studio projects instead of meson.

Quoted 3 lines

I thought to add a new Windows driver support, we only need to compile the drivers/net/xxx, and add the device ID to netuio.inf, at the dpdk-kmod repo?

Yes.
Particularly for virtio it would also be required to support reading PCI config space in bus/pci/windows (netuio already provides the support).

Quoted 12 lines
Quoted 9 lines
 mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
 mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
 mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
 .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
 .../librte_pmd_net_virtio.vcxproj             | 129 +++
 8 files changed, 989 insertions(+), 640 deletions(-)
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj  

Thanks
William

#19 lore raw

Re: [dpdk-dev] [RFC PATCH 5/5] mk/windows: add virtio-net PMD

Quoted 22 lines · Dmitry Kozlyuk

2021-08-14 08:55 (UTC-0700), William Tu:

Quoted 7 lines

Hi Dmitry,

I'm looking at this patch and have some questions.

Quoted 1 line · Dmitry Kozlyuk
Quoted 7 lines
Quoted 5 lines
---
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |   6 +
 lib/librte_eal/windows/eal/eal.c              |   4 +

Why do we need these change below?

1. At the time of the patch there was no dpdk-kmods repo.

2. The patch is for dpdk-draft-windows repo,
which was using Vistual Studio projects instead of meson.

Quoted 8 lines
Quoted 3 lines

I thought to add a new Windows driver support, we only need to compile the drivers/net/xxx, and add the device ID to netuio.inf, at the dpdk-kmod repo?

Yes.
Particularly for virtio it would also be required to support reading PCI config space in bus/pci/windows (netuio already provides the support).

Now I understand, thanks. William