Re: periodically-drain-non-local-pagesets-fix.patch added to -mm tree

From: Andrew Morton <akpm_at_osdl.org>
Date: 2005-06-03 16:10:57
(added linux-ia64)

Christoph Lameter <clameter@engr.sgi.com> wrote:
>
> printk: 272 messages suppressed.
>  BUG: using smp_processor_id() in preemptible [00000001] code: 
>  K10boot.swap/14959
>  caller is ia64_flush_fph+0x40/0x1a0
> 
>  Call Trace:
>   [<a000000100010840>] show_stack+0x80/0xa0
>                                  sp=e000023c1571fb20 bsp=e000023c15719158
>   [<a000000100010890>] dump_stack+0x30/0x60
>                                  sp=e000023c1571fcf0 bsp=e000023c15719148
>   [<a0000001003f3be0>] debug_smp_processor_id+0x2a0/0x2c0
>                                  sp=e000023c1571fcf0 bsp=e000023c15719128
>   [<a00000010002f6c0>] ia64_flush_fph+0x40/0x1a0
>                                  sp=e000023c1571fd70 bsp=e000023c15719110
>   [<a000000100035060>] setup_sigcontext+0x80/0x5e0
>                                  sp=e000023c1571fd80 bsp=e000023c157190c8
>   [<a000000100035aa0>] setup_frame+0x3a0/0x4a0
>                                  sp=e000023c1571fd80 bsp=e000023c15719068
>   [<a000000100035d30>] handle_signal+0x190/0x1a0
>                                  sp=e000023c1571fd80 bsp=e000023c15719030
>   [<a000000100035e80>] ia64_do_signal+0x140/0x400
>                                  sp=e000023c1571fd80 bsp=e000023c15718f88
>   [<a000000100011250>] do_notify_resume_user+0x110/0x120

Seems to me to be a preempt bug in the ia64 code:

inline void
ia64_flush_fph (struct task_struct *task)
{
	struct ia64_psr *psr = ia64_psr(ia64_task_regs(task));

	if (ia64_is_local_fpu_owner(task) && psr->mfh) {
		psr->mfh = 0;
		task->thread.flags |= IA64_THREAD_FPH_VALID;
		ia64_save_fpu(&task->thread.fph[0]);
	}
}

ia64_is_local_fpu_owner() diddles around with the concept of "the CPU we're
running on", but as no locks are held, smp_processor_id() can change at any
time.

The warning is, I think, valid and that code needs to be rethunk.
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Jun 3 02:11:28 2005

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