[Devel] [PATCH RHEL7 COMMIT] fs/fuse kio: export io_locality

Konstantin Khorenko khorenko at virtuozzo.com
Mon Apr 15 15:55:14 MSK 2019


The commit is pushed to "branch-rh7-3.10.0-957.10.1.vz7.94.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-957.10.1.vz7.94.13
------>
commit b57aff4506dc303bbcfac256885f8af7bee47dec
Author: Pavel Butsykin <pbutsykin at virtuozzo.com>
Date:   Mon Apr 15 15:55:13 2019 +0300

    fs/fuse kio: export io_locality
    
    We will need this option for performance analysis.
    
    Signed-off-by: Pavel Butsykin <pbutsykin at virtuozzo.com>
    
    =====================
    Patchset description:
    
    KIO performance fixes
    
    This patch-set aims to fix the performance issue with single-thread sequential
    async reads.
    
    https://pmc.acronis.com/browse/VSTOR-11050
    
    Acked-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
    
    Pavel Butsykin (4):
      fs/fuse kio: fix a typo in worth_to_grow()
      fs/fuse kio: relax congestion avoidance limits (backport from usermode)
      fs/fuse kio: add missed sock write in pcs_sock_sendmsg()
      fs/fuse kio: export io_locality
---
 fs/fuse/kio/pcs/pcs_cluster_core.c | 1 -
 fs/fuse/kio/pcs/pcs_map.c          | 7 ++++++-
 fs/fuse/kio/pcs/pcs_req.h          | 1 -
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/fuse/kio/pcs/pcs_cluster_core.c b/fs/fuse/kio/pcs/pcs_cluster_core.c
index d1379c99ac6a..053325f94de9 100644
--- a/fs/fuse/kio/pcs/pcs_cluster_core.c
+++ b/fs/fuse/kio/pcs/pcs_cluster_core.c
@@ -159,7 +159,6 @@ int pcs_cc_init(struct pcs_cluster_core *cc, struct workqueue_struct *wq,
 	cc->cfg.curr = cc->cfg.def;
 	cc->cfg.sn = PCS_CONFIG_SEQ_ANY;
 
-	cc->io_locality = 0;
 	cc->io_tweaks = 0;
 	cc->netlat_cutoff = PCS_MAX_NETWORK_LATENCY*1000;
 	cc->iolat_cutoff = PCS_MAX_IO_LATENCY*1000;
diff --git a/fs/fuse/kio/pcs/pcs_map.c b/fs/fuse/kio/pcs/pcs_map.c
index 26b70df26b05..0d50250e6496 100644
--- a/fs/fuse/kio/pcs/pcs_map.c
+++ b/fs/fuse/kio/pcs/pcs_map.c
@@ -5,6 +5,7 @@
 #include <linux/rbtree.h>
 #include <linux/highmem.h>
 #include <linux/log2.h>
+#include <linux/module.h>
 
 #include "pcs_types.h"
 #include "pcs_sock_io.h"
@@ -30,6 +31,10 @@
 
 struct kmem_cache *pcs_map_cachep;
 
+unsigned int cs_io_locality = 0;
+module_param(cs_io_locality, uint, 0644);
+MODULE_PARM_DESC(cs_io_locality, "CS IO locality");
+
 static struct pcs_cs_list *cs_link_to_cs_list(struct pcs_cs_link *csl)
 {
 	struct pcs_cs_record *cs_rec;
@@ -1705,7 +1710,7 @@ static int get_io_locality(struct pcs_cluster_core *cc)
 {
 	int io_locality;
 
-	io_locality = cc->io_locality;
+	io_locality = cs_io_locality;
 	if (io_locality == 0)
 		io_locality = cc->cfg.curr.io_locality;
 
diff --git a/fs/fuse/kio/pcs/pcs_req.h b/fs/fuse/kio/pcs/pcs_req.h
index e668e55f0b71..604402de173d 100644
--- a/fs/fuse/kio/pcs/pcs_req.h
+++ b/fs/fuse/kio/pcs/pcs_req.h
@@ -215,7 +215,6 @@ struct pcs_cluster_core
 		int			in_progress;
 	} cfg;
 
-	int			io_locality;
 	int			io_tweaks;
 	int			iolat_cutoff;
 	int			netlat_cutoff;



More information about the Devel mailing list