Hi, It is just receive queue that are associated with a PMD. Each port can have one or more receive queues. So rxq1 and rxq2 on the same port could be handled by different PMDs.
So when a packet is placed on a txq it is placed there by the PMD that originally received the packet. The number of txqs for each port is set so that there is at least one txq for each PMD plus one txq for the main vswitchd thread. This means that there is no locking required for two PMDs that are sending packet on the same port as they are using different transmit queues. For future reference I believe questions like this are preferred to be sent to ovs-discuss ML. Hope that helps, Billy. > -----Original Message----- > From: [email protected] [mailto:ovs-dev- > [email protected]] On Behalf Of Joo Kim > Sent: Wednesday, June 7, 2017 9:11 AM > To: [email protected] > Subject: [ovs-dev] multiple PMD threads + multiple dpdk ports scenario > > Hello, > > In userspace dpdk OVS, as I understand, each PMD thread can poll packets > from multiple dpdk ports the thread owns. > > Then, what about transmit? > Suppose 2 PMD threads are running, if route lookup in 1st PMD thread > results in a dpdk port (as outgoing port) which 2nd PMD thread owns, then > how does the 1st PMD thread sends the packet over the port the 2nd PMD > thread owns? > From concurrency perspective, can he 1st PMD thread safely call transmit > API with the port owned by 2nd PMD thread owns? > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
