Very interesting. I am still seeking clues for why my backport of
Pavels nbd to 2.0.* locks up sometimes under 2.0.36, with an
"impossible" condition, but runs perfectly under 2.0.25 - even in a
kernel in which the nbd device is treated as pluggable. What I see
reminds me strongly of what you describe (still, I'm OK - I use 2.0.25
:).
> Linus, I've also realised that making semaphores recursive does not fix
> the inode deadlock. It only eliminates the single process case. We can
> still have two separate processes each writing to a separate mmaped()
> file deadlock. If each process starts a msync() on its own file and in
like ckraid --fix on /dev/nd0 and /dev/nd1, maybe :-). Or dd to a file
that's mirrored across the two.
> the process of that tries to sync one of the other process's pages via
> try_to_free_page, we get the deadlock back.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/