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

From: yhlu
Date: Fri Aug 12 2005 - 02:04:53 EST


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 <yhlu.kernel@xxxxxxxxx> 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 <ak@xxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/