Separate system Bluetooth usage from app usage 69/227369/1
authorKichan Kwon <k_c.kwon@samsung.com>
Mon, 9 Mar 2020 01:40:26 +0000 (10:40 +0900)
committerDewal Agarwal <d1.agarwal@samsung.com>
Wed, 11 Mar 2020 11:39:41 +0000 (11:39 +0000)
- To prevent including system usage into the app power consumption

Change-Id: I9c95df2ead983bf999a3818c600869abdba25631
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
(cherry picked from commit ba6acbceb3414be72b4525d96bf149af66982303)

include/bm_common.h
src/battery_dump/bm_listeners.c
src/bm_power_engine.c

index 06a28ad..1984124 100644 (file)
@@ -115,6 +115,8 @@ typedef enum {
 #define BM_RID_HRM                             BATTERY_MONITOR_HRM_DATA_ID
 #define BM_RID_BAT                             BATTERY_MONITOR_BATTERY_DATA_ID
 
+/* Pre-defined App ID */
+#define BM_APPID_SYSTEM        "Tizen"
 
 /* database macros */
 /* #define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER) */
index e9fa8d5..b555b9e 100644 (file)
@@ -807,7 +807,7 @@ static void bm_create_event_data(int type,int val)
                        _ERR("memory allocation  failed ");
                        return;
                }
-               g_string_append(data_obj->event_tag->string_info, "Tizen");
+               g_string_append(data_obj->event_tag->string_info, BM_APPID_SYSTEM);
                _DBG("Data Value of listener event uid : %d ",  data_obj->event_tag->uid);
                _DBG("Data Value of listener event string : %s , sp index =%d",  data_obj->event_tag->string_info->str,data_obj->event_tag->sp_idx);
        }
index ff1a494..89d714d 100644 (file)
@@ -412,7 +412,8 @@ int bm_ble_calc_power_and_commit(bm_bluetooth_st *handle, bool mode)
        GHashTable *hash = g_hash_table_new_full(g_str_hash, g_str_equal, bm_data_free, bm_atm_st2_free);
 
        long int edTime = 0, stTime = 0;
-       long int sesTime = 0, scTime = 0, conTime = 0, RX = 0, TX = 0;
+       long int sesTime = 0, scTime = 0, conTime = 0, RX_app = 0, TX_app = 0;
+       long int RX_system = 0, TX_system = 0;
        double onTime = 0;
        /* iterating over list for data accumulation */
        for (bt_data_iterator = handle->bt_data_list; bt_data_iterator; bt_data_iterator = bt_data_iterator->next) {
@@ -431,8 +432,22 @@ int bm_ble_calc_power_and_commit(bm_bluetooth_st *handle, bool mode)
                                continue;
                        }
                        _DBG("bt data available");
-                       RX += bt_atm_node->rx;
-                       TX += bt_atm_node->tx;
+
+                       /* Get the system usage */
+                       if (g_strcmp0(bt_atm_node->app_id, BM_APPID_SYSTEM) == 0) {
+                               _DBG("ignore - app_id(%s), time(%d), rx(%d), tx(%d)", bt_atm_node->app_id,
+                                               bt_atm_node->time, bt_atm_node->rx, bt_atm_node->tx);
+
+                               RX_system += bt_atm_node->rx;
+                               TX_system += bt_atm_node->tx;
+
+                               bm_data_free(bt_atm_node->app_id);
+                               bm_atm_st2_free(bt_atm_node);
+                               continue;
+                       }
+
+                       RX_app += bt_atm_node->rx;
+                       TX_app += bt_atm_node->tx;
                        onTime += bt_atm_node->time;
                        prv_data = NULL;
                        prv_app_id = NULL;
@@ -465,7 +480,7 @@ int bm_ble_calc_power_and_commit(bm_bluetooth_st *handle, bool mode)
        /* BT power consumption Level - 1 at the Resource Level */
        long int P_power_bt = 0, P_power_data = 0, P_power_conn = 0;
        P_power_conn = ((sP_power_bt_idle) * (sesTime - (scTime + conTime))) + ((sP_power_bt_scan) * (scTime)) + ((sP_power_bt_conn) * (conTime));
-       P_power_data = ((sP_power_bt_tx) * TX) + ((sP_power_bt_rx) * RX);
+       P_power_data = ((sP_power_bt_tx) * TX_app) + ((sP_power_bt_rx) * RX_app);
        P_power_bt = P_power_conn + P_power_data;
 
        _DBG("Calculated Power for Bluetooth P_power_bt(%ld),  P_power_conn (%ld), P_power_data(%ld)", P_power_bt, P_power_conn, P_power_data);
@@ -570,19 +585,14 @@ int bm_ble_calc_power_and_commit(bm_bluetooth_st *handle, bool mode)
        g_hash_table_destroy(hash);
 
        /* Dump resource usage */
-       _DBG("BLE usage : %ld", RX + TX);
-       if (RX > 0 || TX > 0) {
+       _DBG("BLE usage : %ld", RX_system + TX_system + RX_app + TX_app);
+       if (RX_system > 0 || TX_system > 0 || RX_app > 0 || TX_app > 0) {
                history_item_s hi;
                bd_print_history_item_reset(&hi);
 
-               struct timeval tv;
-               gettimeofday(&tv, NULL);
-
-               hi.time_s = ((long long)tv.tv_sec * 1000) + ((long long)tv.tv_usec / 1000);
-
                hi.cmd_s = CM_USAGE;
                hi.usage_type = USAGE_BLUETOOTH;
-               hi.usage = RX + TX;
+               hi.usage = RX_system + TX_system + RX_app + TX_app;
 
                bd_store_history_item(&hi);
        }