Tuesday, January 25, 2022

Re: GNU Radio 3.9.3.0 Python basic block - issues with forecast and produce

Hi Johannes, hi Patric,

On 22.01.22 12:25, Johannes Demel wrote:

> The `forecast` method expects estimates. The scheduler will call `general_work` anyways at
> some point, if the system is unable to fulfill your forecast requirement.

No, that is not correct; at least in the 3.8-style scheduler you can deadlock the whole
flowgraph by letting the forecast method tell the scheduling algorithm that it needs more
input to produce the minimum possible number of output (==1 or output_multiple) than the
input could ever offer.

The mechanism is that the scheduler asks forecast what it needs to produce the largest
amount of output that the output buffer can deal with, then it halves the amount until it
hits the minimum number. If none of these requests yield a fulfillable input requirement,
the block is permanently input-blocked.

Best regards,
Marcus

No comments:

Post a Comment