OSDN Git Service

sched, trace: Fix prev_state output in sched_switch tracepoint
authorPavankumar Kondeti <pkondeti@codeaurora.org>
Tue, 30 Oct 2018 06:54:33 +0000 (12:24 +0530)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 28 Nov 2018 01:31:55 +0000 (20:31 -0500)
commit3054426dc68e5d63aa6a6e9b91ac4ec78e3f3805
treef13ab8110247ddf2acfd5f68061825f35f877775
parentb1b35f2e218a5b57d03bbc3b0667d5064570dc60
sched, trace: Fix prev_state output in sched_switch tracepoint

commit 3f5fe9fef5b2 ("sched/debug: Fix task state recording/printout")
tried to fix the problem introduced by a previous commit efb40f588b43
("sched/tracing: Fix trace_sched_switch task-state printing"). However
the prev_state output in sched_switch is still broken.

task_state_index() uses fls() which considers the LSB as 1. Left
shifting 1 by this value gives an incorrect mapping to the task state.
Fix this by decrementing the value returned by __get_task_state()
before shifting.

Link: http://lkml.kernel.org/r/1540882473-1103-1-git-send-email-pkondeti@codeaurora.org
Cc: stable@vger.kernel.org
Fixes: 3f5fe9fef5b2 ("sched/debug: Fix task state recording/printout")
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
include/trace/events/sched.h