Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs

From: Ric Wheeler
Date: Mon Dec 22 2008 - 14:18:43 EST


Eric Sandeen wrote:
Jan Kara wrote:

In looking at what we have today, I wonder if we can make things smarter
so that we don't commit empty transactions in any case?
Probably it does not make sence to commit such transactions and we might
save some time in sync paths if we do so. So yes, I think skipping empty
transaction commit might be worthwhile and it shouldn't be hard to do
either. But I'd give it serious testing just in case some unexpectedly
relies on this behaviour - wouldn't this interfere e.g. with sync
transaction batching autotuning code? Untested patch below...
Honza


Cool, thanks! This's stop:

# sync

from spinning up disks under idle filesystems too, I think.

I was looking at something similar but was still working out how many
things to check before deciding if the transaction was in fact empty. :)

-Eric

Without having dived into the patch in detail, one worry I would have is that we still might care to spin up a drive for empty transactions in order to invalidate the drive's write cache.

For example, if we have the following sequence:

(1) user app performs series of writes to file A
(2) pages dirtied from writes to A are destaged to the disk over time
(3) user app issues fsync(file A) to make sure that the data will survive a power outage

At this point in time, would this change prevent us from spinning up the drive and invalidating the disk write cache for that fsync() ?

Regards,

Ric

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/