Information Not Reported by the Kernel Profiler (Windows Embedded CE 6.0)
1/5/2010
The following table shows information that the kernel profiler does not report.
Information not reported | Description |
---|---|
Time in assembly code |
The kernel profiler cannot report assembly functions because assembly functions do not have symbols. The kernel profiler attributes a hit in an assembly function to the previous C function in the module. |
Cache inefficiency |
The kernel profiler does not specifically report cache misses on code or on data. With a cache miss, the CPU stalls on the same instruction until the data is fetched from memory. If cache misses are concentrated in one function, the kernel profiler shows more time being spent in that area. However, particularly with instruction cache misses, cache misses are not evident in the data collected by the kernel profiler because misses are distributed evenly throughout the OS. Some CPUs provide additional CPU-specific information about cache use. Windows Embedded CE does not currently provide a way to interface with such CPUs to measure cache efficiency or to log the sources of misses. Some CPU vendors provide tools for measuring cache use. |
Time spent handling TLB misses |
TLB misses can occur anywhere on code and on data. The TLB miss handler runs while interrupts are turned off. The kernel profiler does not report TLB misses as hits in INTERRUPTS_ENABLE because interrupts are enabled by the CPU rather than enabled in code. |
Incorrect DMA settings |
If a bandwidth test copies data into memory but the memory is not correctly configured, the kernel profiler does not notify you of the problem. When memory is not correctly configured and the CPU performs the data transfer, the kernel profiler reports the time as time spent in the associated code. When memory is not correctly configured and a bus-mastering device using DMA performs the data transfer, the transfer simply takes longer to complete. This time may appear in the kernel profiler as an unexpectedly lengthy idle time while the CPU waits for the DMA transfer to complete. Examples of improperly configured memory are not cached rather than cached, and write-through rather than write-back or write-combining. For the top hits reported by the kernel profiler, verify that memory settings for data buffers are as good as possible. You may want to use a bus analyzer to verify that data is written efficiently over the bus. With Windows CE .NET 4.2 and later, verify that a display driver turns on write-combining for its frame buffer. |
See Also
Concepts
Understanding Kernel Profiler Output