I guess I am slightly confused by the rationale for tagged streams. It
seems like you could do any of your chunk type processing by just placing a
tag saying "new data chunk starts here" on the first sample of the new data
chunk and an end tag on the last sample of the data chunk (like the sob and
eob tags the USRPs use).

Also is a tagged stream chunk in an input buffer all at once? If so does
that have an issue with buffer sizes if the chunks get really large?

With regards to performance, I do not have any specific issues, This is
more me trying to understand the limits/things I might run into. I
generally like to fully understand the issues before I run into them (or
more so that I can avoid them), especially with something like gnu radio
where there are multiple ways of doing something. It is also part of my
attempt to wrap my head around the architecture.

One of the things mentioned on the wiki that tags can add overhead. As one
moves towards high throughput/low latency applications, does tag
handling/propagation become a limiting factor? or is the
bottleneck generally something else, (obviously this depends on a case by
case basis and needs to be profiled) but I am curious about other people's
general experiences.

On Tue, Nov 24, 2020 at 10:49 AM Jeff Long <[email protected]> wrote:

> A tag is a piece of metadata that points to a specific sample in a stream.
> Tagged streams operate on chunks of samples, using a certain tag to
> determine the chunk length. Streams are simpler to deal with, unless you
> need data chunked.
>
> What kind of performance issues are you finding?
>
> If you are implementing a block, and do not want tags passed through,
> `set_tag_propagation_policy(TPP_DONT)`.
>
> On Mon, Nov 23, 2020 at 3:55 PM Nicholas Long <[email protected]>
> wrote:
>
>> Hi, So I am not sure exactly how to ask this, but I have a few questions
>> about tag best practices when creating OOT modules, apologies if this is
>> answered elsewhere...
>>
>> What is the main source of performance issues with tag propagation: Is it
>> primarily copying overhead? Are there contention issues? or is most of the
>> overhead in the actual reading/setting of tags? I guess part of my question
>> is how are tags passed between blocks, I understand the ring buffers, but
>> tags are still somewhat a mystery to me.
>>
>> Are tagged stream blocks better than just a stream with tags? From my
>> limited ability to parse tagged stream blocks seem to limit the number of
>> calls to get_tags_in_range, but they still pass on all other tags on the
>> input buffer to the output buffer regardless.
>>
>> Thanks,
>> Nick
>>
>

Reply via email to