Do we need to call calibrate_delay() for all cores/hyperthreads ona socket?

From: Robin Holt
Date: Fri Dec 03 2010 - 01:52:23 EST



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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/