[PATCH 1/2] Memory Allocation: Fixes ms_idx jump (lookahead) during find_next_n() in fb_array library

Vipin P R vipinp at vmware.com
Fri Jan 13 14:08:44 CET 2023


In the legacy mem mode, when the fb_array is being populated, if there are holes in between, the ms_idx could go backward and there will be an overlap of the region starting from the ms_idx returned later. i.e. it's being mapped to two different physical regions in PA space to a contiguous region in VA space. this would result in the allocator assuming that the memory is contiguous even though there is a hole in between. In legacy mem, allocator assumes that PA contiguous are VA contiguous as well.

Cc: stable at dpdk.org

Signed-off-by: Vipin P R <vipinp at vmware.com>
Acked-by: Kumara Parameshwaran <kparameshwar at vmware.com>
---
 .mailmap                            | 1 +
 lib/eal/common/eal_common_fbarray.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 75884b6..3707bf5 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1391,6 +1391,7 @@ Vincent Guo <guopengfei160 at 163.com>
 Vincent Jardin <vincent.jardin at 6wind.com>
 Vincent Li <vincent.mc.li at gmail.com>
 Vincent S. Cojot <vcojot at redhat.com>
+Vipin P R <vipinp at vmware.com> <vipinpadmamramesh at gmail.com>
 Vipin Varghese <vipin.varghese at amd.com> <vipin.varghese at intel.com>
 Vipul Ashri <vipul.ashri at oracle.com>
 Vishal Kulkarni <vishal at chelsio.com>
diff --git a/lib/eal/common/eal_common_fbarray.c b/lib/eal/common/eal_common_fbarray.c
index f11f879..551bd87 100644
--- a/lib/eal/common/eal_common_fbarray.c
+++ b/lib/eal/common/eal_common_fbarray.c
@@ -236,7 +236,7 @@ find_next_n(const struct rte_fbarray *arr, unsigned int start, unsigned int n,
 				 * as well, so skip that on next iteration.
 				 */
 				ignore_msk = ~((1ULL << need) - 1);
-				msk_idx = lookahead_idx;
+				msk_idx = lookahead_idx - 1;
 				break;
 			}
 
-- 
2.7.4



More information about the dev mailing list