Hi,

we are designing a block that receives multiple streams of bursts of data and 
produces in return other bursts of data. there is no correlation on the amount 
of data at the input and at the output and it's not possible to tell in advance 
how much data it will be arriving. Initially we were thinking this was a 
gnuradio issue but tested the block with gnuradio blocks only and it works 
whereas when this is connected to a rfnoc block it produces memory leaks.

the input stream is tagged with rx_eob as it consists in variable length 
packets each of which is tag terminated



we are seeing a number of odd behaviours:

1) sometimes the general_work will receive, at the end of the buffer, an 
incomplete packet. the issue with this is that the packet that has been broken 
in two pieces ends up having a rx_eob tag at the interruption point, thus 
splitting it effectively in two packets

2) if we don't consume all the input data immediately in a call to general_work 
we correctly see data we left being resent with next buffer however we see a 
memory leak

3) if we consume ninput_items passed to general_work for each stream we see 
memory leak. odd enough memory leak does not show up if we consume 
noutput_items which may be bigger than ninput_items

4) if we produce less than noutput_items by calling the produce function and 
returning WORK_CALLED_PRODUCE we see a memory leak



we are currently using Release 3.7.13.3 (git hash 
3fef6dc5d9174c172f75d97b0e332171b5a53f18).



Basically it looks like whenever we tell the streamer we used less data it 
provided at input or filled in less data it expects at output there will be a 
memory leak.



any help on this would be greatly appreciated...

thanks,

Dario Pennisi
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to