From: Jeff D. <jd...@ad...> - 2004-09-18 12:13:50
|
On Fri, Sep 17, 2004 at 09:30:53PM -0500, Adam Heath wrote: > No, I'm not. > > UML ptraces it's children, to do it's emulation. However, only one UML > tracing thread can be doing a ptrace of one of it's children at a time. If > there are 50 UML instances running on the host, then that BKL inside > sys_ptrace is a bottleneck. OK, just your comment on preemption was a bit strange. You're still wrong, just for different reasons. The scalability of a lock depends on the number of processors on the system, not the number of processes. So, for a given host, increasing the number of UMLs on the system won't increase the pressure on the BKL, assuming that number is greater than the number of processors. And in any case, on a UP system, there is no BKL. Increasing the number of processors will increase the pressure on the BKL, again assuming there are more UMLs than processors. So, 50 UMLs on a 2P system won't be a problem, but 50 UMLs on a 50P system could be. The UML systems that I am aware of are 2P, at most. I think that it is generally OK to run with the entire kernel under the BKL with 2 processors. This being the case, it follows that ptrace won't be an issue either. Also, the ptrace paths are pretty short. Get in, copy a small amount of data or change some state of the child, and get out. On a 2P system, I have a hard time seeing that being a bottleneck. However, it would be interesting to see if UML is causing lock contention anywhere. Running lockmeter on an SMP box running UMLs would show if there's any problems. Jeff |