-
Notifications
You must be signed in to change notification settings - Fork 206
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
Add multi-threaded SB performance tests #2465
Comments
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Nov 17, 2023
Add multi-thread variants of the SB bulk transfer tests. The intent is to create some contention on the SB shared data mutex between the threads. This more closely resembles real use cases where different threads are doing sending and receving simultaneously.
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Nov 17, 2023
Add multi-thread variants of the SB bulk transfer tests. The intent is to create some contention on the SB shared data mutex between the threads. This more closely resembles real use cases where different threads are doing sending and receving simultaneously.
2 tasks
jphickey
added a commit
to jphickey/cFE
that referenced
this issue
Nov 17, 2023
Add multi-thread variants of the SB bulk transfer tests. The intent is to create some contention on the SB shared data mutex between the threads. This more closely resembles real use cases where different threads are doing sending and receving simultaneously.
dzbaker
added a commit
that referenced
this issue
Dec 5, 2023
Fix #2465, add multi threaded SB perf tests
2 tasks
dzbaker
added a commit
that referenced
this issue
Dec 5, 2023
Fix #2465, add multi threaded SB perf tests
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is your feature request related to a problem? Please describe.
The SB performance tests that were added in #2380 are single threaded. Thus, there is never any contention/blocking on the shared data structures (i.e. the SB shared data mutex is always available), and when receiving there is always a message in the pipe.
This is adequate to gauge the computation done strictly within the SB activity, but does not gauge how well it scales to real mission use, where there is typically a different app doing the sending vs. receiving.
Describe the solution you'd like
Add additional test cases that use multiple threads.
Case 1: Two threads, Thread 1 doing a CMD send and CMD receive, and Thread 2 doing a TLM send and TLM receive.
This will mean both threads are competing to access the SB shared data structures and thus depends on the mutex working properly, and performance will degrade if there is too much work being serialized by the mutex. However, it is still not entirely flight-like because the same thread is still doing send + receive. But, it avoids synchronization/throttling issues and there is no chance of msglim overrun.
Case 2: Four threads Thread 1 doing CMD send, thread 2 doing TLM send, thread 3 doing CMD recv, and thread 4 doing TLM recv.
This is the most realistic in that it matches how CFS apps typically work. However, it also makes it difficult to run at full speed because of the lack of synchronization in SB. Therefore, this needs to be externally synced, which will reduce performance.
Additional context
With recently expressed concerns about SB performance, we need better benchmarks.
Requester Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered: