On Wed, Jun 24, 2020 at 3:48 PM Aaron Conole <[email protected]> wrote:
>
> Currently, the channel handlers are polled globally. On some
> systems, this causes a thundering herd issue where multiple
> handler threads become active, only to do no work and immediately
> sleep.
>
> The approach here is to push the netlink socket channels to discreet
> handler threads to process, rather than polling on every thread.
> This will eliminate the need to wake multiple threads.
>
> To check:
>
> ip netns add left
> ip netns add right
> ip link add center-left type veth peer name left0
> ip link add center-right type veth peer name right0
> ip link set left0 netns left
> ip link set right0 netns right
> ip link set center-left up
> ip link set center-right up
> ip netns exec left ip link set left0 up
> ip netns exec left ip addr add 172.31.110.10/24 dev left0
> ip netns exec right ip link set right0 up
> ip netns exec right ip addr add 172.31.110.11/24 dev right0
>
> ovs-vsctl add-br br0
> ovs-vsctl add-port br0 center-right
> ovs-vsctl add-port br0 center-left
>
> # in one terminal
> perf record -e sched:sched_wakeup,irq:softirq_entry -ag
>
> # in a separate terminal
> ip netns exec left arping -I left0 -c 1 172.31.110.11
>
> # in the perf terminal after exiting
> perf script
>
> Look for the number of 'handler' threads which were made active.
>
> Reported-by: David Ahern <[email protected]>
> Reported-at:
> https://mail.openvswitch.org/pipermail/ovs-dev/2019-December/365857.html
> Cc: Matteo Croce <[email protected]>
> Cc: Flavio Leitner <[email protected]>
> Signed-off-by: Aaron Conole <[email protected]>
>
Great work!
Just to understand, this reverts some logic of my patch, and
transposes the threads and sockets?
Maybe it's the case to add a Fixes tag pointing to 69c51582f ?
Nitpick: `iproute -n` instead of `ip netns exec` where possible, e.g.
ip netns exec left ip link set left0 up
becomes
ip -n left link set left0 up
Cheers,
--
Matteo Croce
perl -e 'for($t=0;;$t++){print chr($t*($t>>8|$t>>13)&255)}' |aplay
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev