Removing Stop Machine From The Tracing Infrastructure
Stop machine is a heavy weight mechanism to synchronize the kernel. When the system needs to act as a uniprocessor, the call to stop machine will force all processors to halt while one processor performs a certain task. With machines getting to hold 4096 processors, forcing 4095 of them to pause while 1 does a task can produce a nasty latency on the system. Unfortunately, the tracing infrastructure is one of those places that insert such a burden onto the system. This is because of the dynamic code modification that tracing does to ensure that it is very low overhead when not enabled. But modifying code on a live system can cause the system to crash if not done correctly. A stop machine makes this much easier. This talk will explain how and why stop machine is currently used as well as the solution coming forward in the next months on how to use an alternative.