Submitter | Scott |
---|---|
Date | 2010-10-18 16:38:55 |
Message ID | <133458B4C40B45598D9C8042D34DAE4F@m3a78> |
Download | mbox | patch |
Permalink | /patch/2137/ |
State | Superseded |
Headers | show |
Comments
> To reduce boot time, removing the double startup IPI and 10 ms > delay from lapic_cpu_init.c should be considered. Because I can > test this code only on recent AMD cpu models, it is only safe > to apply the change in those cases. The following patch uses > a compile time check to identify CPUs where the change is known > to work. Would a runtime check be better? Until Fam10 and K8 can use the same image, compile time is probably the correct way to do it. If there ends up being a long list of processors that don't need the wait, we could add a Kconfig option like CONFIG_NO_LAPIC_DELAY. > Signed-off-by: Scott Duplichan <scott@notabs.org> Acked-by: Myles Watson <mylesgw@gmail.com> > + #if !defined (CONFIG_CPU_AMD_MODEL_10XXX) && !defined > (CONFIG_CPU_AMD_MODEL_14XXX) > mdelay(10); > + #endif > > printk(BIOS_SPEW, "Deasserting INIT.\n"); > > @@ -144,6 +146,9 @@ > #endif > > num_starts = 2; > + #if defined (CONFIG_CPU_AMD_MODEL_10XXX) || defined > (CONFIG_CPU_AMD_MODEL_14XXX) > + num_starts = 1; > + #endif I'd prefer it if they both used the same logic. I think it will make it easier to update in the future. Maybe something like this: #if !defined (CONFIG_CPU_AMD_MODEL_10XXX) && !defined (CONFIG_CPU_AMD_MODEL_14XXX) num_starts = 2; #else num_starts = 1; #endif Thanks, Myles
Patch
Index: src/cpu/x86/lapic/lapic_cpu_init.c =================================================================== --- src/cpu/x86/lapic/lapic_cpu_init.c (revision 5965) +++ src/cpu/x86/lapic/lapic_cpu_init.c (working copy) @@ -113,7 +113,9 @@ } return 0; } + #if !defined (CONFIG_CPU_AMD_MODEL_10XXX) && !defined (CONFIG_CPU_AMD_MODEL_14XXX) mdelay(10); + #endif printk(BIOS_SPEW, "Deasserting INIT.\n"); @@ -144,6 +146,9 @@ #endif num_starts = 2; + #if defined (CONFIG_CPU_AMD_MODEL_10XXX) || defined (CONFIG_CPU_AMD_MODEL_14XXX) + num_starts = 1; + #endif /* * Run STARTUP IPI loop.
To reduce boot time, removing the double startup IPI and 10 ms delay from lapic_cpu_init.c should be considered. Because I can test this code only on recent AMD cpu models, it is only safe to apply the change in those cases. The following patch uses a compile time check to identify CPUs where the change is known to work. Would a runtime check be better? Thanks, Scott Signed-off-by: Scott Duplichan <scott@notabs.org>