Age | Commit message (Collapse) | Author |
|
Add new window to display devfreq device frequency statistics.
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
Powertop fails to display frequency stats when cpuidle subsystem
is not enabled. Fix it.
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
This patch adds stubs for features that are not supported
by Andriod. An header file which defines all stubs is
included only for Android builds.
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
This patch adds following minor changes to prepare powertop
to support Android platform.
- Add missing HAVE_CONFIG_H conditional check.
- remove un-used ethtool_cmd_speed_set and ethtool_cmd_speed
functions.
- Minimize dependency on exception handling in catch blocks.
These changes will not affect powertop functionality.
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
|
|
|
The commit 15b8bfb ("Ignore non-P-state-enabled CPUs when calculating
frequency") and 29f42b5 ("fixed issues with p-state reported CPU
frequencies") fixed frequency calculation for cpu packages but missed
it for cpu cores. Add it.
This fixes wrong frequency report on my quad-core box: 2072.5% -> 100.0%
Cc: Ivan Shapovalov <intelfx100@gmail.com>
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
values ) extended from fix for i965 monitoring. Also found UI titles missing, so repleaced them.
|
|
|
|
This fixes bogus reported CPU frequencies (actually, uninitialized
values from i965_core) when i965 monitoring is used.
Signed-off-by: Ivan Shapovalov <intelfx100@gmail.com>
|
|
Rework libnl detection.
PKG_CHECK_MODULES macro appends FOO_CFLAGS and FOO_LIBS flags
Example:
LIBNL_CFLAGS = -I/usr/include/libnl3
LIBNL_LIBS = -lnl-genl-3 -lnl-3
while AC_SEARCH_LIBS only prepends -llibrary to LIBS, so AC_SEARCH_LIBS
is not helpful.
Use pkg-config PC file names to search for minimum package versions:
libnl 3.+ -- libnl-3.0.pc
libnl 2.+ -- libnl-2.0.pc
libnl 1.+ -- libnl-1.0.pc
Patch also changes $has_libnl_ver == 0 error message and suppresses
failed PKG_CHECK_MODULES output.
Austin pointed out that libnl-2.0 provide only libnl-2.0.pc pkg-config
file, while libnl-3 has at least 5 of them (for every `so').
This is why we check libnl-3.0.pc and libnl-genl-3.0.pc in libnl-3 case.
Many thanks to Austin Zhang for help.
v2: Namhyung Kim reported that libnl-1.0.pc on Ubuntu is named libnl-1.pc.
Reported-and-tested-by: Austin Zhang <zhang.austin@gmail.com>
Tested-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
|
|
|
|
|
|
the reporting functions with a new abstract type field. This ended up braking a important Macro in the reporting that allow for the decision on whether or not to use translation or not depending on report type. This commit back out the breakage, uses the new type field in decision making for cstate cores, and adds a comment on why not to just use the field for the reporting function.
|
|
set along with the number.
Added the "field" to reporting, so that the type and number are used from the abstract rather then hard coding the type in reporting.
Update TO-DO list while I was at it.
|
|
* block statement doesn't need a semicolon.
* put closing curly bracket of function on a new line.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
Enable asserts for test period and correct the comments.
It is better to know why a crash happen when it could happen
than just silently die.
|
|
power off to unused SATA ports making it into libata, PowerTOP should now suggest writing min_power to all SATA ports, whether they are populated or not.
|
|
|
|
|
|
The do_proc_net_dev() reads the /proc/net/dev file and counts tx/rx
packets for each interface. However index for rx packet (1) is not
match to the file:
$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)
Change the index to 2 to match to the number of receive packets.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
The 'freq' should have the maximun frequency value of all children.
But the current code does not update the freq properly. Fix it.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
Igor noted a typo and coding styles errors in previous patch, correct them.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Hello,
below is initial version of rework I was talking about. Igor did most part of it (introduced
report_formatter_base class), so mine are just minor tweaks. I'm glad still no one mentioned
templates, just kidding.
one thing I don't really like so far is
else if (type == REPORT_OFF)
formatter = new report_formatter();
which is just cryptic and thus look wrong.
perhaps we need something like `new report_formatter_basic()' here (which will require header
file rename).
please review and comment.
------------------------------------------------------------------------
Small rework on report formatter side:
- make report_formatter a basic class (previously was interface). hence we can
remove empty report_formatter interface implementation.
- drop report-formatter-null class
- in report maker now we create report_formatter instance for REPORT_OFF mode
- rename report_formatter_base to report_formatter_string_base, so class name tells
a bit more, later we can create report_formatter_xml_base/report_formatter_json_base/etc.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Move report.cpp and report.h to report/ directory to other report-related
files.
|
|
|
|
Convert report system to use new report generator facility
for producing parsable CSV- and HTML-reports, enhancing code readability
and maintainability, merging CSV and HTML codepaths, separating document
structure from text formatting.
|
|
This report generator adds the facility to generate correctly parsable
reports in HTML and CSV format. It separates document structure from
text formatting, enhances code readability and simplifies report generating.
Also it makes possible adding other formats such as TXT or XML.
This report generator implements the following document structure:
body
\---> section
|---> header
|---> paragraph
\---> table
\---> table row
\---> table cell
The report body consists of a number of sections (a.k.a. <div>s,
a.k.a. tabs).
Each section can contain headers (<h1>, <h2>, <h3>), paragraphs (<p>)
and tables (<table>).
A header is a single line of text.
Paragraphs can contain only text.
A table consists of table rows. A table row consists of table cells.
A table cell can contain only text.
Each section, table, row or cell could have its own formatting.
To distinguish elements from others of its type, each element could have
an unique identifier (see enums section_type, table_type, row_type and
cell_type below). These identifiers are used in formatter implementations
to produce special formatting.
Example of usage:
report_maker report(REPORT_OFF);
report.set_type(REPORT_HTML);
report.begin_section();
report.add_header("Big report");
report.begin_paragraph("Some text");
report.begin_table();
report.begin_row();
report.begin_cell();
report.add("Something");
report.begin_cell(CELL_SPECIAL);
report.add("Foo bar");
report.finish_report();
const char *result = report.get_result();
|
|
According to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682388
the string is not null terminated when too much data is read.
This patch fixes the crashes on my system.
|
|
|
|
descripton ==> description
pased ==> passed
inital ==> initial
Signed-off-by: Colin Ian King <colin.king@canonical.com>
|
|
fucntion ==> function
Signed-off-by: Colin Ian King <colin.king@canonical.com>
|
|
thier ==> their
Signed-off-by: Colin Ian King <colin.king@canonical.com>
|
|
supress ==> suppress
Signed-off-by: Colin Ian King <colin.king@canonical.com>
|
|
s/cpu_even_req/cpu_even_freq/
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
As strncpy doesn't guarantee the destination buffer is NULL-
terminated, do it explicitly.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
The 'filename' is not used in the loop anymore.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
The strdup() can return NULL so that the result should be checked.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
The third argument of PERF_EVENT_IOC_{ENABLE,DISABLE} ioctl is a flag
to determine whether the command should be applied to group members.
Since the powertop doesn't use the event grouping feature, it'd better
passing 0 as a third argument explicitly.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
|
Remove unneded escaping backslashes from CSS.
|
|
|
|
abstract_cpu: do not call total_pstate_time() in validate()
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
This patch add more ui navigation features allowing for the scrolling of
PowerTop content for each tab. This is done by controlling the location
of the winpad, and refreshing the terminal window when needed. To do
this, the navigation keys have been updated as follows.
"Arrow Keys" now scroll the tab windows
"Page up/down" scroll tab windows up and down
"TAB" cycles the next window tab
"SHIFT+TAB" cycles the previous window tab
"ENTER" toggles tunables
"SPACE BAR" toggles tunables
"r KEY" refresh results and resets view of tab window.
Known issues:
There is no handler for terminal re-sizing. The workaround is to use "r
KEY" to refresh if terminal windows size is changed mid session.
|
|
|
|
|
|
Fix timer and work perf events timestamp tracing by
- considering event exit timestamp relative to measurement first
timestamp for events which entry timestamp is not recorded.
Currently these events exit timestamp itself is considered as
usage period resulting in false usage report.
- clearing event timestamps from global map at the end of each
measurement to avoid collision with earlier recorded timestamps.
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
|
|
|
|
|