>
>2016-08-18 14:20 GMT-07:00 Bodireddy, Bhanuprakash
><bhanuprakash.bodire...@intel.com>:
>>-----Original Message-----
>>From: Flavio Leitner [mailto:f...@sysclose.org]
>>Sent: Thursday, August 18, 2016 2:15 PM
>>To: Bodireddy, Bhanuprakash <bhanuprakash.bodire...@intel.com>
>>Cc: Daniele Di Proietto <diproiet...@ovn.org>; dev@openvswitch.org
>>Subject: Re: [ovs-dev] [PATCH V6] netdev-dpdk: Set pmd thread priority
>>
>>On Tue, Aug 16, 2016 at 02:30:04PM +0000, Bodireddy, Bhanuprakash wrote:
>>> >-----Original Message-----
>>> >From: Daniele Di Proietto [mailto:diproiet...@ovn.org]
>>> >Sent: Tuesday, August 16, 2016 1:44 AM
>>> >To: Bodireddy, Bhanuprakash <bhanuprakash.bodire...@intel.com>
>>> >Cc: dev@openvswitch.org; Flavio Leitner <f...@sysclose.org>
>>> >Subject: Re: [PATCH V6] netdev-dpdk: Set pmd thread priority
>>> >
>>> >I found a crash if apply this patch, "dpdk-lcore-mask" is not set and
>>> >"-c 0x1" is passed to "dpdk-extra".
>>> My bad, I didn't test with dpdk-extra options. I see that the crash was due
>to
>>strtol.
>>>
>>> >Also, I believe Flavio had a comment on the previous version of this
>>> >patch.  Would it be enough to use setpriority(2)?
>>> I sent out my comments in another mail. I agree to Flavio's suggestion
>>> as this seems less dangerous and is guaranteed to work even in case of
>>> misconfiguration. I tested this approach and have a concern with
>>setpriority().
>>>
>>> To apply the new nice value to the thread, thread id is needed and due
>>> to absence of glibc wrapper for gettid, I have to use syscall(SYS_gettid). I
>>want to know if this is acceptable in OVS or better way to handle this?
>>>
>>> Void ovs_numa_thread_setpriority(int nice OVS_UNUSED) { ....
>>> #if defined(__linux__) && defined(SYS_gettid)
>>>      pid_t tid = syscall(SYS_gettid);
>>>      err = setpriority(PRIO_PROCESS, tid, nice);
>>>      ....
>>> #endif
>>> }
>>
>>I don't know a better way to implement this and it seems ovs-numa.c
>already
>>has some ifdefs specific to linux.
>>
>>Do you know if this problem happen on BSD?
>I don't know if this is a problem on BSD. I searched a bit and found BSD code
>using "syscall(SYS_thr_self, &tid)"
>to retrieve the tid.
>
>
>The dummy ovs-numa works (and thus compile) everywhere, for pmd tests,
>but the module only works on linux.
>I think it's fine to implement something only for linux and return
>EOPNOTSUPP (only if dummy is not enabled) for everything else.
>
>I think passing 0 as thread_id to setpriority() changes the current thread
>priority, so there's probably no need for SYS_gettid.

This is helpful,  passing 0 for thread_id worked.  

>
>>
>>
>>> Without priority patch:
>>>
>>> $ ps -eLo tid,pri,psr,comm | grep -e lcore -e revalidator -e ovs-vswitchd -e
>>pmd
>>>  22509  19   4 ovs-vswitchd
>>>  22512  19   5 lcore-slave-5
>>>  22513  19   6 lcore-slave-6
>>>  22514  19   7 lcore-slave-7
>>>  22589  19   4 revalidator37
>>>  22590  19   4 revalidator52
>>>  22591  19   4 revalidator42
>>>  22592  19   4 revalidator38
>>>  22593  19   4 revalidator39
>>>  22594  19   4 revalidator45
>>>  22595  19   4 revalidator53
>>>  22596  19   4 revalidator54
>>>  22598  19   4 pmd61                    [Default priority]
>>>
>>> With priority patch:
>>>
>>> $ ps -eLo tid,pri,psr,comm | grep -e lcore -e revalidator -e ovs-vswitchd -e
>>pmd
>>>  24879  19   4 ovs-vswitchd
>>>  24881  19   5 lcore-slave-5
>>>  24882  19   6 lcore-slave-6
>>>  24883  19   7 lcore-slave-7
>>>  24951  19   4 revalidator55
>>>  24952  19   4 revalidator37
>>>  24953  19   4 revalidator52
>>>  24954  19   4 revalidator42
>>>  24955  19   4 revalidator38
>>>  24956  19   4 revalidator39
>>>  24957  19   4 revalidator45
>>>  24958  19   4 revalidator53
>>>  24964  39   4 pmd61                  [Higher priority set]
>>
>>Looks good, so if you affinity your bash to the CPU running
>>pmd61 thread, are you able to use it?
>Yes, I tested this case and there seems to be no problem here.
>
>So there's no need to make it exclusive with dpdk-lcore-mask anymore, right?
Yes, I have sent out another version of patch which  doesn't change any of the 
existing functionality but lower the nice
Value of the pmd thread to -20.

Regards,
Bhanu Prakash.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to