dpvs icon indicating copy to clipboard operation
dpvs copied to clipboard

Waiting for %s link up, be patient ...

Open chenweijing opened this issue 5 years ago • 0 comments

目前有两块网卡,bond在一起. 开始调试, 都是卡在 Waiting for %s link up, be patient ..., 根本起不来.

改造源码, 让网卡(dpdk0)和dpdk1采用阻塞形式, 显示调用起来. 当 port->id == 2的时候, 采用原来的代码.

原来代码 netif.c: RTE_LOG(INFO, NETIF, "Waiting for %s link up, be patient ...\n", port->name); for (ii = 0; ii < wait_link_up_msecs; ii++) { rte_eth_link_get_nowait(port->id, &link); if (link.link_status) { RTE_LOG(INFO, NETIF, ">> %s: link up - speed %u Mbps - %s\n", port->name, (unsigned)link.link_speed, (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? "full-duplex" : "half-duplex"); break; }

修改后: if (port->id < 2) { int err; struct rte_eth_link link; err = rte_eth_dev_set_link_up(port->id); rte_eth_link_get(port->id, &link); if (link.link_status == ETH_LINK_DOWN) { RTE_LOG(WARNING, NETIF, "set %s link up [ FAIL ] -- %d\n", port_cfg->pname, err); } else { RTE_LOG(INFO, NETIF, "set %s link up [ OK ]" " --- speed %dMbps %s-duplex %s-neg\n", port_cfg->pname, link.link_speed, link.link_duplex ? "full" : "half", link.link_autoneg ? "auto" : "fixed"); } }else{ RTE_LOG(INFO, NETIF, "Waiting for %s link up, be patient ...\n", port->name); for (ii = 0; ii < wait_link_up_msecs; ii++) { rte_eth_link_get_nowait(port->id, &link); if (link.link_status) { RTE_LOG(INFO, NETIF, ">> %s: link up - speed %u Mbps - %s\n", port->name, (unsigned)link.link_speed, (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? "full-duplex" : "half-duplex"); break; } }

目前对于这样做法,只是暂时做法.

问: 为什么dpvs在没有在上面修改之前link up不了dpdk0和dpdk1, 而可以link up bond0? 有些电脑正常, 有些电脑不行.

chenweijing avatar Apr 04 '19 06:04 chenweijing