<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