Hi,

 What is this change about?

diff -u --recursive --new-file v2.4.0-test12/linux/arch/i386/kernel/smpboot.c 
linux/arch/i386/kernel/smpboot.c
--- v2.4.0-test12/linux/arch/i386/kernel/smpboot.c      Mon Dec 11 17:59:43 2000
+++ linux/arch/i386/kernel/smpboot.c    Thu Dec 14 14:54:40 2000
@@ -694,6 +694,11 @@
                apic_write_around(APIC_ICR, APIC_DM_STARTUP
                                        | (start_eip >> 12));
 
+               /*
+                * Give the other CPU some time to accept the IPI.
+                */
+               udelay(300);
+
                Dprintk("Startup point 1.\n");
 
                Dprintk("Waiting for send to finish...\n");

There is the following code is just after it, making the above change
just useless garbage:

                timeout = 0;
                do {
                        Dprintk("+");
                        udelay(100);
                        send_status = apic_read(APIC_ICR) & APIC_ICR_BUSY;
                } while (send_status && (timeout++ < 1000));

                /*
                 * Give the other CPU some time to accept the IPI.
                 */
                udelay(200);

If we need 600usecs of delay for certain systems, then why not just make
it like below?

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [EMAIL PROTECTED], PGP key available        +

patch-2.0.4-test13-pre3-startup_ipi-0
diff -up --recursive --new-file 
linux-2.4.0-test13-pre3.macro/arch/i386/kernel/smpboot.c 
linux-2.4.0-test13-pre3/arch/i386/kernel/smpboot.c
--- linux-2.4.0-test13-pre3.macro/arch/i386/kernel/smpboot.c    Mon Dec 18 12:14:10 
2000
+++ linux-2.4.0-test13-pre3/arch/i386/kernel/smpboot.c  Mon Dec 18 12:15:49 2000
@@ -694,11 +694,6 @@ static void __init do_boot_cpu (int apic
                apic_write_around(APIC_ICR, APIC_DM_STARTUP
                                        | (start_eip >> 12));
 
-               /*
-                * Give the other CPU some time to accept the IPI.
-                */
-               udelay(300);
-
                Dprintk("Startup point 1.\n");
 
                Dprintk("Waiting for send to finish...\n");
@@ -712,7 +707,7 @@ static void __init do_boot_cpu (int apic
                /*
                 * Give the other CPU some time to accept the IPI.
                 */
-               udelay(200);
+               udelay(500);
                /*
                 * Due to the Pentium erratum 3AP.
                 */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to