summaryrefslogtreecommitdiff
path: root/0043-inode-don-t-dump-the-whole-table-to-CLI.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-01 14:35:16 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-01 14:35:16 +0000
commit2453fd874197f84e11ae70053cff7f56a32988f4 (patch)
treed6ce5f0f1defa8b7a9b070ba870a8b7f916578dc /0043-inode-don-t-dump-the-whole-table-to-CLI.patch
parente47cbe682033e9df1530280ef7460c172c32961a (diff)
automatic import of glusterfsopeneuler24.03_LTS
Diffstat (limited to '0043-inode-don-t-dump-the-whole-table-to-CLI.patch')
-rw-r--r--0043-inode-don-t-dump-the-whole-table-to-CLI.patch137
1 files changed, 137 insertions, 0 deletions
diff --git a/0043-inode-don-t-dump-the-whole-table-to-CLI.patch b/0043-inode-don-t-dump-the-whole-table-to-CLI.patch
new file mode 100644
index 0000000..7e9d3c3
--- /dev/null
+++ b/0043-inode-don-t-dump-the-whole-table-to-CLI.patch
@@ -0,0 +1,137 @@
+From 416dfc70ef87400e1ddfd70e5b6e512d330b54a6 Mon Sep 17 00:00:00 2001
+From: Sheetal Pamecha <sheetal.pamecha08@gmail.com>
+Date: Tue, 2 Apr 2019 23:25:11 +0530
+Subject: [PATCH 43/52] inode: don't dump the whole table to CLI
+
+dumping the whole inode table detail to screen doesn't solve any
+purpose. We should be getting only toplevel details on CLI, and
+then if one wants to debug further, then they need to get to
+'statedump' to get full details.
+
+Patch on upstream master: https://review.gluster.org/#/c/glusterfs/+/22347/
+
+BUG: 1578703
+Change-Id: Ie7e7f5a67c1606e3c18ce21ee6df6c7e4550c211
+Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
+Reviewed-on: https://code.engineering.redhat.com/gerrit/166768
+Tested-by: RHGS Build Bot <nigelb@redhat.com>
+Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
+---
+ cli/src/cli-rpc-ops.c | 23 ++++++++++++++++++++++-
+ libglusterfs/src/inode.c | 13 +++++++++++++
+ 2 files changed, 35 insertions(+), 1 deletion(-)
+
+diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c
+index 78043cd..12e7fcc 100644
+--- a/cli/src/cli-rpc-ops.c
++++ b/cli/src/cli-rpc-ops.c
+@@ -7606,15 +7606,24 @@ cli_print_volume_status_itables(dict_t *dict, char *prefix)
+ uint32_t active_size = 0;
+ uint32_t lru_size = 0;
+ uint32_t purge_size = 0;
++ uint32_t lru_limit = 0;
+ int i = 0;
+
+ GF_ASSERT(dict);
+ GF_ASSERT(prefix);
+
++ snprintf(key, sizeof(key), "%s.lru_limit", prefix);
++ ret = dict_get_uint32(dict, key, &lru_limit);
++ if (ret)
++ goto out;
++ cli_out("LRU limit : %u", lru_limit);
++
+ snprintf(key, sizeof(key), "%s.active_size", prefix);
+ ret = dict_get_uint32(dict, key, &active_size);
+ if (ret)
+ goto out;
++
++#ifdef DEBUG
+ if (active_size != 0) {
+ cli_out("Active inodes:");
+ cli_out("%-40s %14s %14s %9s", "GFID", "Lookups", "Ref", "IA type");
+@@ -7626,10 +7635,16 @@ cli_print_volume_status_itables(dict_t *dict, char *prefix)
+ }
+ cli_out(" ");
+
++#else
++ cli_out("Active Inodes : %u", active_size);
++
++#endif
+ snprintf(key, sizeof(key), "%s.lru_size", prefix);
+ ret = dict_get_uint32(dict, key, &lru_size);
+ if (ret)
+ goto out;
++
++#ifdef DEBUG
+ if (lru_size != 0) {
+ cli_out("LRU inodes:");
+ cli_out("%-40s %14s %14s %9s", "GFID", "Lookups", "Ref", "IA type");
+@@ -7640,11 +7655,15 @@ cli_print_volume_status_itables(dict_t *dict, char *prefix)
+ cli_print_volume_status_inode_entry(dict, key);
+ }
+ cli_out(" ");
++#else
++ cli_out("LRU Inodes : %u", lru_size);
++#endif
+
+ snprintf(key, sizeof(key), "%s.purge_size", prefix);
+ ret = dict_get_uint32(dict, key, &purge_size);
+ if (ret)
+ goto out;
++#ifdef DEBUG
+ if (purge_size != 0) {
+ cli_out("Purged inodes:");
+ cli_out("%-40s %14s %14s %9s", "GFID", "Lookups", "Ref", "IA type");
+@@ -7654,7 +7673,9 @@ cli_print_volume_status_itables(dict_t *dict, char *prefix)
+ snprintf(key, sizeof(key), "%s.purge%d", prefix, i);
+ cli_print_volume_status_inode_entry(dict, key);
+ }
+-
++#else
++ cli_out("Purge Inodes : %u", purge_size);
++#endif
+ out:
+ return;
+ }
+diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c
+index 87f74e0..96ddea5 100644
+--- a/libglusterfs/src/inode.c
++++ b/libglusterfs/src/inode.c
+@@ -2598,6 +2598,11 @@ inode_table_dump_to_dict(inode_table_t *itable, char *prefix, dict_t *dict)
+ if (ret)
+ return;
+
++ snprintf(key, sizeof(key), "%s.itable.lru_limit", prefix);
++ ret = dict_set_uint32(dict, key, itable->lru_limit);
++ if (ret)
++ goto out;
++
+ snprintf(key, sizeof(key), "%s.itable.active_size", prefix);
+ ret = dict_set_uint32(dict, key, itable->active_size);
+ if (ret)
+@@ -2613,6 +2618,13 @@ inode_table_dump_to_dict(inode_table_t *itable, char *prefix, dict_t *dict)
+ if (ret)
+ goto out;
+
++#ifdef DEBUG
++ /* Dumping inode details in dictionary and sending it to CLI is not
++ required as when a developer (or support team) asks for this command
++ output, they just want to get top level detail of inode table.
++ If one wants to debug, let them take statedump and debug, this
++ wouldn't be available in CLI during production setup.
++ */
+ list_for_each_entry(inode, &itable->active, list)
+ {
+ snprintf(key, sizeof(key), "%s.itable.active%d", prefix, count++);
+@@ -2632,6 +2644,7 @@ inode_table_dump_to_dict(inode_table_t *itable, char *prefix, dict_t *dict)
+ snprintf(key, sizeof(key), "%s.itable.purge%d", prefix, count++);
+ inode_dump_to_dict(inode, key, dict);
+ }
++#endif
+
+ out:
+ pthread_mutex_unlock(&itable->lock);
+--
+1.8.3.1
+