iedemam has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/28200 )
Change subject: performance: only track "all_allocated" states in one-second intervals ......................................................................
performance: only track "all_allocated" states in one-second intervals
Calling bsc_update_time_cc_all_allocated() from lchan_fsm_wait_ts_ready_onenter() and lchan_fsm_unused_onenter() cascades into very heavy usage of chan_counts_for_trx() on busier systems. With 200-300 lchans changing state each second on a BSC with 100 4TRX BTS defined, chan_counts_for_trx() is called over 100,000 per second.
There is a precision tradeoff by eliminating these calls but perhaps knowing the all_allocated state at one-second granularity is enough practically speaking.
Change-Id: Idffd8792eecb7f13812f2c3b3bee5485e9c3f409 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 0 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/00/28200/1
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 1c85ff3..88cea06 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -525,8 +525,6 @@ lchan_reset(lchan); osmo_fsm_inst_dispatch(lchan->ts->fi, TS_EV_LCHAN_UNUSED, lchan);
- bsc_update_time_cc_all_allocated(bts->network); - /* Poll the channel request queue, so that waiting calls can make use of the lchan that just * has become unused now. */ abis_rsl_chan_rqd_queue_poll(bts); @@ -707,8 +705,6 @@ return; }
- bsc_update_time_cc_all_allocated(bts->network); - lchan->conn = info->for_conn;
/* If there is a previous lchan, and the new lchan is on the same cell as previous one,