Skip to content

Commit

Permalink
lib: Suppress HOB/STARVATION warnings when running in vtysh
Browse files Browse the repository at this point in the history
Running ping/traceroute/etc. (any kind of commands that use execute_command()
suffer with this kind of warnings.

Signed-off-by: Donatas Abraitis <[email protected]>
(cherry picked from commit 3ff671b)
  • Loading branch information
ton31337 authored and mergify[bot] committed Oct 11, 2023
1 parent 964c166 commit 77b57b4
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
4 changes: 4 additions & 0 deletions lib/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
/*
Expand Down
7 changes: 5 additions & 2 deletions vtysh/vtysh_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand All @@ -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))
Expand Down

0 comments on commit 77b57b4

Please sign in to comment.