On 06/03/15 18:35, Zoltan Kiss wrote:
Hi,
While I was testing ODP-DPDK performance with unidirectional traffic
(packets flow in ifA and goes out ifB) I noticed that the performance
is very poor. It is because there is one l2fwd threads per interface,
both receiving on its own port and sending out on the other. In my
scenario only one of them are doing work, the other is just in the way
because the two thread are competing on the spinlock of one interface.
One needs it for sending, the other idle thread is just keep polling
for receive.
that lock was there from beginning and somebody already companied about
bad performance because of this lock. The only problem with that
if somebody will close pktio and call recv(). In schedule mode scheduler
should validate it and in burst mode I think programmer should check that.
We can add some variable in linux-generic but for dpdk case it will
affect performance. So I would just remove that locks at all.
Maxim.
There are talks to refine pktio interface to make sure threads can
have their own HW queues (if the platform supports that), but in the
meantime it would be good to have the ability to do l2fwd tests with
just one direction. I've sent in a patch for that, let's discuss it
there.
The other thing I've found as a performance hit is parsing:
drop_err_pkts() calls odp_packet_has_error() which triggers it. It's
reasonable to do that, but in case of ODP-DPDK it's done completely in
software, and in certain cases you can be rather interested in the
performance without parsing.
What do you think making it optional?
Regards,
Zoli
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp