[ovs-dev] [RFC 1/2] dpdk: Convert initialization from cmdline to db
Aaron Conole
aconole at redhat.com
Fri Dec 4 15:24:52 UTC 2015
Panu Matilainen <pmatilai at redhat.com> writes:
> On 12/03/2015 06:23 AM, Aaron Conole wrote:
>> Existing DPDK integration is provided by use of command line options which
>> must be split out and passed to librte in a special manner. However, this
>> forces any configuration to be passed by way of a special DPDK flag, and
>> interferes with ovs+dpdk packaging solutions.
>>
>> This commit delays dpdk initialization until after the OVS database connection
>> is established, and then initializes librte. It pulls all of the config data
>> from the OVS database, and assembles a new argv/argc pair to be passed along.
>
> There needs to be a way to turn off DPDK even when support for it is
> built in since it requires extra setup and failing to initialize will
> tear down the whole ovs-vswitchd process. So in fact it probably
> should default to off.
There is such a flag, and it is defaulted to off:
>> +void
>> +dpdk_init(const struct ovsrec_open_vswitch *ovs_cfg)
>> +{
>> + static int initialized = 0;
>> +
>> + char **argv;
>> + int result;
>> + int argc;
>> +
Just before we do any initialization.
>> + if(initialized || !smap_get_bool(&ovs_cfg->other_config, "dpdk", false)){
>> + return;
>> }
>
> It'd be nice to have something smarter than a big "DPDK on/off" switch
> in the db, such as lazy initialization only when needed (ie dpdk ports
> are added) but there are quite a few problems with that I suspect.
I can look into how to add this, because I think you're right. I will
make that an enhancement to this patch.
>
> - Panu -
Thanks for the review, Panu!
More information about the dev
mailing list