diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-06-16 16:38:54 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-06-18 11:48:49 +0000 |
commit | 7a58aa9bc414c11d897fc9a062a5ad7add7b1740 (patch) | |
tree | acd509786abe978f23f698cfa151b0447a3cb1ac | |
parent | 1240ea8b83160ebf81762c121dc4fb25e699bde0 (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
-rw-r--r-- | src/common/scheduler.c | 6 |
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: |