Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bsc/+/30266
to look at the new patch set (#2).
Change subject: paging: Store list of gsm_paging_request in bsc_subscr
......................................................................
paging: Store list of gsm_paging_request in bsc_subscr
This allows havily decreasing the algorithmic cost of removing all
pending active paging requests from a given subscriber once it answers
on a given BTS.
Beforehand, the whole paging queue of all BTS were iterated. Now, only
the active requests for that subscriber are iterated.
Related: SYS#6200
Change-Id: I831d0fe01d7812c34500362b90f47cd65645b666
---
M include/osmocom/bsc/bsc_subscriber.h
M include/osmocom/bsc/paging.h
M src/osmo-bsc/bsc_subscriber.c
M src/osmo-bsc/paging.c
4 files changed, 82 insertions(+), 59 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/30266/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/30266
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I831d0fe01d7812c34500362b90f47cd65645b666
Gerrit-Change-Number: 30266
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bsc/+/30267
to look at the new patch set (#2).
Change subject: paging: Use bsub->active_paging_requests to allow early loop termination adding paging_req
......................................................................
paging: Use bsub->active_paging_requests to allow early loop termination adding paging_req
Before this patch, the entire queue of paging_request had to be iterated
in order to find if the subscriber already had an active paging request
(discarding duplicates).
Now that bsc_subscriber holds a list of its active paging requests, it's
easier to look at its list to find out if it is already active on that
BTS.
As a result, there's no need to unconditionally iterate the whole list
and we can optimize the loop finding the spot to insert the new queue:
- First the potentially way smaller loop over
bsub->active_paging_requests is done
- Second, only if the first loop allowed, the bts->pending_requests is
iterated and potentially early terminated.
Related: SYS#6200
Change-Id: I7912275026c4d4983269c8870aa5565c93277c5a
---
M src/osmo-bsc/paging.c
1 file changed, 28 insertions(+), 17 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/30267/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/30267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I7912275026c4d4983269c8870aa5565c93277c5a
Gerrit-Change-Number: 30267
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30266 )
Change subject: paging: Store list of gsm_paging_request in bsc_subscr
......................................................................
Patch Set 1:
(2 comments)
File include/osmocom/bsc/bsc_subscriber.h:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-1242):
https://gerrit.osmocom.org/c/osmo-bsc/+/30266/comment/816ec322_1b6a92f7
PS1, Line 61: struct gsm_paging_request *bsc_subscr_find_req_by_bts(struct bsc_subscr *bsub, const struct gsm_bts *bts);
adding a line without newline at end of file
File src/osmo-bsc/paging.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-1242):
https://gerrit.osmocom.org/c/osmo-bsc/+/30266/comment/f4634c89_8ac73cd8
PS1, Line 554: * pending on the BTS that sent the Paging Reponse, but there *is* a Paging Request
'Reponse' may be misspelled - perhaps 'Response'?
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/30266
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I831d0fe01d7812c34500362b90f47cd65645b666
Gerrit-Change-Number: 30266
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Tue, 22 Nov 2022 13:35:44 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30267 )
Change subject: paging: Use bsub->active_paging_requests to allow early loop termination adding paging_req
......................................................................
Patch Set 1:
(1 comment)
File src/osmo-bsc/paging.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-1241):
https://gerrit.osmocom.org/c/osmo-bsc/+/30267/comment/9a7a1d7a_41ccbd4b
PS1, Line 452: if (req->pgroup == pgroup)
suspect code indent for conditional statements (16, 32)
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/30267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I7912275026c4d4983269c8870aa5565c93277c5a
Gerrit-Change-Number: 30267
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Tue, 22 Nov 2022 13:35:40 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30267 )
Change subject: paging: Use bsub->active_paging_requests to allow early loop termination adding paging_req
......................................................................
paging: Use bsub->active_paging_requests to allow early loop termination adding paging_req
Before this patch, the entire queue of paging_request had to be iterated
in order to find if the subscriber already had an active paging request
(discarding duplicates).
Now that bsc_subscriber holds a list of its active paging requests, it's
easier to look at its list to find out if it is already active on that
BTS.
As a result, there's no need to unconditionally iterate the whole list
and we can optimize the loop finding the spot to insert the new queue:
- First the potentially way smaller loop over
bsub->active_paging_requests is done
- Second, only if the first loop allowed, the bts->pending_requests is
iterated and potentially early terminated.
Related: SYS#6200
Change-Id: I7912275026c4d4983269c8870aa5565c93277c5a
---
M src/osmo-bsc/paging.c
1 file changed, 28 insertions(+), 17 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/30267/1
diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c
index ee8ba9a..237f9d2 100644
--- a/src/osmo-bsc/paging.c
+++ b/src/osmo-bsc/paging.c
@@ -415,31 +415,42 @@
return -ENOSPC;
}
- /* Iterate list of pending requests to find if we already have one for
- * the given subscriber. While on it, find the last
- * not-yet-ever-once-transmitted request; the new request will be added
- * immediately after it, giving higher prio to initial transmissions
- * (no retrans). This avoids new subscribers being paged to be delayed
- * if the paging queue is full due to a lot of retranmissions.
+ /* Find if we already have one for the given subscriber on this BTS: */
+ if (bsc_subscr_find_req_by_bts(params->bsub, bts)) {
+ LOG_PAGING_BTS(params, bts, DPAG, LOGL_INFO, "Paging request already pending for this subscriber\n");
+ rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_PAGING_ALREADY));
+ return -EEXIST;
+ }
+
+ /* Find the last not-yet-ever-once-transmitted request; the new request
+ * will be added immediately after it, giving higher prio to initial
+ * transmissions (no retrans). This avoids new subscribers being paged to
+ * be delayed if the paging queue is full due to a lot of retranmissions.
* Retranmissions usually mean MS are not reachable/available, so the
- * rationale here is to prioritize new subs which may be available. */
+ * rationale here is to prioritize new subs which may be available.
+ */
llist_for_each_entry(req, &bts_entry->pending_requests, entry) {
- if (params->bsub == req->bsub) {
- LOG_PAGING_BTS(params, bts, DPAG, LOGL_INFO, "Paging request already pending for this subscriber\n");
- rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_PAGING_ALREADY));
- return -EEXIST;
- }
if (req->attempts == 0) {
+ /* Keep counting no-retransmits (general and per same pgroup): */
last_initial_req = req;
reqs_before++;
if (req->pgroup == pgroup)
reqs_before_same_pgroup++;
- } else if (last_initial_req == NULL) {
- /* If no req with attempts=0 was found, we'll append to end of list, so keep counting. */
- reqs_before++;
- if (req->pgroup == pgroup)
- reqs_before_same_pgroup++;
+ continue;
}
+ /* Here first retransmit in queue is reached: */
+ if (last_initial_req) {
+ /* There were no-retransmit in the queue, done
+ * iterating, new req will be inserted here
+ * (see below the current loop). */
+ break;
+ }
+
+ /* last_initial_req == NULL: No req with attempts=0 was found,
+ * we'll append to end of list, so keep counting. */
+ reqs_before++;
+ if (req->pgroup == pgroup)
+ reqs_before_same_pgroup++;
}
LOG_PAGING_BTS(params, bts, DPAG, LOGL_DEBUG, "Start paging\n");
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/30267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I7912275026c4d4983269c8870aa5565c93277c5a
Gerrit-Change-Number: 30267
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30259 )
Change subject: UPF_Tests: adjust to rename 'endecaps' to 'tunend'
......................................................................
Patch Set 1:
(1 comment)
File upf/UPF_Tests.ttcn:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30259/comment/87f95603_30f2…
PS1, Line 659: kind := "tunend",
> probably needs backwards compatibility with the latest version, or else it starts failing there? (se […]
yes, always does, and i still think the way this needs to be done in our testing infra is extremely inelegant. in this case IMO osmo-upf is so new and bleeding edge that it makes no sense to spend time on 'latest' at all. the 'latest' release still lacks basic features that the customer definitely requires.
maybe it is also a mistake (of mine) to query the internal state of osmo-upf in the test instead of the external behavior only.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30259
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I6fe4a4cf02ca05b772491d11a5edbdbd7b0b429a
Gerrit-Change-Number: 30259
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: osmith <osmith(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 22 Nov 2022 11:52:26 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: comment