Thread (10 messages) 10 messages, 3 authors, 2018-11-29

Re: [PATCH] examples/bond: wait for slaves to become active

From: Chas Williams <3chas3@gmail.com>
Date: 2018-11-27 19:01:14


On 11/14/2018 07:19 AM, Radu Nicolau wrote:
Do not start the packet processing threads until all configured
slaves become active.

Signed-off-by: Radu Nicolau <redacted>
Acked-by: Chas Williams <redacted>
quoted hunk ↗ jump to hunk
---
  examples/bond/main.c | 15 +++++++++++++++
  1 file changed, 15 insertions(+)
diff --git a/examples/bond/main.c b/examples/bond/main.c
index b282e68..6623cae 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -220,6 +220,7 @@ bond_port_init(struct rte_mempool *mbuf_pool)
  	struct rte_eth_rxconf rxq_conf;
  	struct rte_eth_txconf txq_conf;
  	struct rte_eth_conf local_port_conf = port_conf;
+	uint16_t wait_counter = 20;
  
  	retval = rte_eth_bond_create("net_bonding0", BONDING_MODE_ALB,
  			0 /*SOCKET_ID_ANY*/);
@@ -274,6 +275,20 @@ bond_port_init(struct rte_mempool *mbuf_pool)
  	if (retval < 0)
  		rte_exit(retval, "Start port %d failed (res=%d)", BOND_PORT, retval);
  
+	printf("Waiting for slaves to become active...");
+	while (wait_counter) {
+		uint16_t act_slaves[16] = {0};
+		if (rte_eth_bond_active_slaves_get(BOND_PORT, act_slaves, 16) ==
+				slaves_count) {
+			printf("\n");
+			break;
+		}
+		sleep(1);
+		printf("...");
+		if (--wait_counter == 0)
+			rte_exit(-1, "\nFailed to activate slaves\n");
+	}
+
  	rte_eth_promiscuous_enable(BOND_PORT);
  
  	struct ether_addr addr;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help