lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 6 Mar 2008 11:03:31 -0800
From:	Suresh Siddha <suresh.b.siddha@...el.com>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	Suresh Siddha <suresh.b.siddha@...el.com>, hpa@...or.com,
	tglx@...utronix.de, andi@...stfloor.org, hch@...radead.org,
	linux-kernel@...r.kernel.org,
	Arjan van de Ven <arjan@...ux.intel.com>
Subject: Re: [patch 1/2] x86, fpu: split FPU state from task struct - v4

On Thu, Mar 06, 2008 at 04:18:32PM +0100, Ingo Molnar wrote:
> 
> > > Split the FPU save area from the task struct. This allows easy 
> > > migration of FPU context, and it's generally cleaner. It also allows 
> > > the following two optimizations:
> 
> the atomicity bug is still there:
> 
> [ 1230.409772] BUG: sleeping function called from invalid context at mm/slab.c:>
> [ 1230.409772] in_atomic():0, irqs_disabled():1
> [ 1230.409772] Pid: 1187, comm: awk Not tainted 2.6.25-rc4-sched-devel.git-x86->[ 1230.409772]
> [ 1230.409772] Call Trace:
> [ 1230.409772]  [<ffffffff8022255b>] ? do_page_fault+0x3eb/0xa80
> [ 1230.409772]  [<ffffffff8022c68e>] __might_sleep+0xce/0xf0
> [ 1230.409772]  [<ffffffff8028c299>] kmem_cache_alloc+0xf9/0x120
> [ 1230.409772]  [<ffffffff80214338>] init_fpu+0x98/0x100
> [ 1230.409772]  [<ffffffff8020ec10>] math_state_restore+0x20/0x80
> [ 1230.409772]  [<ffffffff809b8cc9>] error_exit+0x0/0x60
> 
> config and bootlog attached.

My bad. I overlooked the fact that exception handling by the processor
automatically disables interrupts and my tested configs didn't have
CONFIG_DEBUG_SPINLOCK_SLEEP set. My previous fix took care of only 32bit kernels
as they were disabling interrupts explicitly for PREEMPT kernels.

I will post a -v5 fixing this.

> # CONFIG_DEBUG_KERNEL is not set

BTW, In the .config you sent, you don't have CONFIG_DEBUG_SPINLOCK_SLEEP or
CONFIG_DEBUG_KERNEL set. How come you are seeing those backtraces?

thanks,
suresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists