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