diff options
| -rw-r--r-- | include/linux/sched.h | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_output.c | 21 | ||||
| -rw-r--r-- | kernel/trace/trace_sched_wakeup.c | 8 |
3 files changed, 10 insertions, 21 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index a2fe636b6825..bc7807933415 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -83,8 +83,6 @@ struct task_group; | |||
| 83 | #define TASK_NEW 0x0800 | 83 | #define TASK_NEW 0x0800 |
| 84 | #define TASK_STATE_MAX 0x1000 | 84 | #define TASK_STATE_MAX 0x1000 |
| 85 | 85 | ||
| 86 | #define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWPNn" | ||
| 87 | |||
| 88 | /* Convenience macros for the sake of set_current_state: */ | 86 | /* Convenience macros for the sake of set_current_state: */ |
| 89 | #define TASK_KILLABLE (TASK_WAKEKILL | TASK_UNINTERRUPTIBLE) | 87 | #define TASK_KILLABLE (TASK_WAKEKILL | TASK_UNINTERRUPTIBLE) |
| 90 | #define TASK_STOPPED (TASK_WAKEKILL | __TASK_STOPPED) | 88 | #define TASK_STOPPED (TASK_WAKEKILL | __TASK_STOPPED) |
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index bac629af2285..c738e764e2a5 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
| @@ -656,15 +656,6 @@ int trace_print_lat_context(struct trace_iterator *iter) | |||
| 656 | return !trace_seq_has_overflowed(s); | 656 | return !trace_seq_has_overflowed(s); |
| 657 | } | 657 | } |
| 658 | 658 | ||
| 659 | static const char state_to_char[] = TASK_STATE_TO_CHAR_STR; | ||
| 660 | |||
| 661 | static int task_state_char(unsigned long state) | ||
| 662 | { | ||
| 663 | int bit = state ? __ffs(state) + 1 : 0; | ||
| 664 | |||
| 665 | return bit < sizeof(state_to_char) - 1 ? state_to_char[bit] : '?'; | ||
| 666 | } | ||
| 667 | |||
| 668 | /** | 659 | /** |
| 669 | * ftrace_find_event - find a registered event | 660 | * ftrace_find_event - find a registered event |
| 670 | * @type: the type of event to look for | 661 | * @type: the type of event to look for |
| @@ -930,8 +921,8 @@ static enum print_line_t trace_ctxwake_print(struct trace_iterator *iter, | |||
| 930 | 921 | ||
| 931 | trace_assign_type(field, iter->ent); | 922 | trace_assign_type(field, iter->ent); |
| 932 | 923 | ||
| 933 | T = task_state_char(field->next_state); | 924 | T = __task_state_to_char(field->next_state); |
| 934 | S = task_state_char(field->prev_state); | 925 | S = __task_state_to_char(field->prev_state); |
| 935 | trace_find_cmdline(field->next_pid, comm); | 926 | trace_find_cmdline(field->next_pid, comm); |
| 936 | trace_seq_printf(&iter->seq, | 927 | trace_seq_printf(&iter->seq, |
| 937 | " %5d:%3d:%c %s [%03d] %5d:%3d:%c %s\n", | 928 | " %5d:%3d:%c %s [%03d] %5d:%3d:%c %s\n", |
| @@ -966,8 +957,8 @@ static int trace_ctxwake_raw(struct trace_iterator *iter, char S) | |||
| 966 | trace_assign_type(field, iter->ent); | 957 | trace_assign_type(field, iter->ent); |
| 967 | 958 | ||
| 968 | if (!S) | 959 | if (!S) |
| 969 | S = task_state_char(field->prev_state); | 960 | S = __task_state_to_char(field->prev_state); |
| 970 | T = task_state_char(field->next_state); | 961 | T = __task_state_to_char(field->next_state); |
| 971 | trace_seq_printf(&iter->seq, "%d %d %c %d %d %d %c\n", | 962 | trace_seq_printf(&iter->seq, "%d %d %c %d %d %d %c\n", |
| 972 | field->prev_pid, | 963 | field->prev_pid, |
| 973 | field->prev_prio, | 964 | field->prev_prio, |
| @@ -1002,8 +993,8 @@ static int trace_ctxwake_hex(struct trace_iterator *iter, char S) | |||
| 1002 | trace_assign_type(field, iter->ent); | 993 | trace_assign_type(field, iter->ent); |
| 1003 | 994 | ||
| 1004 | if (!S) | 995 | if (!S) |
| 1005 | S = task_state_char(field->prev_state); | 996 | S = __task_state_to_char(field->prev_state); |
| 1006 | T = task_state_char(field->next_state); | 997 | T = __task_state_to_char(field->next_state); |
| 1007 | 998 | ||
| 1008 | SEQ_PUT_HEX_FIELD(s, field->prev_pid); | 999 | SEQ_PUT_HEX_FIELD(s, field->prev_pid); |
| 1009 | SEQ_PUT_HEX_FIELD(s, field->prev_prio); | 1000 | SEQ_PUT_HEX_FIELD(s, field->prev_prio); |
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c index ddec53b67646..0c331978b1a6 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c | |||
| @@ -397,10 +397,10 @@ tracing_sched_switch_trace(struct trace_array *tr, | |||
| 397 | entry = ring_buffer_event_data(event); | 397 | entry = ring_buffer_event_data(event); |
| 398 | entry->prev_pid = prev->pid; | 398 | entry->prev_pid = prev->pid; |
| 399 | entry->prev_prio = prev->prio; | 399 | entry->prev_prio = prev->prio; |
| 400 | entry->prev_state = prev->state; | 400 | entry->prev_state = __get_task_state(prev); |
| 401 | entry->next_pid = next->pid; | 401 | entry->next_pid = next->pid; |
| 402 | entry->next_prio = next->prio; | 402 | entry->next_prio = next->prio; |
| 403 | entry->next_state = next->state; | 403 | entry->next_state = __get_task_state(next); |
| 404 | entry->next_cpu = task_cpu(next); | 404 | entry->next_cpu = task_cpu(next); |
| 405 | 405 | ||
| 406 | if (!call_filter_check_discard(call, entry, buffer, event)) | 406 | if (!call_filter_check_discard(call, entry, buffer, event)) |
| @@ -425,10 +425,10 @@ tracing_sched_wakeup_trace(struct trace_array *tr, | |||
| 425 | entry = ring_buffer_event_data(event); | 425 | entry = ring_buffer_event_data(event); |
| 426 | entry->prev_pid = curr->pid; | 426 | entry->prev_pid = curr->pid; |
| 427 | entry->prev_prio = curr->prio; | 427 | entry->prev_prio = curr->prio; |
| 428 | entry->prev_state = curr->state; | 428 | entry->prev_state = __get_task_state(curr); |
| 429 | entry->next_pid = wakee->pid; | 429 | entry->next_pid = wakee->pid; |
| 430 | entry->next_prio = wakee->prio; | 430 | entry->next_prio = wakee->prio; |
| 431 | entry->next_state = wakee->state; | 431 | entry->next_state = __get_task_state(wakee); |
| 432 | entry->next_cpu = task_cpu(wakee); | 432 | entry->next_cpu = task_cpu(wakee); |
| 433 | 433 | ||
| 434 | if (!call_filter_check_discard(call, entry, buffer, event)) | 434 | if (!call_filter_check_discard(call, entry, buffer, event)) |
