Skip to contentSkip to conversation

x86, UV: Remove UV delay in starting slave cpus

PATCH In review Jack Steiner 1 participant 2 messages Aug 5, 2011 – Aug 9, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86, UV: Remove UV delay in starting slave cpus

Delete the 10 msec delay between the INIT and SIPI when starting slave cpus. I can find no requirement for this delay. BIOS also has similar code sequences without the delay.

Removing the delay reduces boot time by 40 sec. Every bit helps.

---
 arch/x86/kernel/apic/x2apic_uv_x.c |    1 -
 1 file changed, 1 deletion(-)
arch/x86/kernel/apic/x2apic_uv_x.c +0 -1
Index: linux/arch/x86/kernel/apic/x2apic_uv_x.c
===================================================================
@@ -207,7 +207,6 @@ static int __cpuinit uv_wakeup_secondary
 	    ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
 	    APIC_DM_INIT;
 	uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
-	mdelay(10);
 
 	val = (1UL << UVH_IPI_INT_SEND_SHFT) |
 	    (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |
#1 lore raw
Commit-ID:  05e33fc20ea5e493a2a1e7f1d04f43cdf89f83ed
Gitweb:     http://git.kernel.org/tip/05e33fc20ea5e493a2a1e7f1d04f43cdf89f83ed
Author:     Jack Steiner <[email protected]>
AuthorDate: Fri, 5 Aug 2011 09:09:00 -0500
Committer:  Ingo Molnar <[email protected]>
CommitDate: Fri, 5 Aug 2011 23:48:34 +0200

x86, UV: Remove UV delay in starting slave cpus

Delete the 10 msec delay between the INIT and SIPI when starting slave cpus. I can find no requirement for this delay. BIOS also has similar code sequences without the delay.

Removing the delay reduces boot time by 40 sec. Every bit helps.

---
 arch/x86/kernel/apic/x2apic_uv_x.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
arch/x86/kernel/apic/x2apic_uv_x.c +0 -1
index adc66c3..34b1859 100644
@@ -207,7 +207,6 @@ static int __cpuinit uv_wakeup_secondary(int phys_apicid, unsigned long start_ri
 	    ((start_rip << UVH_IPI_INT_VECTOR_SHFT) >> 12) |
 	    APIC_DM_INIT;
 	uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
-	mdelay(10);
 
 	val = (1UL << UVH_IPI_INT_SEND_SHFT) |
 	    (phys_apicid << UVH_IPI_INT_APIC_ID_SHFT) |