Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: content/browser/power_profiler/Intel/power_profiler_helper_ia_win.cc

Issue 106223002: chrome power profiler chrome side changes (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/logging.h"
6 #include "content/browser/power_profiler/Intel/power_profiler_helper_ia.h"
7
8 namespace content {
9
10 void PowerProfilerHelperIA::Reset(size_t resolution) {
11 }
12
13 int PowerProfilerHelperIA::GetData(PowerEvent* data, double* energies,
qsr 2014/01/17 11:50:14 How is this working? You do not have any informati
14 int count) {
15 if (!is_open_ || count < PowerEvent::ID_COUNT)
16 return -1;
17
18 int read_number = 0;
19 energy_lib_.ReadSample();
20
21 base::Time time = base::Time::Now();
22
23 // get SoC package power
24 double package_power = 0.0;
25 double package_energy = 0.0;
26 double power[3];
27 int nData;
28 for (int i = 0; i < sockets_number_; i++) {
29 if (power_msr_ids_[PowerEvent::SOC_PACKAGE] == -1)
30 break;
31
32 bool code = energy_lib_.GetPowerData(i,
33 power_msr_ids_[PowerEvent::SOC_PACKAGE], power, &nData);
34 package_power += power[0];
35 package_energy += power[1];
36 }
37
38 data[read_number].type = PowerEvent::SOC_PACKAGE;
39 data[read_number].value = package_power;
40 data[read_number].time = base::TimeTicks::Now();
41 ++read_number;
42
43 energies[PowerEvent::SOC_PACKAGE] = package_energy;
44
45 return read_number;
46 }
47
48 bool PowerProfilerHelperIA::Initialize() {
49 if (is_open_)
50 return true;
51
52 if (!energy_lib_.IntelEnergyLibInitialize()) {
53 LOG(ERROR) << "Power profiler helper initialize failed!\r\n";
54 return false;
55 }
56 energy_lib_.GetNumNodes(&sockets_number_);
57
58 const std::wstring package_msr_name_ = L"Processor";
59 const std::wstring cpu_msr_name_ = L"IA";
60
61 int msr_number;
62 energy_lib_.GetNumMsrs(&msr_number);
63
64 int funcID;
65 wchar_t szName[32];
66 for(int i = 0; i < msr_number; i++) {
67 energy_lib_.GetMsrFunc(i, &funcID);
68 energy_lib_.GetMsrName(i, szName);
69
70 if (funcID != 1)
71 continue;
72
73 if (package_msr_name_.compare(szName) == 0)
74 power_msr_ids_[PowerEvent::SOC_PACKAGE] = i;
75 else if (cpu_msr_name_.compare(szName) == 0)
76 power_msr_ids_[PowerEvent::CPU] = i;
77 }
78
79 is_open_ = true;
80 return true;
81 }
82
83 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698