[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: writing processes are blocking in log_wait_common with data=ordered

Andrew Morton wrote:
> Does this patch help?

I won't, I suspect.  You've done an O_SYNC write.  ext3
needs to write your data out to disk before returning
from the pwrite() call.  We do that by running a commit
and waiting for it to complete.

In ordered mode, commit will writeback and wait upon
your newly-dirtied data.  That's what you asked it to do.

Other filesystems will do it by directly writing the data
and waiting on it.  We've lost some concurrency because
the journal is busy, but in practice I suspect it won't
make much difference.

Are you sure that you actually have a problem?  Does your
application run significantly more quickly on ext2?

(I now need to know your exact kernel version - there
have been various goofups on the sync paths which were
fixed relatively recently).

I suspect that ext3 is doing an unnecessary commit
on the fsync() case, and in the O_SYNC case, for your
application.  If the mtime fix is in place then we
can try to drop all the ordered-mode data buffers
from the transaction (which will succeed) and then
look to see if there's anything to be committed
(there will not be).  hmm.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]