|WARNING| pw113140-113151 [PATCH] [12/12] net/nfp: add flower PF rxtx logic
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Tue Jun 21 10:40:37 CEST 2022
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/113140
_apply patch failure_
Submitter: Chaoyong He <chaoyong.he at corigine.com>
Date: Tuesday, June 21 2022 08:08:39
Applied on: CommitID:a1b2afe431d80ab65b2ed9889a61ead335e53299
Apply patch set 113140-113151 failed:
Checking patch drivers/net/nfp/nfp_common.h...
Hunk #1 succeeded at 104 (offset -7 lines).
Hunk #2 succeeded at 122 (offset -7 lines).
Hunk #3 succeeded at 154 (offset -7 lines).
Hunk #4 succeeded at 162 (offset -7 lines).
Hunk #5 succeeded at 422 (offset -24 lines).
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: while searching for:
#include "nfp_cpp_bridge.h"
static int
nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port)
{
struct nfp_eth_table *nfp_eth_table;
struct nfp_net_hw *hw = NULL;
/* Grab a pointer to the correct physical port */
hw = pf_dev->ports[port];
nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
nfp_eth_copy_mac((uint8_t *)&hw->mac_addr,
(uint8_t *)&nfp_eth_table->ports[port].mac_addr);
error: patch failed: drivers/net/nfp/nfp_ethdev.c:39
Hunk #2 succeeded at 86 (offset 22 lines).
Hunk #3 succeeded at 94 (offset 22 lines).
Hunk #4 succeeded at 106 (offset 22 lines).
error: while searching for:
struct nfp_net_hw *hw;
struct rte_pci_device *pci_dev;
struct nfp_pf_dev *pf_dev;
int i;
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
error: patch failed: drivers/net/nfp/nfp_ethdev.c:250
Hunk #6 succeeded at 292 (offset 29 lines).
Hunk #7 succeeded at 321 (offset 37 lines).
Hunk #8 succeeded at 337 (offset 37 lines).
error: while searching for:
{
struct rte_pci_device *pci_dev;
struct nfp_pf_dev *pf_dev;
struct nfp_net_hw *hw;
struct rte_ether_addr *tmp_ether_addr;
uint64_t rx_bar_off = 0;
error: patch failed: drivers/net/nfp/nfp_ethdev.c:404
error: while searching for:
/* Use backpointer here to the PF of this eth_dev */
pf_dev = NFP_NET_DEV_PRIVATE_TO_PF(eth_dev->data->dev_private);
/* NFP can not handle DMA addresses requiring more than 40 bits */
if (rte_mem_check_dma_mask(40)) {
RTE_LOG(ERR, PMD,
error: patch failed: drivers/net/nfp/nfp_ethdev.c:420
error: while searching for:
* Use PF array of physical ports to get pointer to
* this specific port
*/
hw = pf_dev->ports[port];
PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, "
"NFP internal port number: %d", port, hw->nfp_idx);
error: patch failed: drivers/net/nfp/nfp_ethdev.c:438
Hunk #12 succeeded at 556 (offset -21 lines).
error: while searching for:
}
static int
nfp_init_phyports(struct nfp_pf_dev *pf_dev)
{
int i;
int ret = 0;
struct nfp_net_hw *hw;
struct rte_eth_dev *eth_dev;
struct nfp_eth_table *nfp_eth_table;
nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
if (nfp_eth_table == NULL) {
PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
return -EIO;
}
/* Loop through all physical ports on PF */
for (i = 0; i < pf_dev->total_phyports; i++) {
const unsigned int numa_node = rte_socket_id();
char port_name[RTE_ETH_NAME_MAX_LEN];
snprintf(port_name, sizeof(port_name), "%s_port%d",
pf_dev->pci_dev->device.name, i);
error: patch failed: drivers/net/nfp/nfp_ethdev.c:718
Hunk #14 succeeded at 748 (offset -63 lines).
error: while searching for:
rte_eth_dev_probing_finish(eth_dev);
} /* End loop, all ports on this PF */
ret = 0;
goto eth_table_cleanup;
port_cleanup:
for (i = 0; i < pf_dev->total_phyports; i++) {
if (pf_dev->ports[i] && pf_dev->ports[i]->eth_dev) {
struct rte_eth_dev *tmp_dev;
tmp_dev = pf_dev->ports[i]->eth_dev;
rte_eth_dev_release_port(tmp_dev);
pf_dev->ports[i] = NULL;
}
}
eth_table_cleanup:
free(nfp_eth_table);
return ret;
}
error: patch failed: drivers/net/nfp/nfp_ethdev.c:783
error: while searching for:
static int
nfp_pf_init(struct rte_pci_device *pci_dev)
{
int err;
int ret = 0;
uint64_t addr;
int total_ports;
struct nfp_cpp *cpp;
struct nfp_pf_dev *pf_dev;
struct nfp_hwinfo *hwinfo;
char name[RTE_ETH_NAME_MAX_LEN];
error: patch failed: drivers/net/nfp/nfp_ethdev.c:804
error: while searching for:
if (hwinfo == NULL) {
PMD_INIT_LOG(ERR, "Error reading hwinfo table");
ret = -EIO;
goto error;
}
nfp_eth_table = nfp_eth_read_ports(cpp);
if (nfp_eth_table == NULL) {
PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
error: patch failed: drivers/net/nfp/nfp_ethdev.c:840
Hunk #18 succeeded at 852 (offset -66 lines).
error: while searching for:
}
/* Populate the newly created PF device */
pf_dev->cpp = cpp;
pf_dev->hwinfo = hwinfo;
pf_dev->sym_tbl = sym_tbl;
pf_dev->total_phyports = total_ports;
if (total_ports > 1)
pf_dev->multiport = true;
pf_dev->pci_dev = pci_dev;
/* Map the symbol table */
pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
pf_dev->total_phyports * 32768, &pf_dev->ctrl_area);
if (pf_dev->ctrl_bar == NULL) {
PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
ret = -EIO;
goto pf_cleanup;
}
PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);
/* configure access to tx/rx vNIC BARs */
switch (pci_dev->id.device_id) {
case PCI_DEVICE_ID_NFP3800_PF_NIC:
error: patch failed: drivers/net/nfp/nfp_ethdev.c:888
error: while searching for:
default:
PMD_INIT_LOG(ERR, "nfp_net: no device ID matching");
err = -ENODEV;
goto ctrl_area_cleanup;
}
pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0,
error: patch failed: drivers/net/nfp/nfp_ethdev.c:923
error: while searching for:
if (pf_dev->hw_queues == NULL) {
PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc");
ret = -EIO;
goto ctrl_area_cleanup;
}
PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues);
/*
* Initialize and prep physical ports now
* This will loop through all physical ports
*/
ret = nfp_init_phyports(pf_dev);
if (ret) {
PMD_INIT_LOG(ERR, "Could not create physical ports");
goto hwqueues_cleanup;
}
error: patch failed: drivers/net/nfp/nfp_ethdev.c:932
Hunk #22 succeeded at 920 (offset -75 lines).
Hunk #23 succeeded at 928 (offset -75 lines).
error: while searching for:
nfp_pf_secondary_init(struct rte_pci_device *pci_dev)
{
int i;
int err;
int total_ports;
struct nfp_cpp *cpp;
struct nfp_net_hw *hw;
error: patch failed: drivers/net/nfp/nfp_ethdev.c:977
Hunk #25 succeeded at 979 (offset -78 lines).
error: while searching for:
if (eth_dev == NULL) {
RTE_LOG(ERR, EAL,
"secondary process attach failed, ethdev doesn't exist");
return -ENODEV;
}
hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
error: patch failed: drivers/net/nfp/nfp_ethdev.c:1028
error: while searching for:
rte_eth_dev_probing_finish(eth_dev);
}
/* Register the CPP bridge service for the secondary too */
nfp_register_cpp_service(cpp);
return 0;
}
static int
error: patch failed: drivers/net/nfp/nfp_ethdev.c:1041
Applied patch drivers/net/nfp/nfp_common.h cleanly.
Applying patch drivers/net/nfp/nfp_ethdev.c with 15 rejects...
Rejected hunk #1.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Rejected hunk #9.
Rejected hunk #10.
Rejected hunk #11.
Hunk #12 applied cleanly.
Rejected hunk #13.
Hunk #14 applied cleanly.
Rejected hunk #15.
Rejected hunk #16.
Rejected hunk #17.
Hunk #18 applied cleanly.
Rejected hunk #19.
Rejected hunk #20.
Rejected hunk #21.
Hunk #22 applied cleanly.
Hunk #23 applied cleanly.
Rejected hunk #24.
Hunk #25 applied cleanly.
Rejected hunk #26.
Rejected hunk #27.
diff a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c (rejected hunks)
@@ -39,15 +39,15 @@
#include "nfp_cpp_bridge.h"
static int
-nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port)
+nfp_net_pf_read_mac(struct nfp_app_nic *app_nic, int port)
{
struct nfp_eth_table *nfp_eth_table;
struct nfp_net_hw *hw = NULL;
/* Grab a pointer to the correct physical port */
- hw = pf_dev->ports[port];
+ hw = app_nic->ports[port];
- nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
+ nfp_eth_table = nfp_eth_read_ports(app_nic->pf_dev->cpp);
nfp_eth_copy_mac((uint8_t *)&hw->mac_addr,
(uint8_t *)&nfp_eth_table->ports[port].mac_addr);
@@ -250,6 +252,7 @@
struct nfp_net_hw *hw;
struct rte_pci_device *pci_dev;
struct nfp_pf_dev *pf_dev;
+ struct nfp_app_nic *app_nic;
int i;
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
@@ -404,6 +409,7 @@
{
struct rte_pci_device *pci_dev;
struct nfp_pf_dev *pf_dev;
+ struct nfp_app_nic *app_nic;
struct nfp_net_hw *hw;
struct rte_ether_addr *tmp_ether_addr;
uint64_t rx_bar_off = 0;
@@ -420,6 +426,9 @@
/* Use backpointer here to the PF of this eth_dev */
pf_dev = NFP_NET_DEV_PRIVATE_TO_PF(eth_dev->data->dev_private);
+ /* Use backpointer to the CoreNIC app struct */
+ app_nic = NFP_APP_PRIV_TO_APP_NIC(pf_dev->app_priv);
+
/* NFP can not handle DMA addresses requiring more than 40 bits */
if (rte_mem_check_dma_mask(40)) {
RTE_LOG(ERR, PMD,
@@ -438,7 +447,7 @@
* Use PF array of physical ports to get pointer to
* this specific port
*/
- hw = pf_dev->ports[port];
+ hw = app_nic->ports[port];
PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, "
"NFP internal port number: %d", port, hw->nfp_idx);
@@ -718,25 +727,67 @@
}
static int
-nfp_init_phyports(struct nfp_pf_dev *pf_dev)
+nfp_init_app_nic(struct nfp_pf_dev *pf_dev,
+ struct nfp_eth_table *nfp_eth_table)
{
int i;
- int ret = 0;
+ int ret;
+ int err = 0;
+ int total_vnics;
struct nfp_net_hw *hw;
+ unsigned int numa_node;
struct rte_eth_dev *eth_dev;
- struct nfp_eth_table *nfp_eth_table;
+ struct nfp_app_nic *app_nic;
+ char port_name[RTE_ETH_NAME_MAX_LEN];
- nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
- if (nfp_eth_table == NULL) {
- PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
- return -EIO;
+ PMD_INIT_LOG(INFO, "Total physical ports: %d", nfp_eth_table->count);
+
+ /* Allocate memory for the CoreNIC app */
+ app_nic = rte_zmalloc("nfp_app_nic", sizeof(*app_nic), 0);
+ if (app_nic == NULL)
+ return -ENOMEM;
+
+ /* Point the app_priv pointer in the PF to the coreNIC app */
+ pf_dev->app_priv = app_nic;
+
+ /* Read the number of vNIC's created for the PF */
+ total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, "nfd_cfg_pf0_num_ports", &err);
+ if (err || total_vnics <= 0 || total_vnics > 8) {
+ PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value");
+ ret = -ENODEV;
+ goto app_cleanup;
}
- /* Loop through all physical ports on PF */
- for (i = 0; i < pf_dev->total_phyports; i++) {
- const unsigned int numa_node = rte_socket_id();
- char port_name[RTE_ETH_NAME_MAX_LEN];
+ /*
+ * For coreNIC the number of vNICs exposed should be the same as the
+ * number of physical ports
+ */
+ if (total_vnics != (int)nfp_eth_table->count) {
+ PMD_INIT_LOG(ERR, "Total physical ports do not match number of vNICs");
+ ret = -ENODEV;
+ goto app_cleanup;
+ }
+ /* Populate coreNIC app properties*/
+ app_nic->total_phyports = total_vnics;
+ app_nic->pf_dev = pf_dev;
+ if (total_vnics > 1)
+ app_nic->multiport = true;
+
+ /* Map the symbol table */
+ pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
+ app_nic->total_phyports * 32768, &pf_dev->ctrl_area);
+ if (pf_dev->ctrl_bar == NULL) {
+ PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
+ ret = -EIO;
+ goto app_cleanup;
+ }
+
+ PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);
+
+ /* Loop through all physical ports on PF */
+ numa_node = rte_socket_id();
+ for (i = 0; i < app_nic->total_phyports; i++) {
snprintf(port_name, sizeof(port_name), "%s_port%d",
pf_dev->pci_dev->device.name, i);
@@ -783,20 +834,21 @@
rte_eth_dev_probing_finish(eth_dev);
} /* End loop, all ports on this PF */
- ret = 0;
- goto eth_table_cleanup;
+
+ return 0;
port_cleanup:
- for (i = 0; i < pf_dev->total_phyports; i++) {
- if (pf_dev->ports[i] && pf_dev->ports[i]->eth_dev) {
+ for (i = 0; i < app_nic->total_phyports; i++) {
+ if (app_nic->ports[i] && app_nic->ports[i]->eth_dev) {
struct rte_eth_dev *tmp_dev;
- tmp_dev = pf_dev->ports[i]->eth_dev;
+ tmp_dev = app_nic->ports[i]->eth_dev;
rte_eth_dev_release_port(tmp_dev);
- pf_dev->ports[i] = NULL;
+ app_nic->ports[i] = NULL;
}
}
-eth_table_cleanup:
- free(nfp_eth_table);
+ nfp_cpp_area_free(pf_dev->ctrl_area);
+app_cleanup:
+ rte_free(app_nic);
return ret;
}
@@ -804,11 +856,11 @@
static int
nfp_pf_init(struct rte_pci_device *pci_dev)
{
- int err;
- int ret = 0;
+ int ret;
+ int err = 0;
uint64_t addr;
- int total_ports;
struct nfp_cpp *cpp;
+ enum nfp_app_id app_id;
struct nfp_pf_dev *pf_dev;
struct nfp_hwinfo *hwinfo;
char name[RTE_ETH_NAME_MAX_LEN];
@@ -840,9 +892,10 @@
if (hwinfo == NULL) {
PMD_INIT_LOG(ERR, "Error reading hwinfo table");
ret = -EIO;
- goto error;
+ goto cpp_cleanup;
}
+ /* Read the number of physical ports from hardware */
nfp_eth_table = nfp_eth_read_ports(cpp);
if (nfp_eth_table == NULL) {
PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
@@ -888,27 +935,12 @@
}
/* Populate the newly created PF device */
+ pf_dev->app_id = app_id;
pf_dev->cpp = cpp;
pf_dev->hwinfo = hwinfo;
pf_dev->sym_tbl = sym_tbl;
- pf_dev->total_phyports = total_ports;
-
- if (total_ports > 1)
- pf_dev->multiport = true;
-
pf_dev->pci_dev = pci_dev;
- /* Map the symbol table */
- pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
- pf_dev->total_phyports * 32768, &pf_dev->ctrl_area);
- if (pf_dev->ctrl_bar == NULL) {
- PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
- ret = -EIO;
- goto pf_cleanup;
- }
-
- PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);
-
/* configure access to tx/rx vNIC BARs */
switch (pci_dev->id.device_id) {
case PCI_DEVICE_ID_NFP3800_PF_NIC:
@@ -923,7 +955,7 @@
default:
PMD_INIT_LOG(ERR, "nfp_net: no device ID matching");
err = -ENODEV;
- goto ctrl_area_cleanup;
+ goto pf_cleanup;
}
pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0,
@@ -932,18 +964,27 @@
if (pf_dev->hw_queues == NULL) {
PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc");
ret = -EIO;
- goto ctrl_area_cleanup;
+ goto pf_cleanup;
}
PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues);
/*
- * Initialize and prep physical ports now
- * This will loop through all physical ports
+ * PF initialization has been done at this point. Call app specific
+ * init code now
*/
- ret = nfp_init_phyports(pf_dev);
- if (ret) {
- PMD_INIT_LOG(ERR, "Could not create physical ports");
+ switch (pf_dev->app_id) {
+ case NFP_APP_CORE_NIC:
+ PMD_INIT_LOG(INFO, "Initializing coreNIC");
+ ret = nfp_init_app_nic(pf_dev, nfp_eth_table);
+ if (ret) {
+ PMD_INIT_LOG(ERR, "Could not initialize coreNIC!");
+ goto hwqueues_cleanup;
+ }
+ break;
+ default:
+ PMD_INIT_LOG(ERR, "Unsupported Firmware loaded");
+ ret = -EINVAL;
goto hwqueues_cleanup;
}
@@ -977,7 +1018,8 @@
nfp_pf_secondary_init(struct rte_pci_device *pci_dev)
{
int i;
- int err;
+ int err = 0;
+ int ret = 0;
int total_ports;
struct nfp_cpp *cpp;
struct nfp_net_hw *hw;
@@ -1028,7 +1075,8 @@
if (eth_dev == NULL) {
RTE_LOG(ERR, EAL,
"secondary process attach failed, ethdev doesn't exist");
- return -ENODEV;
+ ret = -ENODEV;
+ break;
}
hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1041,10 +1089,16 @@
rte_eth_dev_probing_finish(eth_dev);
}
+ if (ret)
+ goto sym_tbl_cleanup;
+
/* Register the CPP bridge service for the secondary too */
nfp_register_cpp_service(cpp);
- return 0;
+sym_tbl_cleanup:
+ free(sym_tbl);
+
+ return ret;
}
static int
Checking patch drivers/net/nfp/nfp_common.h...
error: drivers/net/nfp/nfp_common.h: does not match index
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/flower/nfp_flower.c...
Checking patch drivers/net/nfp/flower/nfp_flower.h...
Checking patch drivers/net/nfp/meson.build...
Checking patch drivers/net/nfp/nfp_cpp_bridge.c...
Checking patch drivers/net/nfp/nfp_cpp_bridge.h...
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower.h cleanly.
Applied patch drivers/net/nfp/meson.build cleanly.
Applied patch drivers/net/nfp/nfp_cpp_bridge.c cleanly.
Applied patch drivers/net/nfp/nfp_cpp_bridge.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_ovs_compat.h...
Checking patch drivers/net/nfp/nfp_common.h...
error: drivers/net/nfp/nfp_common.h: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower_ovs_compat.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/nfp_rxtx.c...
Hunk #1 succeeded at 134 (offset 18 lines).
Hunk #2 succeeded at 595 (offset 18 lines).
error: while searching for:
return 0;
}
/* Leaving always free descriptors for avoiding wrapping confusion */
static inline
uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq)
{
if (txq->wr_p >= txq->rd_p)
return txq->tx_count - (txq->wr_p - txq->rd_p) - 8;
else
return txq->rd_p - txq->wr_p - 8;
}
/*
* nfp_net_txq_full - Check if the TX queue free descriptors
* is below tx_free_threshold
*
* @txq: TX queue to check
*
* This function uses the host copy* of read/write pointers
*/
static inline
uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq)
{
return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh);
}
/* nfp_net_tx_tso - Set TX descriptor for TSO */
static inline void
nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd,
error: patch failed: drivers/net/nfp/nfp_rxtx.c:774
Checking patch drivers/net/nfp/nfp_rxtx.h...
Hunk #1 succeeded at 274 (offset -56 lines).
error: while searching for:
uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue,
struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
#endif /* _NFP_RXTX_H_ */
/*
error: patch failed: drivers/net/nfp/nfp_rxtx.h:355
Applying patch drivers/net/nfp/nfp_rxtx.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Rejected hunk #3.
Applying patch drivers/net/nfp/nfp_rxtx.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
diff a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c (rejected hunks)
@@ -774,30 +768,6 @@
return 0;
}
-/* Leaving always free descriptors for avoiding wrapping confusion */
-static inline
-uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq)
-{
- if (txq->wr_p >= txq->rd_p)
- return txq->tx_count - (txq->wr_p - txq->rd_p) - 8;
- else
- return txq->rd_p - txq->wr_p - 8;
-}
-
-/*
- * nfp_net_txq_full - Check if the TX queue free descriptors
- * is below tx_free_threshold
- *
- * @txq: TX queue to check
- *
- * This function uses the host copy* of read/write pointers
- */
-static inline
-uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq)
-{
- return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh);
-}
-
/* nfp_net_tx_tso - Set TX descriptor for TSO */
static inline void
nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd,
diff a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h (rejected hunks)
@@ -355,6 +385,7 @@ int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev,
uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue,
struct rte_mbuf **tx_pkts,
uint16_t nb_pkts);
+int nfp_net_tx_free_bufs(struct nfp_net_txq *txq);
#endif /* _NFP_RXTX_H_ */
/*
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_ctrl.c...
Checking patch drivers/net/nfp/flower/nfp_flower_ctrl.h...
Checking patch drivers/net/nfp/meson.build...
error: drivers/net/nfp/meson.build: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower_ctrl.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_ctrl.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_cmsg.c...
Checking patch drivers/net/nfp/flower/nfp_flower_cmsg.h...
Checking patch drivers/net/nfp/flower/nfp_flower_representor.c...
Checking patch drivers/net/nfp/flower/nfp_flower_representor.h...
Checking patch drivers/net/nfp/meson.build...
error: drivers/net/nfp/meson.build: does not match index
Checking patch drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c...
Applied patch drivers/net/nfp/flower/nfp_flower_cmsg.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_cmsg.h cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_representor.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_representor.h cleanly.
Applied patch drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c cleanly.
Checking patch drivers/net/nfp/nfp_common.c...
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/nfp_ethdev_vf.c...
error: while searching for:
#include "nfpcore/nfp_rtsym.h"
#include "nfp_common.h"
#include "nfp_rxtx.h"
#include "nfp_logs.h"
#include "nfp_ctrl.h"
static void
nfp_netvf_read_mac(struct nfp_net_hw *hw)
error: patch failed: drivers/net/nfp/nfp_ethdev_vf.c:19
Checking patch drivers/net/nfp/nfp_rxtx.c...
error: drivers/net/nfp/nfp_rxtx.c: does not match index
Checking patch drivers/net/nfp/nfp_rxtx.h...
error: drivers/net/nfp/nfp_rxtx.h: does not match index
Applied patch drivers/net/nfp/nfp_common.c cleanly.
Applying patch drivers/net/nfp/nfp_ethdev_vf.c with 1 reject...
Rejected hunk #1.
diff a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c (rejected hunks)
@@ -19,9 +19,9 @@
#include "nfpcore/nfp_rtsym.h"
#include "nfp_common.h"
+#include "nfp_ctrl.h"
#include "nfp_rxtx.h"
#include "nfp_logs.h"
-#include "nfp_ctrl.h"
static void
nfp_netvf_read_mac(struct nfp_net_hw *hw)
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
https://lab.dpdk.org/results/dashboard/patchsets/22710/
UNH-IOL DPDK Community Lab
More information about the test-report
mailing list