[dpdk-dev] [RFC PATCH] eal:Add new API for parsing args at rte_eal_init time

Simon Kågström simon.kagstrom at netinsight.net
Fri Jun 5 08:01:20 CEST 2015


<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


More information about the dev mailing list