Michael -

I greatly appreciate the response, and yes, your post was helpful.

Hopefully I'll come back with some good news before too long =)

Cheers,
Ben


On Fri, Jan 28, 2011 at 10:07 PM, Michael Dickens <m...@alum.mit.edu> wrote:
> On Jan 28, 2011, at 2:23 PM, Ben Hilburn wrote:
>> As I understand it, there is code in the GNURadio scheduler stuff that
>> manages block scheduling, to some degree.
>>
>> I'm aware of the kernel's role in switching between the threads
>> themselves, but I was under the impression that block scheduling, was
>> at least in some part, influenced by GNU Radio.
>>
>> If this is incorrect though, someone please correct me!
>
> Yes, this is true, Ben.  The OS handles the basics of thread execution, but 
> the TPB scheduler does handle "when" a block's "general_work" method is 
> actually called.  See gnuradio-core/src/lib/runtime, files 
> "gr_tpb_thread_body.cc" (which for the most part is a simple loop calling the 
> block executor and neighbor blocks when things change) and 
> "gr_block_executor.cc" (which is where the meat of what you're looking for 
> it, I believe).  For the latter, you can set ENABLE_LOGGING to 1, which 
> should give you an idea of what the "decision process" is.
>
> I think the general idea goes roughly like this: When data in a given buffer 
> changes (whether through generated or consumed items), each block that is 
> associated with that buffer checks to see if there is "enough" input data and 
> output buffer space for a "reasonable sized" computation.  If not, then go 
> back and wait for buffers to change; if so, then do the computation (call 
> "general_work").  You'll need to look through the code to determine what 
> "enough" and "reasonable sized" mean -- looking at the debug log might help 
> as well.
>
> It's been a long time since I've thought about these algorithms, so hopefully 
> the above is reasonably correct.  And, I hope this helps! - MLD
>
>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to