Hi Thomas & Ingo,
Josef has been working on some patches to try and get ext3/4 to
dynamically detect the latency of a storage device and use that base
latency to tune the amount of time we sleep waiting for others to join
in a transaction. The logic in question lives in jbd/transaction.c
(transaction_stop).
The code was originally developed to try and allow multiple threads to
join in a big, slow transaction. For example, transacations that write
to a slow ATA or S-ATA drive take in the neighborhood of 10 to 20 ms.
Faster devices, for example a disk array, can complete the transaction
in 1.3 ms. Even higher speed SSD devices boast of a latency of 0.1ms,
not to mention RAM disks ;-)
The current logic makes us wait way too long, especially with a 250HZ
kernel since we sleep many times longer than it takes to complete the IO ;-)
Do either of you have any thoughts on how to get a better, fine grained
sleep capability that we could use that would allow us to sleep in
sub-jiffie chunks?
Regards,
Ric
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html