-
Notifications
You must be signed in to change notification settings - Fork 45
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
Why don't fork on dual mode (S1 and T1/C1 datagrams simultaneously) #40
Comments
Can you post the command lines needed to do this? |
Sure!
here is a top:
|
Very nice! I suppose the same could be done in rtlwmbus.... but no-one has thought about doing it before! |
Hi. Well, splitting one IQ-stream in two, like proposed above, effectively doubles amount of the data that you're dealing with. The second thing is that all data preprocessing has to be done twice. Preprocessing steps are those before process_t1_c1_chain() and process_s1_chain(). Ideally, in sense of better balancing the CPU load, the data flow would look like this: rtl_sdr -> rtl_wmbus | preprocessing | memory barrier | continue preprocessing rtl_wmbus shall use double buffering technique filling a second buffer while the first buffer is being processed by thread1 for process_t1_c1_chain() with switching buffers afterwards. The same applies to thread2 for process_s1_chain(). When both chains() are ready with their work they would be waiting at memory barrier before going to be triggered by the main() function which will pass the same memory barrier. The trick is that both threads (each of those!) must run faster than the preprocessing (main) thread. I will be going to implement this, but need some time - time is very rare resource which I (don't) have. :/ |
Hi xaelsouth and thank you for your comment. |
Hi,
using rtl-wmbus on a Raspberry Pi 2 I've seen that cpu (a single core) goes to 100% if decoding both S1 and T1/C1... Using "-a -p T" it stay around 65%.
Since the Raspberry is multicore, why the software does not "fork", with the two decoding enabled?
I've already found a workaround (I hope), using a tee and a fifo, I start two instances of rtl_wmbus one with "-s -a -p T" and one with "-s -a -P S". This seems to split the workload on two cpus :)
Is there any side effect in my way? Is there a good reason to keep it in a single thread?
Thanks in advance
\Jeky
The text was updated successfully, but these errors were encountered: