Masao Uebayashi <[email protected]> wrote: > So what I can think of now is, the underlying bdev can't finish I/O > because it allocates memory to handle I/O requests?
I already spotted two points where ioflush was stuck in PUFFS code path, and I added code so that it can act immediatly or get an error. That helps, and I do not see ioflush deadlocking anymore. However the errors mean vnode are not really sync. When a process deadlocks awaiting the PUFFS filesystem, while the PUFFS filesystems sleeps on anonget2 (or sometime on flt_noram1), I can see that uvmexp.paging is high as a few hundred, and it can even be thousands. I did not notice other kernel threads sleeping on unusual places. -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz [email protected]
