# Identifying Contended User-Space Locks

This section describes how to identify contended user-space locks throughout the system within a specific time period. The ability to identify contended user-space locks can help you investigate poor program performance that you suspect may be caused by `futex` contentions.

Simply put, `futex` contention occurs when multiple processes are trying to access the same lock variable at the same time. This can result in a poor performance because the lock serializes execution; one process obtains the lock while the other processes must wait for the lock variable to become available again.

The futexcontention script probes the `futex` system call to show lock contention.

## futexes.stp

futexcontention needs to be manually stopped; upon exit, it prints the following information:

- Name and ID of the process responsible for a contention

- The location of the contested lock variable

- How many times the lock variable was contended

- Average time of contention throughout the probe

futexcontentionoutput contains an excerpt from the output of futexcontention upon exiting the script (after approximately 20 seconds).

## futexcontention Sample Output

    [...]
    automount[2825] lock 0x00bc7784 contended 18 times, 999931 avg us
    synergyc[3686] lock 0x0861e96c contended 192 times, 101991 avg us
    synergyc[3758] lock 0x08d98744 contended 192 times, 101990 avg us
    synergyc[3938] lock 0x0982a8b4 contended 192 times, 101997 avg us
    [...]