Browse Prior Art Database

Process and Thread Sampling - Target Selection Using a Dispatcher Hook

IP.com Disclosure Number: IPCOM000172858D
Original Publication Date: 2008-Jul-16
Included in the Prior Art Database: 2008-Jul-16
Document File: 1 page(s) / 26K

Publishing Venue

IBM

Abstract

Application timer based context sampling using last thread dispatched information

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 1

Process and Thread Sampling - Target Selection Using a Dispatcher Hook

Disclosed is a method for using application based timers for waking up sampling threads, and the utilization of information collected at dispatch for producing sample based call flow reports similar to those developed using entry/exit events.

Sampler threads are created. A separate sampler thread may be created for each processor. These sampler threads are application threads for the process being monitored, such as, a Java(*) Virtual Machine (JVM). Each sampler thread may be bound to a different processor. One or more sampler threads may retrieve the context or call stack information for a selected thread or threads via Application Programming Interfaces (APIs) supported in the Java Virtual Machine Profiling Interface (JVMPI) or the Java Virtual Machine Tools Interface (JVMTI). The information retrieved is inserted into a thread based call tree and a counter in the leaf node is incremented to indicate a sample occurred. Reports may be generated that give information similar to reports generated by producing call trees using method entry/exit events.

Either a kernel extension/device driver or the operating system provides a way to identify the last thread dispatched and the current thread being executed on each processor. With a call out at dispatch time, the device driver gets control whenever there is a switch from one process and thread on a processor to another process and thread on the same processor. The dispatcher is responsible for carrying out the operating system's scheduling algorithm...