On Sat, Apr 20, 2002 at 01:46:15PM -0700, Andrew Morton <[EMAIL PROTECTED]> wrote:
> That's a livelock in the lock-break patch.  Blame me for that.
 I do not blame you Andrew, I never blame a kernel hacker. Btw, your patch
does not help. I was going mad, and did some tests. It showed that if I
write on a loop device, and sync for example, then
conditional_schedule_needed() will be constant 1 (one), and nr_rescheds is
zero all the time. Thus it steps into the true leaf of the if, and as it
returns with -EAGAIN, it tries again, then again etc. Thus the question is
what is the change between disable the lock break patch (it is enough to
disable it and recompile, writing on loop devices will work), and the enabled
state, where conditional_schedule_needed() does not get back to zero.

> It perhaps does imply that a large number of buffers of the
> wrong dirty state are getting onto the wrong list.  JFS
> maybe missing a refile_buffer() call somewhere.
 I do not know. But beware, this bug affects the XFS+preemption+lock break
tri as well. It seems 'plug in' journaling filesystems change something in
a wrong way, as notice that I have ext2 on my loop filesystems, and the system
freezes.

If you have other ideas for a fix, I would be happy to try them out.
Thanks,
Laszlo
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to