X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_mbuf.c;h=1835acc73a932b4313873e0c570d7755388b9ff2;hb=775a8cfc46969a4bb0e7206a2e7b2a630f2f0966;hp=5e8a377de01a1ecbc34f1e34a402192e2ba51ccb;hpb=c660072c30d2e3b92935c358451c6179db0f6f08;p=dpdk.git diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 5e8a377de0..1835acc73a 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -333,7 +333,7 @@ testclone_testupdate_testdetach(void) struct rte_mbuf *m = NULL; struct rte_mbuf *clone = NULL; struct rte_mbuf *clone2 = NULL; - uint32_t *data; + unaligned_uint32_t *data; /* alloc a mbuf */ m = rte_pktmbuf_alloc(pktmbuf_pool); @@ -344,7 +344,7 @@ testclone_testupdate_testdetach(void) GOTO_FAIL("Bad length"); rte_pktmbuf_append(m, sizeof(uint32_t)); - data = rte_pktmbuf_mtod(m, uint32_t *); + data = rte_pktmbuf_mtod(m, unaligned_uint32_t *); *data = MAGIC_DATA; /* clone the allocated mbuf */ @@ -352,7 +352,7 @@ testclone_testupdate_testdetach(void) if (clone == NULL) GOTO_FAIL("cannot clone data\n"); - data = rte_pktmbuf_mtod(clone, uint32_t *); + data = rte_pktmbuf_mtod(clone, unaligned_uint32_t *); if (*data != MAGIC_DATA) GOTO_FAIL("invalid data in clone\n"); @@ -369,18 +369,18 @@ testclone_testupdate_testdetach(void) GOTO_FAIL("Next Pkt Null\n"); rte_pktmbuf_append(m->next, sizeof(uint32_t)); - data = rte_pktmbuf_mtod(m->next, uint32_t *); + data = rte_pktmbuf_mtod(m->next, unaligned_uint32_t *); *data = MAGIC_DATA; clone = rte_pktmbuf_clone(m, pktmbuf_pool); if (clone == NULL) GOTO_FAIL("cannot clone data\n"); - data = rte_pktmbuf_mtod(clone, uint32_t *); + data = rte_pktmbuf_mtod(clone, unaligned_uint32_t *); if (*data != MAGIC_DATA) GOTO_FAIL("invalid data in clone\n"); - data = rte_pktmbuf_mtod(clone->next, uint32_t *); + data = rte_pktmbuf_mtod(clone->next, unaligned_uint32_t *); if (*data != MAGIC_DATA) GOTO_FAIL("invalid data in clone->next\n"); @@ -396,11 +396,11 @@ testclone_testupdate_testdetach(void) if (clone2 == NULL) GOTO_FAIL("cannot clone the clone\n"); - data = rte_pktmbuf_mtod(clone2, uint32_t *); + data = rte_pktmbuf_mtod(clone2, unaligned_uint32_t *); if (*data != MAGIC_DATA) GOTO_FAIL("invalid data in clone2\n"); - data = rte_pktmbuf_mtod(clone2->next, uint32_t *); + data = rte_pktmbuf_mtod(clone2->next, unaligned_uint32_t *); if (*data != MAGIC_DATA) GOTO_FAIL("invalid data in clone2->next\n"); @@ -511,10 +511,14 @@ test_attach_from_different_pool(void) rte_pktmbuf_detach(clone); if (c_data != rte_pktmbuf_mtod(clone, char *)) GOTO_FAIL("clone was not detached properly\n"); + if (rte_mbuf_refcnt_read(m) != 2) + GOTO_FAIL("invalid refcnt in m\n"); rte_pktmbuf_detach(clone2); if (c_data2 != rte_pktmbuf_mtod(clone2, char *)) GOTO_FAIL("clone2 was not detached properly\n"); + if (rte_mbuf_refcnt_read(m) != 1) + GOTO_FAIL("invalid refcnt in m\n"); /* free the clones and the initial mbuf */ rte_pktmbuf_free(clone2); @@ -594,6 +598,7 @@ test_pktmbuf_pool_ptr(void) if (m[i] == NULL) { printf("rte_pktmbuf_alloc() failed (%u)\n", i); ret = -1; + break; } m[i]->data_off += 64; } @@ -613,6 +618,7 @@ test_pktmbuf_pool_ptr(void) if (m[i] == NULL) { printf("rte_pktmbuf_alloc() failed (%u)\n", i); ret = -1; + break; } if (m[i]->data_off != RTE_PKTMBUF_HEADROOM) { printf("invalid data_off\n"); @@ -694,7 +700,7 @@ test_refcnt_slave(__attribute__((unused)) void *arg) printf("%s finished at lcore %u, " "number of freed mbufs: %u\n", __func__, lcore, free); - return (0); + return 0; } static void @@ -746,7 +752,7 @@ test_refcnt_iter(unsigned lcore, unsigned iter) __func__, lcore, iter, tref); return; } - rte_delay_ms(1000); + rte_delay_ms(100); } rte_panic("(lcore=%u, iter=%u): after %us only " @@ -768,7 +774,7 @@ test_refcnt_master(void) rte_wmb(); printf("%s finished at lcore %u\n", __func__, lcore); - return (0); + return 0; } #endif @@ -784,7 +790,7 @@ test_refcnt_mbuf(void) if ((lnum = rte_lcore_count()) == 1) { printf("skipping %s, number of lcores: %u is not enough\n", __func__, lnum); - return (0); + return 0; } printf("starting %s, at %u lcores\n", __func__, lnum); @@ -798,7 +804,7 @@ test_refcnt_mbuf(void) SOCKET_ID_ANY)) == NULL) { printf("%s: cannot allocate " MAKE_STRING(refcnt_pool) "\n", __func__); - return (-1); + return -1; } if (refcnt_mbuf_ring == NULL && @@ -807,7 +813,7 @@ test_refcnt_mbuf(void) RING_F_SP_ENQ)) == NULL) { printf("%s: cannot allocate " MAKE_STRING(refcnt_mbuf_ring) "\n", __func__); - return (-1); + return -1; } refcnt_stop_slaves = 0; @@ -834,7 +840,7 @@ test_refcnt_mbuf(void) rte_ring_dump(stdout, refcnt_mbuf_ring); #endif - return (0); + return 0; } #include @@ -928,7 +934,7 @@ test_failing_mbuf_sanity_check(void) static int test_mbuf(void) { - RTE_BUILD_BUG_ON(sizeof(struct rte_mbuf) != RTE_CACHE_LINE_SIZE * 2); + RTE_BUILD_BUG_ON(sizeof(struct rte_mbuf) != RTE_CACHE_LINE_MIN_SIZE * 2); /* create pktmbuf pool if it does not exist */ if (pktmbuf_pool == NULL) {