The patch adds new ploop tunable: push_backup_timeout.
It is measured in seconds. The default is 42. The meaning is:
if a preq sits in pending or reported tree for more than that,
let's abort push_backup operation.

Signed-off-by: Maxim Patlasov <[email protected]>
---
 drivers/block/ploop/sysfs.c |    2 ++
 include/linux/ploop/ploop.h |    4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/block/ploop/sysfs.c b/drivers/block/ploop/sysfs.c
index 034713a..afe46f8 100644
--- a/drivers/block/ploop/sysfs.c
+++ b/drivers/block/ploop/sysfs.c
@@ -460,6 +460,7 @@ _TUNE_BOOL(disable_user_threshold);
 _TUNE_U32(congestion_high_watermark);
 _TUNE_U32(congestion_low_watermark);
 _TUNE_U32(max_active_requests);
+_TUNE_U32(push_backup_timeout);
 
 
 struct pattr_sysfs_entry {
@@ -519,6 +520,7 @@ static struct attribute *tune_attributes[] = {
        _A2(congestion_high_watermark),
        _A2(congestion_low_watermark),
        _A2(max_active_requests),
+       _A2(push_backup_timeout),
        NULL
 };
 
diff --git a/include/linux/ploop/ploop.h b/include/linux/ploop/ploop.h
index 2b63493..61e8faf 100644
--- a/include/linux/ploop/ploop.h
+++ b/include/linux/ploop/ploop.h
@@ -309,6 +309,7 @@ struct ploop_tunable
        int     congestion_high_watermark;
        int     congestion_low_watermark;
        int     max_active_requests;
+       int     push_backup_timeout; /* in seconds */
        unsigned int pass_flushes : 1, pass_fuas : 1,
                     congestion_detection : 1,
                     check_zeros : 1,
@@ -333,7 +334,8 @@ struct ploop_tunable
 .pass_flushes = 1, \
 .pass_fuas = 1, \
 .check_zeros = 1, \
-.max_active_requests = DEFAULT_PLOOP_BATCH_ENTRY_QLEN / 2, }
+.max_active_requests = DEFAULT_PLOOP_BATCH_ENTRY_QLEN / 2, \
+.push_backup_timeout = 42, }
 
 struct ploop_stats
 {

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to