gr-gsm receiver consuming 100% CPU

150 views
Skip to first unread message

snehas...@vehere.com

unread,
May 8, 2018, 1:58:21 PM5/8/18
to gr-gsm
Hello 

I am using gr-gsm with usrp x310 with a pfb channelizer implemented in the FPGA of the usrp. But when I try to demodulate a particular ARFCN sometimes I see the receiver suddenly consumeing 100 % CPU and again comes to normal (using htop), resulting of packet drop from the usrp. please explain me the reason behind this, am I going wrong somewhere. I am receiving data at 200Ksps sample rate and since using USRP x310 with GPSDO I have removed the clock offset corrector(as per discussed with Piotr).

Please help me with it.

BR
Snehasish

Piotr Krysik

unread,
May 30, 2018, 2:09:13 PM5/30/18
to gr-...@googlegroups.com
W dniu 08.05.2018 o 19:58, snehas...@live.com pisze:
Hi Snehasish,

I need more information to answer this - for example how many channels
are you trying to process with GSM receiver? What is your GNU RAdio
flowgraph?

Will your pfb channelizer be released as free software project? Or maybe
it already is?

For now all I can say is that current GSM receiver is single threaded.
It processes one channel first, then next and so on - so for current
multi core machines it could be quite easily speed up by doing the
processing with use of multiple threads.

--
Best Regards,
Piotr Krysik

snehas...@vehere.com

unread,
May 30, 2018, 2:32:57 PM5/30/18
to gr-gsm

Hello Piotr

Please find the answer to your queries below:

Hi Snehasish,

I need more information to answer this - for example how many channels
are you trying to process with GSM receiver?What is your GNU RAdio
flowgraph?
 
See the architecture is for each arfcn I am triggering a grc with with input adapter==>receiver==>control_channel_decoder  (actually using gnuradio c++ api ) , if no hopping , if i find hopping I then  trigger a grc with the number of hopping channels (max 16 hopping channels) connected to the receiver via input adapter, below is the link to the sample grc.


Will your pfb channelizer be released as free software project? Or maybe
it already is?
Already it is.

For now all I can say is that current GSM receiver is single threaded.
It processes one channel first, then next and so on - so for current
multi core machines it could be quite easily speed up by doing the
processing with use of multiple threads.
I think the change needs to implemented in the work function in the receiver_impl.cc, can you please explain me how to saggregate which IQ sample belongs to which arfcn.  

BR
Snehasish

Vasil Velichkov

unread,
May 30, 2018, 4:52:25 PM5/30/18
to gr-gsm
Hi Piotr,

On Wednesday, May 30, 2018 at 9:32:57 PM UTC+3, snehas...@live.com wrote:

Will your pfb channelizer be released as free software project? Or maybe
it already is?
Already it is.

Unfortunately I don't have hardware that supports RFNoC (USRP E310/E312/X300/X310) but it looks promising.

snehas...@vehere.com

unread,
May 31, 2018, 5:08:44 AM5/31/18
to gr-gsm
 I tried doing it in multiple threads but i am not getting any data. can you explain in which part should i need to implement threading i am attaching file that i modified.

https://drive.google.com/file/d/1LSrMI-GMKIhvfHNPrJ8iPkCrWxHujrMM/view?usp=sharing


BR
Snehasish



 
 

snehas...@vehere.com

unread,
Jun 2, 2018, 3:50:49 AM6/2/18
to gr-gsm
Vasil &Piotr

Any help on this?

Vasil Velichkov

unread,
Jun 2, 2018, 6:36:03 AM6/2/18
to gr-gsm
Hi Snehasish,


On Thursday, May 31, 2018 at 12:08:44 PM UTC+3, snehas...@live.com wrote:
I tried doing it in multiple threads but i am not getting any data. can you explain in which part should i need to implement threading i am attaching file that i modified.

