Commit 39950bc8 authored by Krzysztof Karas's avatar Krzysztof Karas Committed by Tomasz Zawadzki
Browse files

spdk_top: reduce number of poller global structures



Deletes g_pollers_history and store_pollers_last_stats() function
to simplify spdk_top code.

Adds last_run_counter to show_poller() function to get last state
of poller's run counter for comparision with current value and
display in pop-up window.

Signed-off-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Change-Id: I236fbcac31e67a617d37ba15888aeb30e3763e01
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7925


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 081a4a09
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -275,7 +275,6 @@ struct rpc_cores_stats {
struct rpc_threads_stats g_threads_stats;
struct rpc_pollers_stats g_pollers_stats;
struct rpc_cores_stats g_cores_stats;
struct rpc_poller_info g_pollers_history[RPC_MAX_POLLERS];

static void
init_str_len(void)
@@ -1102,13 +1101,6 @@ copy_pollers(struct rpc_pollers *pollers, uint64_t pollers_count, enum spdk_poll
	}
}

static void
store_pollers_last_stats(uint64_t poller, uint64_t run_counter, uint64_t period_ticks_counter)
{
	g_pollers_history[poller].run_count = run_counter;
	g_pollers_history[poller].period_ticks = period_ticks_counter;
}

static uint8_t
prepare_poller_data(uint8_t current_page, struct rpc_poller_info **pollers,
		    uint64_t *count, uint8_t last_page)
@@ -1212,7 +1204,6 @@ refresh_pollers_tab(uint8_t current_page)
			col += col_desc[2].max_data_string + 1;
		}

		store_pollers_last_stats(i, pollers[i]->run_count - *last_run_counter, pollers[i]->period_ticks);
		if (!col_desc[3].disabled) {
			if (g_interval_data == true) {
				snprintf(run_count, MAX_TIME_STR_LEN, "%" PRIu64, pollers[i]->run_count - *last_run_counter);
@@ -2208,6 +2199,7 @@ show_poller(uint8_t current_page)
	PANEL *poller_panel;
	WINDOW *poller_win;
	uint64_t count = 0;
	uint64_t *last_run_counter;
	uint64_t poller_number = current_page * g_max_data_rows + g_selected_row;
	struct rpc_poller_info *pollers[RPC_MAX_POLLERS];
	bool stop_loop = false;
@@ -2217,6 +2209,10 @@ show_poller(uint8_t current_page)
	prepare_poller_data(current_page, pollers, &count, current_page);
	assert(poller_number < count);

	last_run_counter = get_last_run_counter(pollers[poller_number]->name,
						pollers[poller_number]->thread_id);
	assert(last_run_counter != NULL);

	poller_win = newwin(POLLER_WIN_HEIGHT, POLLER_WIN_WIDTH,
			    get_position_for_window(POLLER_WIN_HEIGHT, g_max_row),
			    get_position_for_window(POLLER_WIN_WIDTH, g_max_col));
@@ -2243,7 +2239,7 @@ show_poller(uint8_t current_page)

	if (g_interval_data) {
		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL, "%" PRIu64,
			  g_pollers_history[poller_number].run_count);
			  pollers[poller_number]->run_count - *last_run_counter);
	} else {
		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL, "%" PRIu64,
			  pollers[poller_number]->run_count);
@@ -2251,7 +2247,7 @@ show_poller(uint8_t current_page)

	if (pollers[poller_number]->period_ticks != 0) {
		print_left(poller_win, 4, 28, POLLER_WIN_WIDTH, "Period:", COLOR_PAIR(5));
		get_time_str(g_pollers_history[poller_number].period_ticks, poller_period);
		get_time_str(pollers[poller_number]->period_ticks, poller_period);
		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, poller_period);
	}
	mvwhline(poller_win, 5, 1, ACS_HLINE, POLLER_WIN_WIDTH - 2);