Re: [Linux-ia64] quick ia64 patch for 2.5.44 (UP only)

From: Kimio Suganuma <k-suganuma_at_mvj.biglobe.ne.jp>
Date: 2002-10-26 09:23:43
Hi,

I found that functions in timer.c and rcupdate.c are calling
tasklet_init() for all CPUs before APs start running.
I think per_cpu() cannot be used for not running CPU for ia64,
and this assumption was broken by them.

I attached args for tasklet_init() at booting and you can see
tasklet structures for CPU#0 are only valid.
Caller might be init_timers() and rcu_init().

I cannot come up with good solution for it but I think
we have to change current per_cpu implementation.
Any idea?

Thanks,
Kimi

enter tasklet_init t=e000000100000180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=a000000000008180, func=e000000004a2e340
enter tasklet_init t=e000000100000158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100
enter tasklet_init t=a000000000008158, func=e000000004a2c100


On Fri, 25 Oct 2002 14:50:33 -0700
Kimio Suganuma <k-suganuma@mvj.biglobe.ne.jp> wrote:

> I found that tasklet_hi_action() seemed to call NULL pointer.
> So I tried to put following code (I guess this is wrong fix)
> into the function;
> 
> 	if (t->func == NULL) {
> 		tasklet_unlock(t);
> 		continue;
> 	}
> 
> And the system initialization moved on, but it hung at INIT execution.
> Anyway, I feel this problem might be related to the timer change.
> 
> http://marc.theaimsgroup.com/?l=linux-kernel&m=103393743102152&w=2

-- 
Kimio Suganuma <k-suganuma@mvj.biglobe.ne.jp>
Received on Fri Oct 25 16:24:23 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:10 EST