Re: [discuss] Re: 2.6.13-rc2 with dual way dual core ck804 MB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



andi,

it seems ia64 is after done with the tsc_sync then set the callin_map.

YH

        if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT)) {
                /*
                 * Synchronize the ITC with the BP.  Need to do this
after irqs are
                 * enabled because ia64_sync_itc() calls
smp_call_function_single(), which
                 * calls spin_unlock_bh(), which calls
spin_unlock_bh(), which calls
                 * local_bh_enable(), which bugs out if irqs are not enabled...
                 */
                Dprintk("Going to syncup ITC with BP.\n");
                ia64_sync_itc(0);
        }

        /*
         * Get our bogomips.
         */
        ia64_init_itm();
        calibrate_delay();
        local_cpu_data->loops_per_jiffy = loops_per_jiffy;

#ifdef CONFIG_IA32_SUPPORT
        ia32_gdt_init();
#endif

        /*
         * Allow the master to continue.
         */
        cpu_set(cpuid, cpu_callin_map);


On 8/11/05, yhlu <[email protected]> wrote:
> andi,
> 
> is it possible for
> after the AP1 call_in is done and before AP1 get in tsc_sync_wait
> The AP2 call_in done.  and then AP1 get in tsc_sync_wait and before it
> done, AP2 get in tsc_sync_wait too.
> 
> sync_master can not figure out from AP1 or AP2 because only have
> go[MASTER] and go{SLAVE].
> 
> YH
> 
> On 8/10/05, Andi Kleen <[email protected]> wrote:
> > On Wed, Aug 10, 2005 at 05:43:23PM -0700, yhlu wrote:
> > > Yes, I mean more aggressive
> > >
> > > static void __init smp_init(void)
> > > {
> > >         unsigned int i;
> > >
> > >         /* FIXME: This should be done in userspace --RR */
> > >         for_each_present_cpu(i) {
> > >                 if (num_online_cpus() >= max_cpus)
> > >                         break;
> > >                 if (!cpu_online(i))
> > >                         cpu_up(i);
> > >         }
> > >
> > >
> > > let cpu_up take one array instead of one int.
> >
> > It can be done already by just not starting the CPUs and
> > then do it multithreaded from user space using sysfs with
> > the CPU hotplug infrastructure. Unfortunately cpu_up
> > right now has a global semaphore, so it won't save you any
> > time. However it could be done in parallel with other
> > startup jobs.
> >
> > -Andi
> >
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux