Hi,
I am trying to understand the (hardware) delays during a processing core initialization. The core is moved to offline and online state through Linux hot-plug mechanism. The core moving to online state starts with sending INIT IPI to the destination core's local APIC followed by START UP IPI. I noticed few hardcoded delays added in this process from linux's source code. However the data sheet - Appendix B.4 from http://www.intel.com/design/pentium/datashts/24201606.pdf - contains a pseudo-code (given below) that instructs to add the delays.
BSP sends AP an INIT IPI
BSP DELAYs (10mSec)
If (APIC_VERSION is not an 82489DX) {
BSP sends AP a STARTUP IPI
BSP DELAYs (200µSEC)
BSP sends AP a STARTUP IPI
BSP DELAYs (200µSEC)
}
BSP verifies synchronization with executing AP
I am not sure the reason for adding these hard-coded delays in the startup code. If anyone has any knowledge on this, I would really appreciate if you could help me understand this.
- Sankar