import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
-import org.eclipse.tracecompass.analysis.os.linux.core.kernel.ThreadPriorityAspect;
+import org.eclipse.tracecompass.analysis.os.linux.core.event.aspect.ThreadPriorityAspect;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
/**
* @since 1.0
+ * @noreference Messages class
*/
@SuppressWarnings("javadoc")
public class Messages extends NLS {
public static @Nullable String AspectHelpText_Tid;
+ public static @Nullable String AspectName_Prio;
+
+ public static @Nullable String AspectHelpText_Prio;
+
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2015 Keba AG
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian Mansky - Initial implementation
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.analysis.os.linux.core.event.aspect;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.Attributes;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelAnalysisModule;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
+import org.eclipse.tracecompass.common.core.NonNullUtils;
+import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
+import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
+import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
+import org.eclipse.tracecompass.statesystem.core.exceptions.TimeRangeException;
+import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval;
+import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue;
+import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
+import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
+import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
+
+/**
+ * This aspect finds the priority of the thread running from this event using
+ * the {@link KernelAnalysisModule}.
+ *
+ * @author Christian Mansky
+ * @since 2.0
+ */
+public final class ThreadPriorityAspect implements ITmfEventAspect {
+
+ /** The singleton instance */
+ public static final ThreadPriorityAspect INSTANCE = new ThreadPriorityAspect();
+
+ private ThreadPriorityAspect() {
+ }
+
+ @Override
+ public final String getName() {
+ return NonNullUtils.nullToEmptyString(Messages.AspectName_Prio);
+ }
+
+ @Override
+ public final String getHelpText() {
+ return NonNullUtils.nullToEmptyString(Messages.AspectHelpText_Prio);
+ }
+
+ @Override
+ public @Nullable Integer resolve(ITmfEvent event) {
+ KernelAnalysisModule kernelAnalysis = TmfTraceUtils.getAnalysisModuleOfClass(event.getTrace(), KernelAnalysisModule.class, KernelAnalysisModule.ID);
+ if (kernelAnalysis == null) {
+ return null;
+ }
+
+ ITmfStateSystem ss = kernelAnalysis.getStateSystem();
+ if (ss == null) {
+ return null;
+ }
+
+ Integer tid = KernelTidAspect.INSTANCE.resolve(event);
+ if (tid == null) {
+ return null;
+ }
+
+ final long ts = event.getTimestamp().getValue();
+ Integer execPrio = null;
+ try {
+ int execPrioQuark = ss.getQuarkAbsolute(Attributes.THREADS, tid.toString(), Attributes.PRIO);
+ ITmfStateInterval interval = ss.querySingleState(ts, execPrioQuark);
+ ITmfStateValue prioValue = interval.getStateValue();
+ /* We know the prio must be an Integer */
+ execPrio = prioValue.unboxInt();
+ } catch (AttributeNotFoundException | StateSystemDisposedException | TimeRangeException e) {
+ }
+ return execPrio;
+ }
+}
AspectName_Tid=TID
AspectHelpText_Tid=The ID of the thread this event belongs to
+
+AspectName_Prio=Prio
+AspectHelpText_Prio=The priority of the thread this event belongs to
return execName;
}
- /**
- * Get the priority of a thread running at a time ts.
- *
- * @param module
- * The kernel analysis instance to run this method on
- * @param threadId
- * The thread ID of the target thread
- * @param ts
- * The timestamp at which to get the priority
- * @return The priority of this thread, or {@code null} if not found
- */
- public static @Nullable Integer getThreadPrio(KernelAnalysisModule module, Integer threadId, long ts) {
- Integer execPrio = null;
- ITmfStateSystem ss = module.getStateSystem();
- if (ss == null) {
- return execPrio;
- }
- try {
- int execPrioQuark = ss.getQuarkAbsolute(Attributes.THREADS, threadId.toString(), Attributes.PRIO);
- ITmfStateInterval interval = ss.querySingleState(ts, execPrioQuark);
- ITmfStateValue prioValue = interval.getStateValue();
- /* We know the prio must be an Integer */
- execPrio = prioValue.unboxInt();
- } catch (AttributeNotFoundException | StateSystemDisposedException | TimeRangeException e) {
- }
- return execPrio;
- }
-
/**
* Get the status intervals for a given thread with a resolution
*
public class Messages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.tracecompass.analysis.os.linux.core.kernel.messages"; //$NON-NLS-1$
- public static @Nullable String AspectName_Prio;
-
- public static @Nullable String AspectHelpText_Prio;
-
public static @Nullable String LttngKernelAnalysisModule_Help;
static {
+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2015 Keba AG
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Christian Mansky - Initial implementation
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.os.linux.core.kernel;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.common.core.NonNullUtils;
-import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
-import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
-
-/**
- * This aspect finds the priority of the thread running from this event using
- * the {@link KernelAnalysisModule}.
- *
- * @author Christian Mansky
- * @since 2.0
- */
-public final class ThreadPriorityAspect implements ITmfEventAspect {
-
- /** The singleton instance */
- public static final ThreadPriorityAspect INSTANCE = new ThreadPriorityAspect();
-
- private ThreadPriorityAspect() {
- }
-
- @Override
- public final String getName() {
- return NonNullUtils.nullToEmptyString(Messages.AspectName_Prio);
- }
-
- @Override
- public final String getHelpText() {
- return NonNullUtils.nullToEmptyString(Messages.AspectHelpText_Prio);
- }
-
- @Override
- public @Nullable Integer resolve(ITmfEvent event) {
- KernelAnalysisModule kernelAnalysis = TmfTraceUtils.getAnalysisModuleOfClass(event.getTrace(), KernelAnalysisModule.class, KernelAnalysisModule.ID);
- if (kernelAnalysis == null) {
- return null;
- }
-
- Integer tid = KernelTidAspect.INSTANCE.resolve(event);
- if (tid == null) {
- return null;
- }
-
- Integer prio = KernelThreadInformationProvider.getThreadPrio(kernelAnalysis, tid, event.getTimestamp().getValue());
- return prio;
- }
-
-}
# Geneviève Bastien - Initial API and implementation
###############################################################################
-AspectName_Prio=Prio
-AspectHelpText_Prio=The priority of the thread this event belongs to
LttngKernelAnalysisModule_Help=Builds the LTTng2 kernel state system to populate the Control Flow view and the Resources View
import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
-import org.eclipse.tracecompass.analysis.os.linux.core.kernel.ThreadPriorityAspect;
+import org.eclipse.tracecompass.analysis.os.linux.core.event.aspect.ThreadPriorityAspect;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
import org.eclipse.tracecompass.internal.lttng2.kernel.core.Activator;