Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LimeSDR Rx/Tx concurrent streams are not working reliably #83

Closed
f4exb opened this issue Oct 24, 2017 · 7 comments
Closed

LimeSDR Rx/Tx concurrent streams are not working reliably #83

f4exb opened this issue Oct 24, 2017 · 7 comments
Labels

Comments

@f4exb
Copy link
Owner

f4exb commented Oct 24, 2017

When Rx and Tx are running at the same time doing some settings in the Rx or Tx locks up both and eventually program is stalled and LimeSDR is left in a non working state and needs cold reboot (USB plug out/in).

This happens very often if not systematically when changing device/host sample rate in Rx or Tx.

@f4exb f4exb self-assigned this Oct 24, 2017
@f4exb f4exb added the bug label Oct 24, 2017
@f4exb f4exb removed their assignment Oct 24, 2017
@f4exb f4exb closed this as completed Oct 24, 2017
@f4exb
Copy link
Owner Author

f4exb commented Oct 24, 2017

It seems to work better if the threads are not suspended during configuration. When a thread is suspended it calls LMS_StopStream then when resuming it will call LMS_StartStream. It seems this exercise does not do much good and configuration including possible calibration works without it.

However supressing buddy threads suspend/resume does not always work we can only say that with suspend/resume it always fails.

This is really impossible to fix this without a good code example on concurrent streams from the designers of LimeSuite. I am afraid I will just have to leave it like this.

It seems that sometimes firing up the Rx blocks all streams if Tx is running at the same time. This is very very bad ... Changed the title to reflect this disaster.

@f4exb f4exb reopened this Oct 24, 2017
@f4exb f4exb changed the title LimeSDR Rx/Tx concurrent settings are not working LimeSDR Rx/Tx concurrent streams are not working Oct 25, 2017
@f4exb
Copy link
Owner Author

f4exb commented Oct 25, 2017

As per this post: https://discourse.myriadrf.org/t/sdrangel-rx-tx/1239/327
The real problem with concurrency is when LMS_SetupStream or LMS_DestroyStream is used while other streams are running so this is the only case where suspending other streams should take place. The first intuition was correct "buddy" threads need not to be suspended during configuration.

@f4exb
Copy link
Owner Author

f4exb commented Oct 25, 2017

I’ve tried many combinations and nothing works reliably

Readme.md says: "LimeSuite library is difficult to implement due to the lack of documentation. The plugins should work normally when running as single instances. Support of many Rx and/or Tx instances running concurrently is experimental and not actively supported."

Hence no support will be provided for concurrent streams.

@f4exb f4exb changed the title LimeSDR Rx/Tx concurrent streams are not working LimeSDR Rx/Tx concurrent streams are not working reliably Oct 26, 2017
@f4exb
Copy link
Owner Author

f4exb commented Oct 26, 2017

Adding a 0.5s delay (even just 0.1s) after LMS_StartStream and LMS_StopStream seems to improve things slightly. Edit: may be not just slightly this may give a solution in fact but the trouble is I really don't know why. It will have to be watched in the long run anyway.

@f4exb f4exb modified the milestones: v3.4.1, v3.7.6 Oct 27, 2017
@f4exb
Copy link
Owner Author

f4exb commented Oct 28, 2017

Done in v3.7.6 this ticket will be re-opened if it does not really fixes the issue.

@f4exb f4exb closed this as completed Oct 28, 2017
@f4exb
Copy link
Owner Author

f4exb commented Nov 2, 2017

Not working for concurrent Rx streams (probably Tx also)

@f4exb f4exb reopened this Nov 2, 2017
@f4exb f4exb removed this from the v3.7.6 milestone Nov 2, 2017
@f4exb
Copy link
Owner Author

f4exb commented Nov 8, 2017

After a while of successful running I think it might have been a side effect of an occasional USB connection
problem with the Lime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant