Windows Draft Build
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 ==========
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.
Quoted 5 lines
Did you install the LLVM toolchain for VStudio:
https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchainYou 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
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 qxl2. 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
@@ -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
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 qxl2. 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_CHECKSThe 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-1202Including 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@@ -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_Dirkernel/windows/netuio/netuio.inf +0
-0@@ -121,5 +122,6 @@ F158A.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XXF158B.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: 0Z:\>
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
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
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.
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
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
Quoted 7 lines
3. Patch instruction is a bit involved:
* Base on windpdk-v18.08-clang.
* Importdrivers/net/virtiofrom 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
Quoted 9 lines · William Tu
Quoted 8 lines
3. Patch instruction is a bit involved:
* Base on windpdk-v18.08-clang.
* Importdrivers/net/virtiofrom 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
cover virtio-net support for Windows draft
In reply to Dmitry KozlyukThis 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
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
@@ -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
RFC PATCH 2/5 net: add stub for RARP packet generation on Windows
In reply to Dmitry KozlyukRARP 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
@@ -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
RFC PATCH 3/5 pci/windows: split config I/O into series of fixed-size operations
In reply to Dmitry KozlyukPCI 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
@@ -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
RFC PATCH 4/5 netuio: change class for Net to custom
In reply to Dmitry KozlyukThis 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
@@ -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
@@ -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
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
@@ -1786,6 +1786,7 @@ static struct rte_pci_driver rte_virtio_pmd = { .remove = eth_virtio_pci_remove, }; +#ifndef _WIN64RTE_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
@@ -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
@@ -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
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
Signed-off-by Dmitry Kozlyuk <[email protected]>--- 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
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
Signed-off-by Dmitry Kozlyuk <[email protected]>--- 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.vcxprojThanks
William
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
Signed-off-by Dmitry Kozlyuk <[email protected]>--- 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