[Devel] [PATCH RHEL7 COMMIT] ms/writeback: mark background writeback as such

Konstantin Khorenko khorenko at virtuozzo.com
Fri Oct 25 13:17:23 MSK 2019


The commit is pushed to "branch-rh7-3.10.0-1062.1.2.vz7.114.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1062.1.2.vz7.114.9
------>
commit 78b880369029cf6117b78c393850d0484cf74c6d
Author: Jens Axboe <axboe at fb.com>
Date:   Fri Oct 25 13:17:22 2019 +0300

    ms/writeback: mark background writeback as such
    
    If we're doing background type writes, then use the appropriate
    background write flags for that.
    
    Signed-off-by: Jens Axboe <axboe at fb.com>
    Reviewed-by: Christoph Hellwig <hch at lst.de>
    
    https://jira.sw.ru/browse/PSBM-96243
    
    (cherry picked from commit 13edd5e7315a26b448c5f7f33fc7721b1e0c17ef)
    Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
    
    =====================
    Patchset description:
    
    block: backport writeback throttling
    
    We have a problem that if we run heavy write load on one cpu
    simultaneousely with short direct reads on other cpu, the latter will
    hang significantly. Writeback throttling looks like a sollution for
    these reads, as it will decrease the priority of long running writeback.
    
    Running simple dd experiment we see that reads latency decreased after
    wbt patches applied:
    https://docs.google.com/spreadsheets/d/1HLtepwFL_N5zm0JcTqMtJoYnf-b6Slwld8DDgL0gNDI
    
    We've ran vconsolidate on custom kernel with these patches, though it
    does not show any performance improvement (likely because this test does
    not produce high rate of writeback), it does not crash or fail the test.
    
    https://jira.sw.ru/browse/PSBM-96243
    
    Jens Axboe (6):
      block: add REQ_BACKGROUND
      writeback: add wbc_to_write_flags()
      writeback: mark background writeback as such
      writeback: track if we're sleeping on progress in
        balance_dirty_pages()
      blk-wbt: add general throttling mechanism
      block: hook up writeback throttling
    
    Omar Sandoval (1):
      block: get rid of struct blk_issue_stat
    
    Pavel Tikhomirov (2):
      x86/asm: remove the unused get_limit() method
      block: enable CONFIG_BLK_WBT*
      blk-wbt: increase maximum queue depth to increase performance of writes
---
 include/linux/writeback.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index d62d15fa4863..12075c8e0415 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -92,6 +92,8 @@ static inline int wbc_to_write_flags(struct writeback_control *wbc)
 {
 	if (wbc->sync_mode == WB_SYNC_ALL)
 		return REQ_SYNC | REQ_NOIDLE;
+	else if (wbc->for_kupdate || wbc->for_background)
+		return REQ_BACKGROUND;
 
 	return 0;
 }



More information about the Devel mailing list