X-Git-Url: http://git.liburcu.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fcursesdisplay.c;h=6ff650ff83b518e72c0ee7b207dbc6664975788e;hp=c8d7067805c6b37440edcc2bf2827a5ab8e8b923;hb=e15ed00a84c8afc3a4cee38b2a96128c313b9d13;hpb=951303ccce366e1850310349ab03dce0300d4bea diff --git a/src/cursesdisplay.c b/src/cursesdisplay.c index c8d7067..6ff650f 100644 --- a/src/cursesdisplay.c +++ b/src/cursesdisplay.c @@ -57,7 +57,7 @@ char log_lines[MAX_LINE_LENGTH * MAX_LOG_LINES + MAX_LOG_LINES]; int max_elements = 80; -int toggle_threads = -1; +int toggle_threads = 1; int toggle_pause = -1; int max_center_lines; @@ -281,6 +281,7 @@ void update_footer() print_key(footer, "Space", "Highlight ", 0); print_key(footer, "q", "Quit ", 0); print_key(footer, "r", "Pref ", 0); + print_key(footer, "t", "Threads ", toggle_threads); print_key(footer, "p", "Pause ", toggle_pause); wrefresh(footer); @@ -450,8 +451,8 @@ gint sort_by_process_total_desc(gconstpointer p1, gconstpointer p2) { struct processtop *n1 = *(struct processtop **)p1; struct processtop *n2 = *(struct processtop **)p2; - unsigned long totaln1 = n1->filewrite + n1->fileread; - unsigned long totaln2 = n2->filewrite + n2->fileread; + unsigned long totaln1 = n1->totalfilewrite + n1->totalfileread; + unsigned long totaln2 = n2->totalfilewrite + n2->totalfileread; if (totaln1 < totaln2) return 1; @@ -568,6 +569,9 @@ void update_cputop_display() for (i = list_offset; i < data->process_table->len && nblinedisplayed < max_center_lines; i++) { tmp = g_ptr_array_index(data->process_table, i); + if (tmp->pid != tmp->tid) + if (toggle_threads == -1) + continue; if (process_selected(tmp)) { wattron(center, COLOR_PAIR(6)); @@ -648,6 +652,7 @@ void update_process_details() char unit[4]; char filename_buf[COLS]; int line = 1; + int column; GPtrArray *newfilearray = g_ptr_array_new(); GHashTableIter iter; struct perfcounter *perfn1, *perfn2; @@ -695,10 +700,15 @@ void update_process_details() line++; wattron(center, A_BOLD); - mvwprintw(center, line, 1, "FD"); - mvwprintw(center, line, 10, "READ"); - mvwprintw(center, line, 17, "WRITE"); - mvwprintw(center, line++, 24, "FILENAME"); + column = 1; + for (i = 0; i < 3; i++) { + if (fileview[i].sort) + wattron(center, A_UNDERLINE); + mvwprintw(center, line, column, fileview[i].title); + wattroff(center, A_UNDERLINE); + column += 10; + } + mvwprintw(center, line++, column, "FILENAME"); wattroff(center, A_BOLD); /* @@ -728,11 +738,11 @@ void update_process_details() continue; mvwprintw(center, line + j, 1, "%d", file_tmp->fd); scale_unit(file_tmp->read, unit); - mvwprintw(center, line + j, 10, "%s", unit); + mvwprintw(center, line + j, 11, "%s", unit); scale_unit(file_tmp->write, unit); - mvwprintw(center, line + j, 17, "%s", unit); + mvwprintw(center, line + j, 21, "%s", unit); snprintf(filename_buf, COLS - 25, "%s", file_tmp->name); - mvwprintw(center, line + j, 24, "%s", filename_buf); + mvwprintw(center, line + j, 31, "%s", filename_buf); j++; } g_ptr_array_free(newfilearray, TRUE); @@ -779,6 +789,9 @@ void update_perf() for (i = 0; i < data->process_table->len && nblinedisplayed < max_center_lines; i++) { tmp = g_ptr_array_index(data->process_table, i); + if (tmp->pid != tmp->tid) + if (toggle_threads == -1) + continue; if (process_selected(tmp)) { wattron(center, COLOR_PAIR(6)); @@ -826,16 +839,23 @@ void update_iostream() int current_line = 0; int total = 0; char unit[4]; + int column; set_window_title(center, "IO Top"); wattron(center, A_BOLD); mvwprintw(center, 1, 1, "PID"); mvwprintw(center, 1, 11, "TID"); mvwprintw(center, 1, 22, "NAME"); - mvwprintw(center, 1, 40, "R (B/sec)"); - mvwprintw(center, 1, 52, "W (B/sec)"); - mvwprintw(center, 1, 64, "Total"); + column = 40; + for (i = 0; i < 3; i++) { + if (iostreamtopview[i].sort) + wattron(center, A_UNDERLINE); + mvwprintw(center, 1, column, iostreamtopview[i].title); + wattroff(center, A_UNDERLINE); + column += 12; + } wattroff(center, A_BOLD); + wattroff(center, A_UNDERLINE); if (iostreamtopview[0].sort == 1) g_ptr_array_sort(data->process_table, sort_by_process_read_desc); @@ -849,6 +869,9 @@ void update_iostream() for (i = list_offset; i < data->process_table->len && nblinedisplayed < max_center_lines; i++) { tmp = g_ptr_array_index(data->process_table, i); + if (tmp->pid != tmp->tid) + if (toggle_threads == -1) + continue; if (process_selected(tmp)) { wattron(center, COLOR_PAIR(6));