https://drive.google.com/file/d/1LSrMI-GMKIhvfHNPrJ8iPkCrWxHujrMM/view?usp=sharing

If you plan to work on adding multithreading support why don't you clone the github repository, commit your changes and open a Pull Request. Reviewing code and discussing changes are just so much easier in github compared to sharing files in google drive.

snehas...@vehere.com

unread,
Jun 9, 2018, 5:23:47 PM6/9/18
to gr-gsm
Hello Vasil

I am trying to do as you said. Just needed a peice of infomation does
fcch_search_handler(input, noutput_items) and sch_search_handler(input, noutput_items) has to be done for input_nr(only C0) or all the available burst numbers?

BR

Vasil Velichkov

unread,
Jun 10, 2018, 2:26:19 AM6/10/18
to gr-...@googlegroups.com

Hi,

On 10.06.2018 00:23, snehas...@vehere.com wrote:
 Just needed a peice of infomation does
fcch_search_handler(input, noutput_items) and sch_search_handler(input, noutput_items) has to be done for input_nr(only C0) or all the available burst numbers?

Yes for C0 only.


snehas...@vehere.com

unread,
Jun 11, 2018, 3:06:58 AM6/11/18
to gr-gsm
 Hello Vasil
We are not able to create a branch of the grgsm project in order to create a pull request can you please help us with it?

BR
Snehasish

ravi.s...@vehere.com

unread,
Jun 11, 2018, 3:50:18 AM6/11/18
to gr-gsm
Hello Vasil

Just added a pull request. can you please review the changes.

https://github.com/ptrkrysik/gr-gsm/pull/412

BR

Piotr Krysik

unread,
Jun 11, 2018, 6:30:36 AM6/11/18
to gr-...@googlegroups.com
Hi,

Did you sent the right code? I don't see any multi-threading there.

Best Regards,
Piotr Krysik

W dniu 11.06.2018 o 09:50, snehas...@live.com pisze:

ravi.s...@vehere.com

unread,
Jun 11, 2018, 6:41:21 AM6/11/18
to gr-gsm

Piotr Krysik

unread,
Jun 11, 2018, 6:50:27 AM6/11/18
to gr-...@googlegroups.com
Hi,

It is different code than in the pull request.
For sure you need to process input_nr=0 (corresponding to the C0
channel) before you process other inputs. Synchronization information is
extracted from there.

Best Regards,
Piotr Krysik

W dniu 11.06.2018 o 12:41, ravi.s...@vehere.com pisze:
>
> Hello
>
> https://github.com/snehasish1991/gr-gsm/blob/dffd89d2a28c535bfa72bb97a195c45c5ea70e8e/lib/receiver/receiver_impl.cc
>
> Check this commit, line no 404
>
> BR
>
> On Monday, June 11, 2018 at 4:00:36 PM UTC+5:30, Piotr Krysik wrote:
>
> Hi,
>
> Did you sent the right code? I don't see any multi-threading there.
>
> Best Regards,
> Piotr Krysik
>
> W dniu 11.06.2018 o 09:50, snehas...@live.com <javascript:> pisze:

snehas...@vehere.com

unread,
Jun 11, 2018, 12:03:32 PM6/11/18
to gr-gsm
Hello
Can you please review the code once, now in multi-threaded  environment I can receive both uplink and downlink data, but as soon as I start it with hopping I don't get any BCCH data even from the C0 channel.

BR

office....@gmail.com

unread,
Oct 5, 2018, 2:00:53 AM10/5/18
to gr-gsm
Hi Snehasish

Were you able to successfully run multi-threading in channel processing? If you have done it, kindly share your "receiver_impl.cc" file. I am hoping to achieve the same. Even if you have not completed the task, kindly share your findings. That will help me a lot and give me some direction
In my initial working, I think we should process C0 initially and then run all CX channels in parallel. C0 and CX should not run in parallel

Regards
Mohsin
Reply all
Reply to author
Forward
0 new messages