summaryrefslogtreecommitdiffstats
path: root/src/occ_405/amec/amec_dps.h
diff options
context:
space:
mode:
authorWilliam Bryan <wilbryan@us.ibm.com>2015-08-03 12:38:58 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2015-08-03 15:32:27 -0500
commit420e6d248cc6d2b3c39bc3970e3bb6747b3bddc3 (patch)
treec9f6691eddba39193e39aa769367e1267fb9fc86 /src/occ_405/amec/amec_dps.h
parentadade8c8ef30ed519322674c762d95663009c5d4 (diff)
downloadtalos-occ-420e6d248cc6d2b3c39bc3970e3bb6747b3bddc3.tar.gz
talos-occ-420e6d248cc6d2b3c39bc3970e3bb6747b3bddc3.zip
new ssx and lib files
Change-Id: I2328b1e86d59e3788910687d762fb70ec680058f Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19503 Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Tested-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec/amec_dps.h')
-rwxr-xr-xsrc/occ_405/amec/amec_dps.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/occ_405/amec/amec_dps.h b/src/occ_405/amec/amec_dps.h
new file mode 100755
index 0000000..c342139
--- /dev/null
+++ b/src/occ_405/amec/amec_dps.h
@@ -0,0 +1,114 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/occ_405/amec/amec_dps.h $ */
+/* */
+/* OpenPOWER OnChipController Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef _AMEC_DPS_H
+#define _AMEC_DPS_H
+
+/*----------------------------------------------------------------------------*/
+/* Includes */
+/*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------*/
+/* Constants */
+/*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------*/
+/* Globals */
+/*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------*/
+/* Defines */
+/*----------------------------------------------------------------------------*/
+#define TWO_TO_THE_POWER_OF_FIFTEEN 32768
+
+/*----------------------------------------------------------------------------*/
+/* Typedef / Enum */
+/*----------------------------------------------------------------------------*/
+///DPS Algorithm Model
+typedef struct amec_dps
+{
+ ///Frequency request for core voting box
+ uint16_t freq_request;
+ ///Utilization speed request
+ uint16_t util_speed_request;
+ ///Utilization threshold for moving down in frequency (low side)
+ uint16_t tlutil;
+ ///Step size for going up in speed
+ uint16_t step_up;
+ ///Step size for going down in speed
+ uint16_t step_down;
+ ///Number of utilization samples in sliding window
+ uint16_t sample_count_util;
+ ///Epsilon used for determining if a core is active (units of 0.01%)
+ uint16_t epsilon_perc;
+ ///Threshold for going up in frequency
+ uint16_t alpha_up;
+ ///Threshold for going down in frequency
+ uint16_t alpha_down;
+ ///8-bit mask for dynamic power save type (=0:none active)
+ uint8_t type;
+}amec_dps_t;
+
+/*----------------------------------------------------------------------------*/
+/* Function Prototypes */
+/*----------------------------------------------------------------------------*/
+
+/**
+ * Update per-core utilization variables.
+ *
+ * This function updates all the per-core utilization variables. These
+ * variables are used to populate the slack sensors.
+ *
+ */
+void amec_dps_update_core_util(void);
+
+/**
+ * Update utilization sensors for a core group.
+ *
+ * This function updates the utilization (slack) sensors for a
+ * given core group.
+ *
+ */
+void amec_dps_partition_update_sensors(const uint16_t i_part_id);
+
+/**
+ * DPS algorithm function.
+ *
+ * This function implements the different DPS algorithms for a
+ * given core group.
+ *
+ */
+void amec_dps_partition_alg(const uint16_t i_part_id);
+
+/**
+ * Main DPS function.
+ *
+ * This function is the entry-point for running DPS algorithms
+ * and is aware of the different core groups defined.
+ *
+ */
+void amec_dps_main(void);
+
+#endif /* #ifndef _AMEC_DPS_H */
OpenPOWER on IntegriCloud