Then I tried to create as many threads as possible on my OS. And discovered several off-by-1-bugs in my code. Then I tried to create as many processes in my OS and noticed some design problems of my memory manager.
I did those tests to find about my OS's deficiencies:
- - Creating many threads
- Creating many processes
- Allocate much memory in a processes (=memory pressure) and then create new processes/threads. Does the kernel crash?
- Play IPC ping-pong between two threads, measure performance
- Play IPC ping-pong between two processes, measure performance
And another question: Is your kernel instrumented? Does it trace kernel events (like scheduling decisions, etc.)? How does it report this data?