<Snipping lots of stuff>

On 2015-06-04 23:27, Chilikin, Andrey wrote:

>> Its not a bad addition, I'm just not sure its worth having to take on the
>> additional API surface to include.  I'd be more supportive if you could 
>> enhance
>> the function to allow the previously mentioned before/after flexibiilty.  
>> Then we
>> could just deprecate rte_eal_init as an API call entirely, and use this 
>> instead.
> 
> Before/after would be very useful, a lot of applications use only "-c" and 
> "-n" EAL command line parameters and "-c" in many cases is redundant as 
> application can calculate core mask from its own parameters, and "-n" just a 
> required parameter which can be defaulted to a platform specific value. So in 
> addition to rte_set_application_usage_hook() it would be nice to have some 
> more general way of overwriting eal initialization parameters. 

I've always found it a bit strange that DPDK forces argv handling this
way. The application will anyway have to setup system-specific stuff
(buffer count etc) for the ports to use, so special-casing memory and
core setup seems strange. I think it would be more logical to have EAL
configuration from a structure like for the ports:

  struct dpdk_conf conf =
  {
        .core_mask = 0x7,
        .huge_pages = 1,
        [...]
  };

  rte_eal_init(&conf);

And make the current argv parser optional, i.e., something like

  int main(argc, argv)
  {
        struct dpdk_conf conf;

        ret = rte_eal_parse_argv(&conf);
        rte_eal_init(&conf);
        argc -= ret; ...
  }

// Simon

Reply via email to