os.linux: Correctly model each CPU's run queue
authorAlexandre Montplaisir <alexmonthy@efficios.com>
Wed, 16 Nov 2016 20:50:11 +0000 (15:50 -0500)
committerAlexandre Montplaisir <alexmonthy@efficios.com>
Fri, 25 Nov 2016 21:57:51 +0000 (16:57 -0500)
commit16ad5604d4c4e36e149d149e1bf999ca53781d3b
treeb7a73866f4da20740a99c1e1fdcb2a6c3b2cd343
parenta011e19bb550a5741b4aa301106613087865d20c
os.linux: Correctly model each CPU's run queue

Add a new attribute to the kernel state system:

THREADS
 +--1000
     +--Current_cpu_rq

Which will track on which CPU's run queue this thread
is currently located. Unlike the cpu -> Current_thread
attribute, several threads can be present on the same
CPU's run queue at the same time.

This will allow for example tracking on which CPU a
thread is expecting to go when it is in the WAIT_FOR_CPU
state.

This requires tweaks to the sched_switch, sched_wakeup
and process_fork handlers, as well as adding a new handler
for the sched_migrate_task event (which simply moves a
non-running thread from one run queue to another).

Change-Id: I6e0386214df195eb6389cec87f2e6a42fdc0691d
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/StateValues.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/trace/IKernelAnalysisEventLayout.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/Attributes.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/KernelStateProvider.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/handlers/ProcessForkHandler.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/handlers/SchedMigrateTaskHandler.java [new file with mode: 0644]
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/handlers/SchedSwitchHandler.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/internal/analysis/os/linux/core/kernel/handlers/SchedWakeupHandler.java
lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/kernel/statesystem/StateSystemTest.java
lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/kernel/statesystem/TestValues.java
This page took 0.026525 seconds and 5 git commands to generate.