|WARNING| pw106114-106117 [PATCH] [4/4] net/bnxt: fix VF resource allocation strategy

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Thu Jan 20 14:59:03 CET 2022


Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/106114

_apply patch failure_

Submitter: Kalesh A P <kalesh-anakkur.purayil at broadcom.com>
Date: Thursday, January 20 2022 09:12:28 
Applied on: CommitID:62c21c38a26e654bba09be147ea2d61c2e699a13
Apply patch set 106114-106117 failed:

Checking patch drivers/net/bnxt/bnxt_vnic.c...
error: while searching for:

	entry_length = RTE_CACHE_LINE_ROUNDUP(entry_length + rss_table_size);

	max_vnics = bp->max_vnics;
	snprintf(mz_name, RTE_MEMZONE_NAMESIZE,
		 "bnxt_" PCI_PRI_FMT "_vnicattr", pdev->addr.domain,
		 pdev->addr.bus, pdev->addr.devid, pdev->addr.function);
	mz_name[RTE_MEMZONE_NAMESIZE - 1] = 0;
	mz = rte_memzone_lookup(mz_name);
	if (!mz) {
		mz = rte_memzone_reserve(mz_name,
				entry_length * max_vnics,
				bp->eth_dev->device->numa_node,
				RTE_MEMZONE_2MB |
				RTE_MEMZONE_SIZE_HINT_ONLY |
				RTE_MEMZONE_IOVA_CONTIG);
		if (!mz)
			return -ENOMEM;
	}
	mz_phys_addr = mz->iova;

	for (i = 0; i < max_vnics; i++) {
		vnic = &bp->vnic_info[i];

		/* Allocate rss table and hash key */
		vnic->rss_table =
			(void *)((char *)mz->addr + (entry_length * i));
		memset(vnic->rss_table, -1, entry_length);

		vnic->rss_table_dma_addr = mz_phys_addr + (entry_length * i);
		vnic->rss_hash_key = (void *)((char *)vnic->rss_table +
					      rss_table_size);

		vnic->rss_hash_key_dma_addr = vnic->rss_table_dma_addr +
					      rss_table_size;
		if (!reconfig) {
			bnxt_prandom_bytes(vnic->rss_hash_key, HW_HASH_KEY_SIZE);
			memcpy(bp->rss_conf.rss_key, vnic->rss_hash_key, HW_HASH_KEY_SIZE);

error: patch failed: drivers/net/bnxt/bnxt_vnic.c:136
Checking patch drivers/net/bnxt/bnxt_vnic.h...
Applying patch drivers/net/bnxt/bnxt_vnic.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Rejected hunk #3.
Applied patch drivers/net/bnxt/bnxt_vnic.h cleanly.
diff a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c	(rejected hunks)
@@ -136,38 +128,36 @@ int bnxt_alloc_vnic_attributes(struct bnxt *bp, bool reconfig)
 
 	entry_length = RTE_CACHE_LINE_ROUNDUP(entry_length + rss_table_size);
 
-	max_vnics = bp->max_vnics;
-	snprintf(mz_name, RTE_MEMZONE_NAMESIZE,
-		 "bnxt_" PCI_PRI_FMT "_vnicattr", pdev->addr.domain,
-		 pdev->addr.bus, pdev->addr.devid, pdev->addr.function);
-	mz_name[RTE_MEMZONE_NAMESIZE - 1] = 0;
-	mz = rte_memzone_lookup(mz_name);
-	if (!mz) {
-		mz = rte_memzone_reserve(mz_name,
-				entry_length * max_vnics,
-				bp->eth_dev->device->numa_node,
-				RTE_MEMZONE_2MB |
-				RTE_MEMZONE_SIZE_HINT_ONLY |
-				RTE_MEMZONE_IOVA_CONTIG);
-		if (!mz)
-			return -ENOMEM;
-	}
-	mz_phys_addr = mz->iova;
-
-	for (i = 0; i < max_vnics; i++) {
+	for (i = 0; i < bp->max_vnics; i++) {
 		vnic = &bp->vnic_info[i];
 
+		snprintf(mz_name, RTE_MEMZONE_NAMESIZE,
+			 "bnxt_" PCI_PRI_FMT "_vnicattr_%d", pdev->addr.domain,
+			 pdev->addr.bus, pdev->addr.devid, pdev->addr.function, i);
+		mz_name[RTE_MEMZONE_NAMESIZE - 1] = 0;
+		mz = rte_memzone_lookup(mz_name);
+		if (mz == NULL) {
+			mz = rte_memzone_reserve(mz_name,
+						 entry_length,
+						 bp->eth_dev->device->numa_node,
+						 RTE_MEMZONE_2MB |
+						 RTE_MEMZONE_SIZE_HINT_ONLY |
+						 RTE_MEMZONE_IOVA_CONTIG);
+			if (mz == NULL) {
+				PMD_DRV_LOG(ERR, "Cannot allocate bnxt vnic_attributes memory\n");
+				return -ENOMEM;
+			}
+		}
+		vnic->rss_mz = mz;
+		mz_phys_addr = mz->iova;
+
 		/* Allocate rss table and hash key */
-		vnic->rss_table =
-			(void *)((char *)mz->addr + (entry_length * i));
+		vnic->rss_table = (void *)((char *)mz->addr);
+		vnic->rss_table_dma_addr = mz_phys_addr;
 		memset(vnic->rss_table, -1, entry_length);
 
-		vnic->rss_table_dma_addr = mz_phys_addr + (entry_length * i);
-		vnic->rss_hash_key = (void *)((char *)vnic->rss_table +
-					      rss_table_size);
-
-		vnic->rss_hash_key_dma_addr = vnic->rss_table_dma_addr +
-					      rss_table_size;
+		vnic->rss_hash_key = (void *)((char *)vnic->rss_table + rss_table_size);
+		vnic->rss_hash_key_dma_addr = vnic->rss_table_dma_addr + rss_table_size;
 		if (!reconfig) {
 			bnxt_prandom_bytes(vnic->rss_hash_key, HW_HASH_KEY_SIZE);
 			memcpy(bp->rss_conf.rss_key, vnic->rss_hash_key, HW_HASH_KEY_SIZE);

https://lab.dpdk.org/results/dashboard/patchsets/20739/

UNH-IOL DPDK Community Lab


More information about the test-report mailing list