[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