fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/41778?usp=email )
Change subject: ttcn3-bts-test: bpftrace: filter by executable name
......................................................................
ttcn3-bts-test: bpftrace: filter by executable name
Filtering by pid does not work as expected, perhaps because we
obtain it (by running pidof) in the container itself. Let's modify
the scripts to filter by the executable name instead.
Change-Id: I04c2e36806534a8ca650733bacf521ea57950692
Related: OS#6794
---
M ttcn3-bts-test/bpftrace/ksys_write_delay.bt
M ttcn3-bts-test/bpftrace/udp_sendmsg_delay.bt
M ttcn3-bts-test/jenkins.sh
3 files changed, 10 insertions(+), 19 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/78/41778/1
diff --git a/ttcn3-bts-test/bpftrace/ksys_write_delay.bt b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
index 969dd29..bb964c3 100644
--- a/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
+++ b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
@@ -7,11 +7,9 @@
* Implemented 2026 by Pau Espin Pedrol <pespin(a)sysmocom.de>
* SPDX-License-Identifier: CC0
*
- * As no filtering on PID etc. is done, you will likely use this with 'bpftrace -p' like
+ * The executable name must be passed as the first argument:
*
- * bpftrace ./ksys_write.bt -p PID
- *
- * (where PID is the PID of the process, like osmo-bts-trx)
+ * bpftrace ./ksys_write.bt osmo-bts-trx
*/
BEGIN
@@ -19,7 +17,7 @@
printf("Tracing ksys_write() latency... Hit Ctrl-C to end.\n");
}
-kprobe:ksys_write
+kprobe:ksys_write / comm == $1 /
{
$fd = (int64)arg0;
diff --git a/ttcn3-bts-test/bpftrace/udp_sendmsg_delay.bt b/ttcn3-bts-test/bpftrace/udp_sendmsg_delay.bt
index 8525413..f09960e 100644
--- a/ttcn3-bts-test/bpftrace/udp_sendmsg_delay.bt
+++ b/ttcn3-bts-test/bpftrace/udp_sendmsg_delay.bt
@@ -7,11 +7,9 @@
* Implemented 2025 by Vadim Yanitskiy <fixeria(a)osmocom.org>
* SPDX-License-Identifier: CC0
*
- * As no filtering on PID etc. is done, you will likely use this with 'bpftrace -p' like
+ * The executable name must be passed as the first argument:
*
- * bpftrace ./udp_sendmsg_delay.bt -p PID
- *
- * (where PID is the PID of the process, like osmo-bts-trx)
+ * bpftrace ./udp_sendmsg_delay.bt osmo-bts-trx
*/
BEGIN
@@ -19,7 +17,7 @@
printf("Tracing udp_sendmsg() latency... Hit Ctrl-C to end.\n");
}
-kprobe:udp_sendmsg
+kprobe:udp_sendmsg / comm == $1 /
{
$sk = (struct sock *)arg0;
/* poor man's ntohs() */
diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh
index 6e5cc67..0571d65 100755
--- a/ttcn3-bts-test/jenkins.sh
+++ b/ttcn3-bts-test/jenkins.sh
@@ -85,19 +85,14 @@
continue
fi
- local logfile="$VOL_BASE_DIR"/bts/bpftrace/$(basename "$script" | sed s/\.bt/.log/)
- local startscript="$VOL_BASE_DIR"/bts/bpftrace/$(basename "$script" | sed s/\.bt/.sh/)
+ local scriptfile="/data/bpftrace/$(basename "$script")"
+ local logfile="${scriptfile}.log"
cp "$script" "$VOL_BASE_DIR"/bts/bpftrace
- ( echo "#!/bin/sh -ex"
- echo "bpftrace /data/bpftrace/$(basename "$script") -p \$(pidof osmo-bts-$variant)" ) >"$startscript"
- chmod +x "$startscript"
-
- docker exec \
+ docker exec -d \
"${BUILD_TAG}-bts" \
- /usr/local/bin/respawn.sh /data/bpftrace/"$(basename "$startscript")" \
- >>"$logfile" 2>&1 &
+ /bin/sh -c "/usr/local/bin/respawn.sh bpftrace $scriptfile osmo-bts-$variant >>$logfile 2>&1"
done
fi
}
--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/41778?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I04c2e36806534a8ca650733bacf521ea57950692
Gerrit-Change-Number: 41778
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/41776?usp=email )
Change subject: abis_osmo: Fix reading Abis IPA OSMO_EXT type
......................................................................
abis_osmo: Fix reading Abis IPA OSMO_EXT type
The l2 buffer points to the IPA payload, not the the ext type.
This was probably not the case during initial development of the stack,
but it is since a while ago, to be inline with usual behavior of ipa
handling.
This patch fixes BTS_Tests_OML.TC_ipa_osmo_pcu_anr_fwd failure.
Change-Id: I4941d28b2416a70e61d2881e8ebc556c5421256c
---
M src/common/abis_osmo.c
1 file changed, 2 insertions(+), 14 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
daniel: Looks good to me, but someone else must approve
diff --git a/src/common/abis_osmo.c b/src/common/abis_osmo.c
index beb9992..eb764d5 100644
--- a/src/common/abis_osmo.c
+++ b/src/common/abis_osmo.c
@@ -111,24 +111,12 @@
/* incoming IPA/OSMO extension Abis message from BSC */
int down_osmo(struct gsm_bts *bts, struct msgb *msg)
{
- uint8_t *type;
-
- if (msgb_l2len(msg) < 1) {
- oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,
- "OSMO message too short\n");
- msgb_free(msg);
- return -EIO;
- }
-
- type = msgb_l2(msg);
- msg->l2h = type + 1;
-
- switch (*type) {
+ switch (osmo_ipa_msgb_cb_proto_ext(msg)) {
case IPAC_PROTO_EXT_PCU:
return rx_down_osmo_pcu(bts, msg);
default:
oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,
- "OSMO message unknown extension %u\n", *type);
+ "OSMO message unknown extension %u\n", osmo_ipa_msgb_cb_proto_ext(msg));
msgb_free(msg);
return -EIO;
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41776?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I4941d28b2416a70e61d2881e8ebc556c5421256c
Gerrit-Change-Number: 41776
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/41777?usp=email )
Change subject: bpftrace: Introduce ksys_write_delay.bt
......................................................................
bpftrace: Introduce ksys_write_delay.bt
This will record latency of write() calls during ttcn3-bts-test run,
where some write() call on stderr seems to be taking ~0.32 seconds,
stalling the timerfd (71 times) and making osmo-bts exit.
Related: OS#6794
Change-Id: Ia1d2036ac7c6c9e2818d07e8787d857b3b3e5881
---
A ttcn3-bts-test/bpftrace/ksys_write_delay.bt
1 file changed, 39 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
laforge: Looks good to me, but someone else must approve
diff --git a/ttcn3-bts-test/bpftrace/ksys_write_delay.bt b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
new file mode 100644
index 0000000..969dd29
--- /dev/null
+++ b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
@@ -0,0 +1,39 @@
+#!/usr/bin/env bpftrace
+
+/* Script to obtain ksys_write() latency histograms.
+ * It will measure time between entry and exit and plot one histogram
+ * for each destination port number, indicating the amount of time spent.
+ *
+ * Implemented 2026 by Pau Espin Pedrol <pespin(a)sysmocom.de>
+ * SPDX-License-Identifier: CC0
+ *
+ * As no filtering on PID etc. is done, you will likely use this with 'bpftrace -p' like
+ *
+ * bpftrace ./ksys_write.bt -p PID
+ *
+ * (where PID is the PID of the process, like osmo-bts-trx)
+ */
+
+BEGIN
+{
+ printf("Tracing ksys_write() latency... Hit Ctrl-C to end.\n");
+}
+
+kprobe:ksys_write
+{
+ $fd = (int64)arg0;
+
+ @start[tid] = nsecs;
+ @fd[tid] = $fd;
+}
+
+kretprobe:ksys_write / @start[tid] /
+{
+ $delta_us = (nsecs - @start[tid]) / 1000;
+ @latency[@fd[tid]] = hist($delta_us);
+
+ delete(@start[tid]);
+ delete(@fd[tid]);
+}
+
+/* vim:set ts=2 sw=2 et: */
--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/41777?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: Ia1d2036ac7c6c9e2818d07e8787d857b3b3e5881
Gerrit-Change-Number: 41777
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: laforge, lynxis lazus, neels.
Hello Jenkins Builder, laforge, neels,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/41686?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Code-Review+2 by neels, Verified+1 by Jenkins Builder
The change is no longer submittable: Code-Review and Verified are unsatisfied now.
Change subject: saip: rework file sizes for "half-defined" template files
......................................................................
saip: rework file sizes for "half-defined" template files
Define the file size early if possible.
Some templates (e.g. for 5GS) define files which aren't completely defined.
Fixes the parsing for 5GS SUCI_Calc_Info which doesn't have a file size defined.
The saip-tool will other crash when reading a 5G enabled profile:
```
Traceback (most recent call last):
File "./contrib/saip-tool.py", line 458, in <module>
pes = ProfileElementSequence.from_der(f.read())
File "pySim/esim/saip/__init__.py", line 1679, in from_der
inst.parse_der(der)
~~~~~~~~~~~~~~^^^^^
File "pySim/esim/saip/__init__.py", line 1552, in parse_der
self.pe_list.append(ProfileElement.from_der(first_tlv, pe_sequence=self))
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "pySim/esim/saip/__init__.py", line 557, in from_der
inst._post_decode()
~~~~~~~~~~~~~~~~~^^
File "pySim/esim/saip/__init__.py", line 668, in _post_decode
self.pe2files()
~~~~~~~~~~~~~^^
File "pySim/esim/saip/__init__.py", line 655, in pe2files
file = File(k, v, template.files_by_pename.get(k, None))
File "pySim/esim/saip/__init__.py", line 133, in __init__
self.from_tuples(l)
~~~~~~~~~~~~~~~~^^^
File "pySim/esim/saip/__init__.py", line 358, in from_tuples
self._body = self.file_content_from_tuples(l)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "pySim/esim/saip/__init__.py", line 393, in file_content_from_tuples
stream.write(self.template.expand_default_value_pattern(self.file_size))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "pySim/esim/saip/templates.py", line 123, in expand_default_value_pattern
raise ValueError("%s does not have a default length" % self)
ValueError: FileTemplate(EF.SUCI_Calc_Info) does not have a default length
```
Change-Id: I7c4a0914aef1049a416e6b091f23daab39a1dd9c
---
M pySim/esim/saip/__init__.py
1 file changed, 4 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/86/41686/2
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/41686?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I7c4a0914aef1049a416e6b091f23daab39a1dd9c
Gerrit-Change-Number: 41686
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Attention is currently required from: lynxis lazus.
Hello Jenkins Builder, laforge, neels,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/pysim/+/41687?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
The change is no longer submittable: Verified is unsatisfied now.
Change subject: saip: calculate the number of records for LF and CY
......................................................................
saip: calculate the number of records for LF and CY
Some templates (e.g. for 5GS) define files which aren't completely defined.
5GS OPL5G: doesn't have a file size defined in the template,
but a record size.
Change-Id: I5ec1757d6852eb24d3662ec1c3fc88365e90a616
---
M pySim/esim/saip/__init__.py
1 file changed, 3 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/87/41687/2
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/41687?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I5ec1757d6852eb24d3662ec1c3fc88365e90a616
Gerrit-Change-Number: 41687
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/41777?usp=email )
Change subject: bpftrace: Introduce ksys_write_delay.bt
......................................................................
bpftrace: Introduce ksys_write_delay.bt
This will record latency of write() calls during ttcn3-bts-test run,
where some write() call on stderr seems to be taking ~0.32 seconds,
stalling the timerfd (71 times) and making osmo-bts exit.
Related: OS#6794
Change-Id: Ia1d2036ac7c6c9e2818d07e8787d857b3b3e5881
---
A ttcn3-bts-test/bpftrace/ksys_write_delay.bt
1 file changed, 39 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/77/41777/1
diff --git a/ttcn3-bts-test/bpftrace/ksys_write_delay.bt b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
new file mode 100644
index 0000000..969dd29
--- /dev/null
+++ b/ttcn3-bts-test/bpftrace/ksys_write_delay.bt
@@ -0,0 +1,39 @@
+#!/usr/bin/env bpftrace
+
+/* Script to obtain ksys_write() latency histograms.
+ * It will measure time between entry and exit and plot one histogram
+ * for each destination port number, indicating the amount of time spent.
+ *
+ * Implemented 2026 by Pau Espin Pedrol <pespin(a)sysmocom.de>
+ * SPDX-License-Identifier: CC0
+ *
+ * As no filtering on PID etc. is done, you will likely use this with 'bpftrace -p' like
+ *
+ * bpftrace ./ksys_write.bt -p PID
+ *
+ * (where PID is the PID of the process, like osmo-bts-trx)
+ */
+
+BEGIN
+{
+ printf("Tracing ksys_write() latency... Hit Ctrl-C to end.\n");
+}
+
+kprobe:ksys_write
+{
+ $fd = (int64)arg0;
+
+ @start[tid] = nsecs;
+ @fd[tid] = $fd;
+}
+
+kretprobe:ksys_write / @start[tid] /
+{
+ $delta_us = (nsecs - @start[tid]) / 1000;
+ @latency[@fd[tid]] = hist($delta_us);
+
+ delete(@start[tid]);
+ delete(@fd[tid]);
+}
+
+/* vim:set ts=2 sw=2 et: */
--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/41777?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: Ia1d2036ac7c6c9e2818d07e8787d857b3b3e5881
Gerrit-Change-Number: 41777
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>