On 6/7/16, 3:52 PM, "users on behalf of Wu, Xiaoban" <users-bounces at dpdk.org 
on behalf of Xiaoban_Wu at student.uml.edu> wrote:

>Dear DPDK Users,
>
>
>I have been reading the pktgen-3.0.02 source codes with dpdk-16.04.
>
>
>In the pktgen.c, function pktgen_send_pkts(), line 1098, it calls function 
>wr_pktmbuf_alloc_bulk_noreset().  Then it calls the function 
>rte_mempool_get_bulk() which calls the function __mempool_get_bulk().
>
>
>Since in the function rte_pktmbuf_pool_create(), the "flags" is set to zero in 
>default, this leads to that when calling __mempool_get_bulk(), the input 
>parameter"is_mc==1". Hence the function __mempool_get_bulk() will execute the 
>line 961-992 except that when "ret" is less that 0.

I checked out dpdk v16.04 and could not get your line numbers to workout, maybe 
you are on a slightly different version then release 16.04??

>
>
>My question is why at line 992, this has to return 0? In the line 941, the 
>comment says that  ">=0: Success; number of objects supplied." I am confused 
>by this comment, since in line 985-990, we can see that the input parameter 
>"obj_table" is supplied by new values and the number of the new values is "n". 
>Does this means that we need to "return n;" instead of "return 0;"?

The statement ?>=0 number of objects supplied? also confused me some, but 
routines rte_ring_mc/sc_dequeue_bulk() returns zero on success when all 
requested objects are return not the number of objects returned. It seems it 
would be nice to have the number of objects returned, but as it is always ?n? 
it is best to return  < 0 on error. The _bulk allocate will not return a les 
then ?n? objects, this is why the code in pktgen tests for zero and not 
something greater then zero. The code in pktgen could test for ret >= 0 but the 
results are the same. 
>
>
>Am I missing something here? Thank you so much for your help.
>
>
>All the best,
>
>Xiaoban
>



Reply via email to