Thank you for the comments, you're right, either master has changed since I 
sent those patches or I missed out on some exports/includes, anyhow I'll fix 
and resend v2.

The rte_panic you're seeing is unrelated to the new code (BTW, you should build 
a debug version if you want to see rte_panic's backtrace), it is a result of 
your setup not being configured with the memory management requirement of "Lock 
pages" (see [1]).

Dmitry, It looks like we got to this stage since hugepage_claim_privilege() 
cannot actually detect that "Lock pages" isn't granted to the current user, as 
a result we fail on the first usage of a memory management call [in this case 
rte_calloc()] without indication to the reason.

Is it possible to add an actual check that the current user is in the list of 
grantees?

Alternatively, It would be great to have this privilege added programmatically, 
I tried the MSDN example in [2] but it didn't work for me while testing, maybe 
Microsoft team can check if there is a way to do it?

[1] https://doc.dpdk.org/guides/windows_gsg/run_apps.html
[2] 
https://docs.microsoft.com/en-us/windows/win32/memory/creating-a-file-mapping-using-large-pages?redirectedfrom=MSDN

> -----Original Message-----
> From: Narcisa Ana Maria Vasile <navas...@linux.microsoft.com>
> Subject: Re: [PATCH 1/2] eal/windows: Add needed calls to detect vdev PMD
> 
> On Wed, Jun 24, 2020 at 05:56:20PM +0300, tal...@mellanox.com wrote:
> > From: Tal Shnaiderman <tal...@mellanox.com>
> >
> > Add needed function calls in rte_eal_init to detect vdev PMD.
> >
> > eal_option_device_parse()
> > rte_service_init()
> > rte_bus_probe()
> >
> > Signed-off-by: Tal Shnaiderman <tal...@mellanox.com>
> > ---
> >  lib/librte_eal/common/meson.build |  1 +
> >  lib/librte_eal/windows/eal.c      | 19 +++++++++++++++++++
> >  2 files changed, 20 insertions(+)
> >
> > diff --git a/lib/librte_eal/common/meson.build
> > b/lib/librte_eal/common/meson.build
> 
> Implicit declaration warning:
> ../lib/librte_eal/windows/eal.c:371:6: warning: implicit declaration of 
> function
> 'rte_service_init' is invalid in C99 [-Wimplicit-function-declaration]
>         if (rte_service_init()) {
>             ^
> 1 warning generated.
> 
> Adding "#include <rte_service_component.h>" in windows/eal.c should
> solve it.
> 
> Getting some linker error:
>    Creating library drivers\librte_bus_vdev.dll.a and object
> drivers\librte_bus_vdev.dll.exp bus_vdev_vdev.c.obj : error LNK2019:
> unresolved external symbol rte_log_register_type_and_pick_level
> referenced in function __vdev_logtype_bus drivers\librte_bus_vdev-
> 0.200.3.dll : fatal error LNK1120: 1 unresolved externals
> 
> Probably just a missing export for "rte_log_register_type_and_pick_level" in
> rte_eal_exports.def?
> 
> After adding the missing include and export, compilation and linking are
> successful.
> I see some errors when running the app though:
> 
> EAL: error allocating rte services array
> EAL: FATAL: rte_service_init() failed
> EAL: rte_service_init() failed
> PANIC in main():
> Cannot init EAL
> 6: [<unknown> (RtlUserThreadStart+0x21)[0x7FFACF283460]]
> 5: [<unknown> (BaseThreadInitThunk+0x14)[0x7FFACE7A6DF0]]
> 4: [<missing_symbols>]
> 3: [<missing_symbols>]
> 2: [<missing_symbols>]
> 1: [<missing_symbols>]

Reply via email to