[srslte-users] run_thread in thread_pool.cc

Ismael Gomez ismael.gomez at softwareradiosystems.com
Tue Nov 1 19:38:44 UTC 2016


Hi Nick,

On Tue, 1 Nov 2016 at 11:02 Nick Ho <nick133371 at gmail.com> wrote:

> 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.
>

It enters when any dl grant is available (any format except format 0)


> 2. The function that decode_pdcch() new_grant_dl() decode_pdsch() will
> process complete in the same subframe that comes a DCI 1?
>

yes


> I wonder if the thread has the ability to process so many function in 1 ms.
>

It does not necessary to process in 1 ms. If multiple threads are enabled
to process the PHY then it may take up to 2 or 3 ms to process the dl and
ul grants.


>
>
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 at 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 at 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/451b72e4/attachment.html>


More information about the srslte-users mailing list