• Patrick Mochel's avatar
    Reorganize the mtrr init sequence a bit. All mtrr init now happens · b6a3d01f
    Patrick Mochel authored
    during the initcall sequence, after all CPUs have been brought up. 
    mtrr_init() calls a static init_other_cpus(), which fires off a function 
    on all other cpus to replicate the state across all of them. 
    
    arch/i386/kernel/smpboot.c::smp_callin() had the following: 
    
    #ifdef CONFIG_MTRR
           /*
            * Must be done before calibration delay is computed
            */
           mtrr_init_secondary_cpu ();
    #endif
    
    
    I couldn't figure this one out. The P4 manual says nothing about this, nor
    find any other documentation about it. The P4 manual says only that state
    must be synchronized across all CPUs, which it is. And, it happens before
    anything else is executed on the other CPUs, and before any devices or
    drivers have been brought up.
    
    The cyrix mtrr code was also updated to handle this style of SMP initialization.
    b6a3d01f
main.c 17.2 KB