aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-06-30 14:48:13 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-07 10:35:28 +0200
commit1653f837e3be32d94eeaabf29ae89fdf1dc66bac (patch)
treef636cefa9095f8267f6977b352e2cd33131e7c58
parent20b7ba75017a590294dcd4e38135293f33f66740 (diff)
alloc: Disable inner loop debugging by default
The current logging statements within the inner loop of find_multi_slots drain quite a lot of CPU resources even if LOGL_DEBUG is not enabled. This might cause issues on the target hardware. This commit disables these LOGP calls unless the ENABLE_TS_ALLOC_DEBUG macro has been set explicitly. This results in a reduction in the CPU usage reported by callgrind for find_multi_slots from 42% to 25% when executing AllocTest. Sponsored-by: On-Waves ehf
-rw-r--r--src/gprs_rlcmac_ts_alloc.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp
index 5edf9ff..8c42bb1 100644
--- a/src/gprs_rlcmac_ts_alloc.cpp
+++ b/src/gprs_rlcmac_ts_alloc.cpp
@@ -501,12 +501,14 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts,
#endif
if (!rx_good) {
+#ifdef ENABLE_TS_ALLOC_DEBUG
LOGP(DRLCMAC, LOGL_DEBUG,
"- Skipping DL/UL slots: (TS=0)\"%s\"(TS=7), "
"no DL slots available\n",
set_flag_chars(set_flag_chars(slot_info,
rx_bad, 'x', '.'),
tx_window, 'U'));
+#endif
continue;
}
@@ -520,16 +522,18 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts,
req_common_slots = OSMO_MIN(req_common_slots, 2);
if (req_common_slots != common_slot_count) {
- LOGP(DRLCMAC, LOGL_DEBUG,
- "- Skipping DL/UL slots: (TS=0)\"%s\"(TS=7), "
- "invalid number of common TS: %d (expected %d)\n",
- set_flag_chars(set_flag_chars(set_flag_chars(
- slot_info,
- rx_bad, 'x', '.'),
- rx_window, 'D'),
+#ifdef ENABLE_TS_ALLOC_DEBUG
+ LOGP(DRLCMAC, LOGL_DEBUG,
+ "- Skipping DL/UL slots: (TS=0)\"%s\"(TS=7), "
+ "invalid number of common TS: %d (expected %d)\n",
+ set_flag_chars(set_flag_chars(set_flag_chars(
+ slot_info,
+ rx_bad, 'x', '.'),
+ rx_window, 'D'),
tx_window, 'U'),
- common_slot_count,
- req_common_slots);
+ common_slot_count,
+ req_common_slots);
+#endif
continue;
}
@@ -554,6 +558,7 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts,
}
}
+#ifdef ENABLE_TS_ALLOC_DEBUG
LOGP(DRLCMAC, LOGL_DEBUG,
"- Considering DL/UL slots: (TS=0)\"%s\"(TS=7), "
"capacity = %d\n",
@@ -564,6 +569,7 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts,
tx_window, 'U'),
rx_window & tx_window, 'C'),
capacity);
+#endif
if (capacity <= max_capacity)
continue;