Messages in this thread | | | Date | Fri, 3 Dec 2010 00:52:12 -0600 | From | Robin Holt <> | Subject | Do we need to call calibrate_delay() for all cores/hyperthreads on a socket? |
| |
I do not know all the different combinations of sockets, cores, and hyperthreads out there, but it seems like all cores and their hyperthreads on a socket should compute the same value for their calculate_delay() function.
When booting a 4096 cpu system without specifying lpj on the command line, we spend approximately 0.1 seconds per core/hyperthread calculating the lpj value for that cpu.
If we were to, on the other hand, only calculate the delay value for the first core on a socket, we would reduce the time spent booting a 4096 cpu (256 sockets, 8 cores per socket hyperthreaded) down from nearly seven minutes to approx 25 seconds. This seems like a very safe optimization, but I repeat that I do not know all the different potential combinations of socket, core, hyperthread out that. Please note these are just rough approximations taken from memory. I am doing a couple of test boots now without and with lpj= specified on the command line to get a more accurate approximation.
Thanks, Robin Holt
| |