From: Sunil Kumar Kori <sk...@marvell.com>

It adds application's command line parameter "--enable-graph-stats"
to enable dumping graph stats on console.

By default, no graph stats will be printed on console but same can
be dumped via telnet session using "graph stats show" command.

Signed-off-by: Sunil Kumar Kori <sk...@marvell.com>
Signed-off-by: Rakesh Kudurumalla <rkuduruma...@marvell.com>
---
 app/graph/main.c           | 38 +++++++++++++++++++++++++++++++++++++-
 app/graph/module_api.h     |  3 +++
 doc/guides/tools/graph.rst |  4 ++++
 3 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/app/graph/main.c b/app/graph/main.c
index b3b8b9a2d7..177e15a556 100644
--- a/app/graph/main.c
+++ b/app/graph/main.c
@@ -18,12 +18,13 @@
 volatile bool force_quit;
 struct conn *conn;
 
-static const char usage[] = "%s EAL_ARGS -- -s SCRIPT [-h HOST] [-p PORT] "
+static const char usage[] = "%s EAL_ARGS -- -s SCRIPT [-h HOST] [-p PORT] 
[--enable-graph-stats] "
                            "[--help]\n";
 
 static struct app_params {
        struct conn_params conn;
        char *script_name;
+       bool enable_graph_stats;
 } app = {
        .conn = {
                .welcome = "\nWelcome!\n\n",
@@ -37,6 +38,7 @@ static struct app_params {
                .msg_handle_arg = NULL, /* set later. */
        },
        .script_name = NULL,
+       .enable_graph_stats = false,
 };
 
 static void
@@ -53,6 +55,7 @@ app_args_parse(int argc, char **argv)
 {
        struct option lgopts[] = {
                {"help", 0, 0, 'H'},
+               {"enable-graph-stats", 0, 0, 'g'},
        };
        int h_present, p_present, s_present, n_args, i;
        char *app_name = argv[0];
@@ -130,6 +133,12 @@ app_args_parse(int argc, char **argv)
                        }
                        break;
 
+               case 'g':
+                       app.enable_graph_stats = true;
+                       printf("WARNING! Telnet session can not be accessed 
with"
+                              "--enable-graph-stats");
+                       break;
+
                case 'H':
                default:
                        printf(usage, app_name);
@@ -141,6 +150,33 @@ app_args_parse(int argc, char **argv)
        return 0;
 }
 
+bool
+app_graph_stats_enabled(void)
+{
+       return app.enable_graph_stats;
+}
+
+
+bool
+app_graph_exit(void)
+{
+       struct timeval tv;
+       fd_set fds;
+       int ret;
+       char c;
+
+       FD_ZERO(&fds);
+       FD_SET(0, &fds);
+       tv.tv_sec = 0;
+       tv.tv_usec = 100;
+       ret = select(1, &fds, NULL, NULL, &tv);
+       if ((ret < 0 && errno == EINTR) || (ret == 1 && read(0, &c, 1) > 0))
+               return true;
+       else
+               return false;
+
+}
+
 int
 main(int argc, char **argv)
 {
diff --git a/app/graph/module_api.h b/app/graph/module_api.h
index 8417c2d3dd..a7d287f5c8 100644
--- a/app/graph/module_api.h
+++ b/app/graph/module_api.h
@@ -24,4 +24,7 @@
 extern volatile bool force_quit;
 extern struct conn *conn;
 
+bool app_graph_stats_enabled(void);
+bool app_graph_exit(void);
+
 #endif
diff --git a/doc/guides/tools/graph.rst b/doc/guides/tools/graph.rst
index 2c06f8e958..649e802d73 100644
--- a/doc/guides/tools/graph.rst
+++ b/doc/guides/tools/graph.rst
@@ -57,6 +57,10 @@ Following are the application command-line options:
         a mandatory parameter which will be used to create desired graph
         for a given use case.
 
+* ``--enable-graph-stats``
+
+       Enable graph statistics printing on console. By default graph 
statistics are disabled.
+
 * ``--help``
 
        Dumps application usage
-- 
2.25.1

Reply via email to