[srslte-users] run_thread in thread_pool.cc

Nick Ho nick133371 at gmail.com
Tue Nov 1 10:02:51 UTC 2016


Hi, I have some question that workimp() in phch_worker.

1.  Whether it will enter the if(dl_grant_available) only if there is
received DCI format 1 or not.
2. The function that decode_pdcch() new_grant_dl() decode_pdsch() will
process complete in the same subframe that comes a DCI 1?
I wonder if the thread has the ability to process so many function in 1 ms.

Best regards,
Nick.

2016-10-06 18:10 GMT+08:00 Ismael Gomez <
ismael.gomez at softwareradiosystems.com>:

> I'm not sure to be honest. It could have other implications.
>
> On Thu, 6 Oct 2016 at 11:22 Nick Ho <nick133371 at gmail.com> wrote:
>
>> Thanks for your response.
>> If I want to implement srsUE to support NB-IoT, and I want to add a
>> scheduling delay between decode PDCCH and PDSCH, can I use a for loop or
>> while loop in workimp() to implement this delay?
>>
>> Best regards,
>> Nick.
>>
>> 2016-10-05 19:03 GMT+08:00 Ismael Gomez <ismael.gomez@
>> softwareradiosystems.com>:
>>
>> Yes you are right. There are multiple threads processing subframes in a
>> pipelined fashion. Each thread runs workimp() and processes the procedures
>> associated to an entire subframe.
>>
>> On Wed, Oct 5, 2016, 10:16 Nick Ho <nick133371 at gmail.com> wrote:
>>
>> Hi Ismael,
>>     Thanks for your response, I found the entry points, so this function
>> workimp() will work by task, right?
>>     For example , if there is a downlink data received from eNB, and
>> whole procedure will end at send ack/nack back to eNB.
>>     So this function will process until this procedure end?
>>     UE would not monitor in the working subframe period.
>>     Please correct me if anything is wrong.
>> Big thanks,
>> Nick.
>>
>> 2016-10-04 17:11 GMT+08:00 Ismael Gomez <ismael.gomez@
>> softwareradiosystems.com>:
>>
>> Hi Nick,
>>
>> this is just a general-purpose thread pool manager. The actual phy
>> procedures are implemented in phch_worker::work_imp(). The phch_worker
>> thread is triggered to start running from the phch_recv thread. using the
>> function workers_pool->start_worker()
>>
>> On Tue, 4 Oct 2016 at 09:42 Nick Ho <nick133371 at gmail.com> wrote:
>>
>> Hi,
>>     I have traced the srsUE code for several months, and I have some
>> questions.
>>     In the thread_pool.cc, a function workimp() process almost every
>> procedure in UE, right?
>>    This function's entry point is run_thread in the thread_pool.cc, but
>> before this function executed, a function wait_to_start is processed first.
>>    In this function there is a while loop about
>>
>> while(my_parent->status[my_id] != START_WORK && running) {
>>     pthread_cond_wait(&my_parent->cvar[my_id], &my_parent->mutex[my_id]);
>>   }
>>
>> the status will be set to START_WORK only at start_worker function, what
>> is this function's entry point. Where calls this function?
>>
>> Best regards,
>> Nick.
>>
>> _______________________________________________
>> srslte-users mailing list
>> srslte-users at lists.softwareradiosystems.com
>> http://www.softwareradiosystems.com/mailman/listinfo/srslte-users
>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.softwareradiosystems.com/pipermail/srslte-users/attachments/20161101/0c5e27f2/attachment.html>


More information about the srslte-users mailing list