aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-06-16 16:38:54 +0200
committerlaforge <laforge@osmocom.org>2020-06-18 11:48:49 +0000
commit7a58aa9bc414c11d897fc9a062a5ad7add7b1740 (patch)
treeacd509786abe978f23f698cfa151b0447a3cb1ac /src
parent1240ea8b83160ebf81762c121dc4fb25e699bde0 (diff)
scheduler: Add rate_ctr informing about Dl block not found
Together with previous counter L1SCHED_TS_CTR_DL_LATE, it allows understanding which dl blocks are really lost (never queued) and which were simply queued too late. Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74
Diffstat (limited to 'src')
-rw-r--r--src/common/scheduler.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/common/scheduler.c b/src/common/scheduler.c
index b5397338..01edc69c 100644
--- a/src/common/scheduler.c
+++ b/src/common/scheduler.c
@@ -566,10 +566,12 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = {
enum {
L1SCHED_TS_CTR_DL_LATE,
+ L1SCHED_TS_CTR_DL_NOT_FOUND,
};
static const struct rate_ctr_desc l1sched_ts_ctr_desc[] = {
[L1SCHED_TS_CTR_DL_LATE] = {"l1sched_ts:dl_late", "Downlink frames arrived too late to submit to lower layers"},
+ [L1SCHED_TS_CTR_DL_NOT_FOUND] = {"l1sched_ts:dl_not_found", "Downlink frames not found while scheduling"},
};
static const struct rate_ctr_group_desc l1sched_ts_ctrg_desc = {
"l1sched_ts",
@@ -698,7 +700,7 @@ struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn
continue;
}
if (prim_fn > 0) /* l1sap_fn > fn */
- return NULL;
+ break;
/* l1sap_fn == fn */
if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn))
@@ -714,6 +716,8 @@ struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn
return msg;
}
+ /* Queue was traversed with no candidate, no prim is available for current FN: */
+ rate_ctr_inc2(l1ts->ctrs, L1SCHED_TS_CTR_DL_NOT_FOUND);
return NULL;
free_msg: