Sent out a new version of the patch with the correct commit message and
signed-off-bys.

Ryan

On 6/23/14 1:57 PM, "Pravin Shelar" <pshe...@nicira.com> wrote:

>I like this better, If you send me signed off line I will merge it.
>
>
>On Thu, Jun 19, 2014 at 5:27 PM, Ryan Wilson 76511 <wr...@vmware.com>
>wrote:
>> This patch will fix the naming issue, too. But yea ideally I'd like to
>>merge
>> something soon so we can have this fixed.
>>
>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>> index fbdb6b3..0f068e9 100644
>> --- a/lib/netdev-dpdk.c
>> +++ b/lib/netdev-dpdk.c
>> @@ -1179,9 +1179,12 @@ dpdk_init(int argc, char **argv)
>>  {
>>      int result;
>>
>> -    if (strcmp(argv[1], "--dpdk"))
>> +    if (argc < 2 || strcmp(argv[1], "--dpdk"))
>>          return 0;
>>
>> +    /* Make sure program name passed to rte_eal_init() is vswitchd. */
>> +    argv[1] = argv[0];
>> +
>>      argc--;
>>      argv++;
>>
>> @@ -1193,7 +1196,10 @@ dpdk_init(int argc, char **argv)
>>      rte_memzone_dump();
>>      rte_eal_init_ret = 0;
>>
>> -    return result;
>> +    if (argc > result)
>> +      argv[result] = argv[0];
>> +
>> +    return result + 1;
>>  }
>>
>>  void
>>
>> From: Daniele Di Proietto <ddiproie...@vmware.com>
>> Date: Thursday, June 19, 2014 3:42 PM
>> To: Ryan Wilson <wr...@vmware.com>
>> Cc: Pravin Shelar <pshe...@nicira.com>, "dev@openvswitch.org"
>> <dev@openvswitch.org>
>> Subject: Re: [ovs-dev] [PATCH] vswitchd: skip right number of arguments
>>in
>> dpdk_init()
>>
>> I wrote  ³‹dpdk argument² in the first place because other programs that
>> make use of rte_eal_init() do not have the ³‹dpdk² argument (see
>>examples/
>> dir in dpdk release).
>>
>> As a matter of facts, you¹re right, we¹re skipping the program name.
>>This
>> has some implications I didn¹t think about:
>>     - rte_eal_init() gets called with argv[0] = ³‹dpdk². It believes
>>that
>> the program name is ³‹dpdk² (the program name is used only for logging
>> purposes)
>>     - in the following OVS code argv[0]==³‹³ (before this patch argv[0]
>> would have been the last dpdk sub argument).
>>       Luckily, we call set_program_name() before rte_eal_init().
>>       Unluckily, we call proctitle_init() after rte_eal_init().
>>
>> These implications have (almost) nothing to do with my patch. My patch
>>just
>> fixes the argument parsing. It doesn¹t fix the wrong program naming
>>problem
>> for dpdk log and for proctitle_init().
>>
>> IMHO, we should push this (my patch fixes something, at least) and worry
>> about the wrong naming problem later
>>
>> What do you think?
>>
>> Daniele
>>
>> On Jun 19, 2014, at 3:02 PM, Ryan Wilson 76511 <wr...@vmware.com> wrote:
>>
>> I did a bit of research and I found out what's happening here.
>>
>> Here's an OVS command for DPDK:
>>
>> /home/ryan/ovs/_build-gcc/vswitchd/ovs-vswitchd --dpdk -c 0x1 -n 4 --
>> unix:/home/alex/root/run/db.sock --pidfile --log-file --enable-dummy
>> -vconsole:off --detach
>>
>> What will happen when running with DPDK is rte_eal_init will count the
>> following arguments "--dpdk -c 0x1 -n 4". Hence, we'll be left to parse
>> the remaining command "-- unix:/home/alex/root/run/db.sock --pidfile
>> --log-file --enable-dummy -vconsole:off --detach".
>>
>> Without DPDK, we'll have to parse
>> "/home/ryan/ovs/_build-gcc/vswitchd/ovs-vswitchd
>> unix:/home/alex/root/run/db.sock --pidfile --log-file --enable-dummy
>> -vconsole:off --detach".
>>
>> Thus, the only difference is the first argument here "--" vs.
>> "/home/ryan/ovs/_build-gcc/vswitchd/ovs-vswitchd". Basically, the code
>> always skips by default the first of the remaining arguments. With DPDK,
>> its "--" but without DPDK, its the program name. So dpdk_init() actually
>> does skip the program name, I believe.
>>
>> Anyways it doesn't really matter as long as this works.
>>
>> Ryan
>>
>> On 6/19/14 2:14 PM, "Pravin Shelar" <pshe...@nicira.com> wrote:
>>
>> On Wed, Jun 18, 2014 at 4:54 PM, Ryan Wilson 76511 <wr...@vmware.com>
>> wrote:
>>
>> Well we're really not 'skipping' the '--dpdk' argument since that is
>> passed to rte_eal_init() as well. We're skipping the program name which
>> is
>> the path to ovs-vswitchd. I'd change the comment in the patch to
>> something
>> like:
>>
>> Well it depends on individual perspective, but vswitchd program name
>> is present with or without dpdk parameter, so I think we are skipping
>> --dpdk.
>>
>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>> index fbdb6b3..5cd4a07 100644
>> --- a/lib/netdev-dpdk.c
>> +++ b/lib/netdev-dpdk.c
>> @@ -1193,7 +1193,8 @@ dpdk_init(int argc, char **argv)
>>     rte_memzone_dump();
>>     rte_eal_init_ret = 0;
>>
>> -    return result;
>> +    /* We need to skip 'result' arguments plus the program name itself
>> */
>> +    return result + 1;
>> }
>>
>> void
>>
>>
>> Otherwise, LGTM.
>>
>> Acked-by: Ryan Wilson <wr...@nicira.com>
>>
>> Can someone else review this and if they have no qualms, push it? This
>> is
>> necessary for DPDK to work properly.
>>
>>
>> On 6/16/14 9:46 AM, "Daniele Di Proietto" <ddiproie...@vmware.com>
>> wrote:
>>
>> rte_eal_init() returns the number of parsed dpdk arguments to skip.
>> dpdk_init() should add 1 to that number, because it has already skipped
>> the
>> "--dpdk" argument itself
>>
>> Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com>
>> ---
>> lib/netdev-dpdk.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>> index fbdb6b3..1ae5217 100644
>> --- a/lib/netdev-dpdk.c
>> +++ b/lib/netdev-dpdk.c
>> @@ -1193,7 +1193,8 @@ dpdk_init(int argc, char **argv)
>>    rte_memzone_dump();
>>    rte_eal_init_ret = 0;
>>
>> -    return result;
>> +    /* We need to skip 'result' arguments plus the "--dpdk" argument
>> itself */
>> +    return result + 1;
>> }
>>
>> void
>> --
>> 2.0.0
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailma
>> n/
>> listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=TfBS78Vw3dzttvXidhbff
>> g%
>> 3D%3D%0A&m=YHHbETWmp5Oa3XgP%2BcIg9XyAXHfV73IFEmQJ8uMHZcs%3D%0A&s=4306bd1
>> 6f
>> cbb62b8d4255b12d84dfc16ba8fde09d0d0bba9bf0e110877852ea2
>>
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>>
>> 
>>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman
>> 
>>/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=TfBS78Vw3dzttvXidhbff
>> 
>>g%3D%3D%0A&m=z3zvkqljqI%2BZ1%2B5CXFQJqhn%2BJeuJJy0OURBm8ICxMzc%3D%0A&s=97
>> 339566f48e933a25c3fc3abff1f0bb66f1bfaca89edd76a88006c5929d9efe
>>
>>

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to