Debugging a Linux kernel deadlock when doing swap on ZFS
On Thu, 12 Apr 2012 19:30:08 -0400
Richard Yao <email@example.com> wrote:
> I am running Gentoo on ZFS using the kernel modules from sys-kernel/spl
> and sys-fs/zfs. If I put swap on ZFS, the kernel appears to deadlock
> when it tries to use it. I am having trouble getting a backtrace.
> Does anyone have any suggestions on how I could debug this?
If it's that easy to reproduce, I'd suggest to try it in usermode
linux (ARCH=um make). It's a linux kernel as unprivileged userspace
process. Easy to attach with gdb, add printk and etc.
Does not support SMP.
- swap on FS has some optimizations which are not very well suited
to copy-on-write files. kernel picks file block map from filesystem
and tries to use it directly (code might be shared with FIBMAP
implementation). It's a tricky part to handle.
- triple-check all ZFS memory allocations go at least via GFP_NOFS