]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: Suppress HOB/STARVATION warnings when running in vtysh
authorDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 9 Oct 2023 09:03:50 +0000 (12:03 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 11 Oct 2023 06:52:19 +0000 (09:52 +0300)
Running ping/traceroute/etc. (any kind of commands that use execute_command()
suffer with this kind of warnings.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
lib/event.c
vtysh/vtysh_main.c

index 122d3cd9a1fa0359fd210dafda608684ce87579c..d3bc0205ae986685aadc35a3554d1c7714afcfed 100644 (file)
@@ -1946,6 +1946,7 @@ void event_getrusage(RUSAGE_T *r)
 void event_call(struct event *thread)
 {
        RUSAGE_T before, after;
+       bool suppress_warnings = EVENT_ARG(thread);
 
        /* if the thread being called is the CLI, it may change cputime_enabled
         * ("service cputime-stats" command), which can result in nonsensical
@@ -2006,6 +2007,9 @@ void event_call(struct event *thread)
        atomic_fetch_or_explicit(&thread->hist->types, 1 << thread->add_type,
                                 memory_order_seq_cst);
 
+       if (suppress_warnings)
+               return;
+
        if (cputime_enabled_here && cputime_enabled && cputime_threshold
            && cputime > cputime_threshold) {
                /*
index 20254fcd537c2a99a626f8c85356bbe020d3f68e..c57e8c7997fe33b4f252f35ec382480fe1482443 100644 (file)
@@ -221,7 +221,9 @@ static struct event *vtysh_rl_read_thread;
 
 static void vtysh_rl_read(struct event *thread)
 {
-       event_add_read(master, vtysh_rl_read, NULL, STDIN_FILENO,
+       bool *suppress_warnings = EVENT_ARG(thread);
+
+       event_add_read(master, vtysh_rl_read, suppress_warnings, STDIN_FILENO,
                       &vtysh_rl_read_thread);
        rl_callback_read_char();
 }
@@ -230,11 +232,12 @@ static void vtysh_rl_read(struct event *thread)
 static void vtysh_rl_run(void)
 {
        struct event thread;
+       bool suppress_warnings = true;
 
        master = event_master_create(NULL);
 
        rl_callback_handler_install(vtysh_prompt(), vtysh_rl_callback);
-       event_add_read(master, vtysh_rl_read, NULL, STDIN_FILENO,
+       event_add_read(master, vtysh_rl_read, &suppress_warnings, STDIN_FILENO,
                       &vtysh_rl_read_thread);
 
        while (!vtysh_loop_exited && event_fetch(master, &thread))