Hi Richard,
Am 07.11.24 um 14:36 schrieb Richard Clark:
I seem to be getting only 4000 messages per second. Or roughly 4 messages per millisecond. Now there are a couple malloc() and free() and condition_wait() and condition_signal()s going on as the events and messages get passed through the sender and receiver threads, but nothing (IMHO) that should slow things down too much. Messages are very small, like 50 bytes, as I'm really just trying to get a handle on basic overhead. So pretty much, yes, I'm beating the context-switching mechanisms to death...
Please note, that condition_wait / condition_signal might use L4::Semaphore to synchronize the threads, which is an additional microkernel interaction / context switch.
My questions: Is this normal(ish) throughput for a single-core x86_64 QEMU system?
Benchmarking on Qemu might give you a ballpark number, but QEMU performance depends on several factors like load on the host machine, linux scheduling, etc. This has the effect that the number of instructions-per-cycle execute in a time slice on a QEMU CPU vary.
And lastly... We are going to be signing up for training soon... do you have a recommendation for a big beefy AMD-based linux laptop?
If you plan on using virtualization in your setup, please be aware that the AMD-SVM support is experimental and needs more work to be ready for a production environment. Intel-VMX is supported.
Cheers, Philipp