Finding threading issues

This section describes the high-level steps for finding common threading issues within a Microsoft Game Development Kit (GDK) title. Steps are included for using both Performance Investigator for Xbox (PIX) and Windows Performance Analyzer (WPA).

In this section

Common Steps
The steps used at the start of investigating each threading issue.

Core utilization: idle time
Provides steps for identifying underutilized CPU cores or threads that aren't running at their expected usage.

Thread locking
Provides the steps for identifying where threads are locking.

Serialization
Provides the steps for identifying where threads serialize, which prevents multithreaded systems from running in parallel.

High context switch rate
Provides steps for identifying cores and threads that have a high number of context switches, which degrades performance.

Core utilization: spinning
Describes the steps that are used for identifying threads that are spinning for extended periods of time.

Floating threads
Provides the steps for finding threads that are floating between cores, which can stall more critical threads.

Appendix
Provides the appendices that are referenced in the Finding threading issues documentation.

These steps should put you well on your way to finding the causes of common threading issues. If your questions aren't answered in these topics, please see the Xbox Developer Forums. You'll find a wealth of information there along with experts who can help answer your questions.