Deadlock in cfi_cmdset_0001.c on simultaneous write operations.

Nicolas Pitre nico at cam.org
Thu Nov 24 11:39:14 EST 2005


On Thu, 24 Nov 2005, Alexey, Korolev wrote:

> Nicolas,
> 
> I'm using non SMP platform ( Mainstone II). CONFIG_PREEMPT is disabled.

What kernel version are you using?

Can you send me your kernel .config?  I'll try to reproduce it here.

> Partition size is 8MB. Current configuration: each logical volume is located
> on each h/w partition. Logical volumes don't share h/w partitions.

This is Sibley flash?

> I also disabled erase suspend on write feature.

Why?

> I applied code which you have send in previous letter.
> After that code behavior has changed.
> It didn't halt on basic simultaneous write operations.

Actually, I wonder why.  Especially with CONFIG_PREEMPT on non SMP 
system all spin_locks are just no ops.

> But it failed to kernel panic in our test case. (Five applications, each of
> them performs writing, erasing and reading own logical volume )

Can you share your test application with me?

> Here is kernel panic message:
> After this message I received two more almost the same as this kernel panic
> messages.
> 
[...]
> Stack: (0xc391dfa8 to 0xc391e000)
> dfa0:                   c391dfc8 c391dfb8 c003129c c0030eb4 02c76300 c391e004
> dfc0: c391dfcc c01a0928 c0031284 02734e47 33c93d00 00000075 c3982450 c3c732f0
> dfe0: c391e08c c02deba0 00000007 c3c732d4 00000001 00000001 c391e0c8 c391e008
> Backtrace:
[...]

This looks extremely suspicious, given that the backtrace has at least 
40 calls and the stack cannot contain all of them given its location 
(the kernel stack is 8kb aligned).  So this really looks like a kernel 
stack overflow, and frankly I wonder how you managed that.

Did you modify your kernel somehow?  What patches if any did you apply 
to it?


Nicolas




More information about the linux-mtd mailing list