X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=test%2Ftest%2Ftest_malloc.c;h=4b5abb4e0be4dadff3cddc94e5ca3ff5cb2d6c28;hb=edafb57ba4a16a58de7d33cbdce14ecf8a6cfd00;hp=ccc5feaec7bb3fb0b1429752201e18484f8eae56;hpb=c022cb400e920624dd10e162ef12917b3039b846;p=dpdk.git diff --git a/test/test/test_malloc.c b/test/test/test_malloc.c index ccc5feaec7..4b5abb4e0b 100644 --- a/test/test/test_malloc.c +++ b/test/test/test_malloc.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -705,20 +706,22 @@ err_return: return -1; } +static int +check_socket_mem(const struct rte_memseg_list *msl, void *arg) +{ + int32_t *socket = arg; + + return *socket == msl->socket_id; +} + /* Check if memory is available on a specific socket */ static int is_mem_on_socket(int32_t socket) { - const struct rte_memseg *ms = rte_eal_get_physmem_layout(); - unsigned i; - - for (i = 0; i < RTE_MAX_MEMSEG; i++) { - if (socket == ms[i].socket_id) - return 1; - } - return 0; + return rte_memseg_list_walk(check_socket_mem, &socket); } + /* * Find what socket a memory address is on. Only works for addresses within * memsegs, not heap or stack... @@ -726,16 +729,9 @@ is_mem_on_socket(int32_t socket) static int32_t addr_to_socket(void * addr) { - const struct rte_memseg *ms = rte_eal_get_physmem_layout(); - unsigned i; + const struct rte_memseg *ms = rte_mem_virt2memseg(addr, NULL); + return ms == NULL ? -1 : ms->socket_id; - for (i = 0; i < RTE_MAX_MEMSEG; i++) { - if ((ms[i].addr <= addr) && - ((uintptr_t)addr < - ((uintptr_t)ms[i].addr + (uintptr_t)ms[i].len))) - return ms[i].socket_id; - } - return -1; } /* Test using rte_[c|m|zm]alloc_socket() on a specific socket */