[ovs-dev] [ovs dpdk] why all the ovs threads pinned to master lcore?

Aaron Conole aconole at redhat.com
Tue Oct 25 13:35:56 UTC 2016


"Bodireddy, Bhanuprakash" <bhanuprakash.bodireddy at intel.com> writes:

>>
>>++ pidof ovs-vswitchd
>>+ ps -To tid,pid,psr,comm -p 25932
>>  TID   PID PSR COMMAND
>>25932 25932   1 ovs-vswitchd
>>25934 25932   0 eal-intr-thread
>>25935 25932   1 dpdk_watchdog1
>>25936 25932   2 vhost_thread2
>>25937 25932   1 pdump-thread
>>25938 25932   8 urcu3
>>25939 25932   2 ovs-vswitchd
>>25959 25932   1 ct_clean4
>>26013 25932   3 handler18
>>26014 25932   9 handler17
>>26015 25932   3 handler20
>>26016 25932  11 handler19
>>26022 25932   4 handler21
>>26028 25932   9 handler22
>>26033 25932  10 handler23
>>26037 25932  10 handler24
>>26042 25932   9 revalidator25
>>26045 25932  10 revalidator26
>>26046 25932   0 revalidator27
>>26054 25932   2 revalidator28
>>26143 25932   5 pmd29
>>26144 25932   4 pmd30
>
> This is for the reason that 'dpdk-lcore-mask' hasn't been specified in
> the above case.
> If one specify dpdk-lcore-mask=<mask>, all the
> threads(revalidator/handler/ovs-vswitchd/urc) will automatically be
> pinned to the lowest core of the 'mask'.
>
> For example with 'ovs-vsctl --no-wait set Open_vSwitch
> . other_config:dpdk-lcore-mask=f00', I would expect the threads to
> float between cores 8 and 11, but all the threads get pinned to lowest
> core of the core-mask which is core 8.  Hope this clears the
> confusion.

I'm sorry, I don't understand this behaviors.  I don't see that this is
anything to do with ovs, specifically.  Meaning, when that option is
specified, we pass it to the dpdk library directly, and take no actions
as far as thread binding is concerned.  I have to admit, I've not delved
that deeply into the dpdk side.

Do you have the output from the EAL logs?  There are logs which state
what dpdk thinks it should have set for an affinity.  Perhaps those shed
some light?

-Aaron



More information about the dev mailing list