On 8/6/14, 3:30 PM, "Pravin Shelar" <pshe...@nicira.com> wrote:
>On Wed, Jul 30, 2014 at 8:51 AM, Daniele Di Proietto ><ddiproie...@vmware.com> wrote: >> DPDK rings must have a power-of-two size. >> >> Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com> >> --- >> lib/netdev-dpdk.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >> index b45e367..a779833 100644 >> --- a/lib/netdev-dpdk.c >> +++ b/lib/netdev-dpdk.c >> @@ -125,6 +125,8 @@ static const struct rte_eth_txconf tx_conf = { >> >> enum { MAX_RX_QUEUE_LEN = 192 }; >> enum { MAX_TX_QUEUE_LEN = 384 }; >Is there any benefit of keeping separate RX and TX QUEUE size ? This patch just fixes a bug related to DPDK rings. The TX queue is bigger because in a single PMD thread iteration multiple NICs _could_ receive a whole batch of packets that has to be sent to the same output NIC. Having a bigger TX queue size reduces the calls to dpdk_queue_flush__(). I¹m not sure in practice how much this would affect performance, but I do not see any harm in keeping them separate. Anyway, if you think we should merge them, I trust your judgement! Daniele > > >> +enum { DPDK_RING_SIZE = 256 }; >> +BUILD_ASSERT_DECL(IS_POW2(DPDK_RING_SIZE)); >> enum { DRAIN_TSC = 200000ULL }; >> >> static int rte_eal_init_ret = ENODEV; >> @@ -1236,7 +1238,7 @@ dpdk_ring_create(const char dev_name[], unsigned >>int port_no, >> return -err; >> } >> >> - ivshmem->cring_tx = rte_ring_create(ring_name, MAX_RX_QUEUE_LEN, >>SOCKET0, 0); >> + ivshmem->cring_tx = rte_ring_create(ring_name, DPDK_RING_SIZE, >>SOCKET0, 0); >> if (ivshmem->cring_tx == NULL) { >> rte_free(ivshmem); >> return ENOMEM; >> @@ -1247,7 +1249,7 @@ dpdk_ring_create(const char dev_name[], unsigned >>int port_no, >> return -err; >> } >> >> - ivshmem->cring_rx = rte_ring_create(ring_name, MAX_RX_QUEUE_LEN, >>SOCKET0, 0); >> + ivshmem->cring_rx = rte_ring_create(ring_name, DPDK_RING_SIZE, >>SOCKET0, 0); >> if (ivshmem->cring_rx == NULL) { >> rte_free(ivshmem); >> return ENOMEM; >> -- >> 2.0.1 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> >>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman >>/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=MV9BdLjtFIdhBDBaw5z%2 >>BU6SSA2gAfY4L%2F1HCy3VjlKU%3D%0A&m=JbCK3%2FN5NZ%2F3z8V4149DjoC21IV84G5i8E >>hF0%2FuTQuE%3D%0A&s=5c089867eee0c6cdafca280a0e54f877cf5a900cfa8c73cad7d56 >>d9f20e8ee93 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev