tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py

Source file repositories/reference/linux-study-clean/tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py

File Facts

System
Linux kernel
Corpus path
tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py
Extension
.py
Size
24228 bytes
Lines
614
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0-only
# -*- coding: utf-8 -*-
#
""" This utility can be used to debug and tune the performance of the
intel_pstate driver. This utility can be used in two ways:
- If there is Linux trace file with pstate_sample events enabled, then
this utility can parse the trace file and generate performance plots.
- If user has not specified a trace file as input via command line parameters,
then this utility enables and collects trace data for a user specified interval
and generates performance plots.

Prerequisites:
    Python version 3.6.x or higher
    gnuplot 5.0 or higher
    python3-gnuplot 1.8 or higher
    (Most of the distributions have these required packages. They may be called
     gnuplot-py, python-gnuplot or python3-gnuplot, gnuplot-nox, ... )

    HWP (Hardware P-States are disabled)
    Kernel config for Linux trace is enabled

    see print_help(): for Usage and Output details

"""

from datetime import datetime
import subprocess
import os
import time
import re
import signal
import sys
import getopt
import Gnuplot
from numpy import *
from decimal import *

__author__ = "Srinivas Pandruvada"
__copyright__ = " Copyright (c) 2017, Intel Corporation. "
__license__ = "GPL version 2"


MAX_CPUS = 256

# Define the csv file columns
C_COMM = 18
C_GHZ = 17
C_ELAPSED = 16
C_SAMPLE = 15
C_DURATION = 14
C_LOAD = 13
C_BOOST = 12
C_FREQ = 11
C_TSC = 10
C_APERF = 9
C_MPERF = 8
C_TO = 7
C_FROM = 6
C_SCALED = 5
C_CORE = 4
C_USEC = 3
C_SEC = 2
C_CPU = 1

global sample_num, last_sec_cpu, last_usec_cpu, start_time, testname, trace_file

# 11 digits covers uptime to 115 days
getcontext().prec = 11

Annotation

Implementation Notes