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

Unified Diff: content/browser/power_profiler/Intel/power_data_provider_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 6 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/power_profiler/Intel/power_data_provider_ia_win.cc
diff --git a/content/browser/power_profiler/Intel/power_data_provider_ia_win.cc b/content/browser/power_profiler/Intel/power_data_provider_ia_win.cc
new file mode 100644
index 0000000000000000000000000000000000000000..441db32c89476dccb6f7c6ac3eff1457302942ea
--- /dev/null
+++ b/content/browser/power_profiler/Intel/power_data_provider_ia_win.cc
@@ -0,0 +1,66 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/logging.h"
+#include "content/browser/power_profiler/Intel/power_data_provider_ia.h"
+
+namespace content {
+
+bool PowerDataProviderIA::GetData(PowerEvent* data) {
+ if (!energy_lib_.ReadSample())
+ return false;
+
+ // get SoC package power
+ double package_power = 0.0;
+ double power[3];
+ int nData;
+ for (int i = 0; i < sockets_number_; i++) {
+ if (power_msr_ids_[PowerEvent::SOC_PACKAGE] == -1)
+ break;
+
+ bool code = energy_lib_.GetPowerData(i,
+ power_msr_ids_[PowerEvent::SOC_PACKAGE], power, &nData);
+ package_power += power[0];
+ }
+
+ data->type = PowerEvent::SOC_PACKAGE;
+ data->value = package_power;
+ data->time = base::TimeTicks::Now();
+
+ return true;
+}
+
+bool PowerDataProviderIA::Initialize() {
+ if (is_open_)
+ return true;
+
+ if (!energy_lib_.IntelEnergyLibInitialize()) {
+ LOG(ERROR) << "Power Data Provider initialize failed!\r\n";
+ return false;
+ }
+ energy_lib_.GetNumNodes(&sockets_number_);
+
+ const std::wstring package_msr_name_ = L"Processor";
+
+ int msr_number;
+ energy_lib_.GetNumMsrs(&msr_number);
+
+ int funcID;
+ wchar_t szName[32];
+ for(int i = 0; i < msr_number; i++) {
+ energy_lib_.GetMsrFunc(i, &funcID);
+ energy_lib_.GetMsrName(i, szName);
+
+ if (funcID != 1)
+ continue;
+
+ if (package_msr_name_.compare(szName) == 0)
+ power_msr_ids_[PowerEvent::SOC_PACKAGE] = i;
+ }
+
+ is_open_ = true;
+ return true;
+}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698