[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Balazs Nemeth
Letting DPDK deduce de cpus and memchannels is just a move of feautures in your application. In some cases you might want to limit the number of cores. It's just simple a way to allow more control when initializing DPDK. Kind Regards Balazs Nemeth Hasselt University, Belgium 2nd Master in Compute

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Marc Sune
Thanks Stephen for the hack. Unfortunately, our main already has parameters, and are all platform(architecture) agnostic, so this would break the assumption that arguments should be platform agnostic. But anyway thanks ;) marc On 01/08/13 19:06, Stephen Hemminger wrote: > On Thu, 01 Aug 2013 1

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Marc Sune
Well, I would not want to get into religious discussions here :), but concerning 1) and 3) you have to compile anyway your final applications, since as far as I've seen current DPDK makefiles are only compiling static versions of the lib. Moreover, I don't think it is feasible to assume that th

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Antti Kantee
On 1.8.2013 19:13, Marc Sune wrote: > Regarding the rte_eal_init(), if the concern is the number of parameters > and backwards compatibility, a typical solution is to create a struct > containing the parameters: > > > typedef struct eal_init_params{ > uint64_t coremask; > unsigned int nu

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Marc Sune
Dear Thomas, Regarding the MAIN, then I understand is not really necessary for Linux user-space applications, and that is there in the examples because they can run both baremetal and userspace... this is fine. Regarding the rte_eal_init(), if the concern is the number of parameters and backwa

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Thomas Monjalon
Hello, 01/08/2013 17:37, Marc Sune : > In our case, we are right now simply faking the argv, which is a little > bit ugly: > > //... > 37 const char* argv[EAL_ARGS] = {"./fake", "-c",CORE_MASK, > "-n",NUM_CACHE_LINES, ""}; > //... > 53 ret = rte_eal_init(EAL_ARGS, (char**)argv

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Marc Sune
Dear all, Sorry in advance if there is another API for this and I haven't found it, or if there is a strong reason for having it this way. I've seen that in the case of both baremetal and Linux applications, the way to initialize EAL is passing argv: //... /* init EAL */ ret = rte_e

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Stephen Hemminger
On Thu, 01 Aug 2013 20:17:43 +0200 Marc Sune wrote: > Thanks Stephen for the hack. > > Unfortunately, our main already has parameters, and are all > platform(architecture) agnostic, so this would break the assumption that > arguments should be platform agnostic. > > But anyway thanks ;) > mar

[dpdk-dev] Non-argv dependant rte_eal_init() call

2013-08-01 Thread Stephen Hemminger
On Thu, 01 Aug 2013 17:37:35 +0200 Marc Sune wrote: > Dear all, > > Sorry in advance if there is another API for this and I haven't found > it, or if there is a strong reason for having it this way. I've seen > that in the case of both baremetal and Linux applications, the way to > initialize