This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19445 ) Change subject: Use new libosmovty cpu sched config features ...................................................................... Use new libosmovty cpu sched config features Using the new libosmovty features allow for: * Setting different cpu-affinity masks for each thread in the process, both at startup through .cfg file as well as changing it at runtime. * Unified VTY interface to change the scheduling policy of the process inherited by all osmocom processes enabling the feature. Depends: libosmocore.git Change-Id If76a4bd2cc7b3c7adf5d84790a944d78be70e10a Depends: osmo-gsm-masnuals.git Change-Id Icd75769ef630c3fa985fc5e2154d5521689cdd3c Related: SYS#4986 Change-Id: I3798603779b88ea37da03033cf7737a6e4751d6e --- M CommonLibs/trx_vty.c A TODO-RELEASE M Transceiver52M/Transceiver.cpp M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/osmo-trx.cpp M Transceiver52M/radioInterface.cpp M doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg M doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg M doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg M doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg M doc/manuals/osmotrx-usermanual.adoc 11 files changed, 32 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index e37ecaf..1cf4f5a 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -291,7 +291,7 @@ return CMD_SUCCESS; } -DEFUN(cfg_rt_prio, cfg_rt_prio_cmd, +DEFUN_DEPRECATED(cfg_rt_prio, cfg_rt_prio_cmd, "rt-prio <1-32>", "Set the SCHED_RR real-time priority\n" "Real time priority\n") @@ -299,6 +299,8 @@ struct trx_ctx *trx = trx_from_vty(vty); trx->cfg.sched_rr = atoi(argv[0]); + vty_out (vty, "%% 'rt-prio %u' is deprecated, use 'policy rr %u' under 'sched' node instead%s", + trx->cfg.sched_rr, trx->cfg.sched_rr, VTY_NEWLINE); return CMD_SUCCESS; } diff --git a/TODO-RELEASE b/TODO-RELEASE new file mode 100644 index 0000000..75fe7b8 --- /dev/null +++ b/TODO-RELEASE @@ -0,0 +1,2 @@ +* update libosmocore dependency to > 1.3.x for osmo_sched_vty_init(), osmo_sched_vty_apply_localthread() +* update osmo-gsm-manuals dependency to > 0.3.0 for vty_cpu_sched.adoc include. diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index c3ef377..32e0226 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -37,6 +37,7 @@ #include <osmocom/core/utils.h> #include <osmocom/core/socket.h> #include <osmocom/core/bits.h> +#include <osmocom/vty/cpu_sched_vty.h> } #ifdef HAVE_CONFIG_H @@ -1273,6 +1274,7 @@ snprintf(thread_name, 16, "RxUpper%zu", num); set_selfthread_name(thread_name); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { if (!trx->driveReceiveFIFO(num)) { @@ -1288,6 +1290,7 @@ void *RxLowerLoopAdapter(Transceiver *transceiver) { set_selfthread_name("RxLower"); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { if (!transceiver->driveReceiveRadio()) { @@ -1303,6 +1306,7 @@ void *TxLowerLoopAdapter(Transceiver *transceiver) { set_selfthread_name("TxLower"); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { transceiver->driveTxFIFO(); @@ -1321,6 +1325,7 @@ snprintf(thread_name, 16, "TxUpper%zu", num); set_selfthread_name(thread_name); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { if (!trx->driveTxPriorityQueue(num)) { diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 854ed2e..b5dda28 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -34,7 +34,9 @@ #endif extern "C" { +#include <osmocom/core/utils.h> #include <osmocom/gsm/gsm_utils.h> +#include <osmocom/vty/cpu_sched_vty.h> } #ifdef USE_UHD_3_11 @@ -150,6 +152,7 @@ void *async_event_loop(uhd_device *dev) { set_selfthread_name("UHDAsyncEvent"); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { dev->recv_async_msg(); diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp index 9fcbda5..4a92447 100644 --- a/Transceiver52M/osmo-trx.cpp +++ b/Transceiver52M/osmo-trx.cpp @@ -55,6 +55,7 @@ #include <osmocom/ctrl/control_if.h> #include <osmocom/vty/stats.h> #include <osmocom/vty/command.h> +#include <osmocom/vty/cpu_sched_vty.h> #include "convolve.h" #include "convert.h" @@ -435,7 +436,9 @@ int rc; memset(¶m, 0, sizeof(param)); param.sched_priority = prio; - LOG(INFO) << "Setting SCHED_RR priority " << param.sched_priority; + LOG(INFO) << "Setting SCHED_RR priority " << param.sched_priority + << ". This setting is DEPRECATED, please use 'policy rr " << param.sched_priority + << "' under the 'sched' VTY node instead."; rc = sched_setscheduler(getpid(), SCHED_RR, ¶m); if (rc != 0) { LOG(ERROR) << "Config: Setting SCHED_RR failed"; @@ -589,6 +592,7 @@ vty_init(&g_vty_info); logging_vty_add_cmds(); ctrl_vty_init(tall_trx_ctx); + osmo_cpu_sched_vty_init(tall_trx_ctx); trx_vty_init(g_trx_ctx); osmo_talloc_vty_add_cmds(); diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp index adc2ee7..64a6f21 100644 --- a/Transceiver52M/radioInterface.cpp +++ b/Transceiver52M/radioInterface.cpp @@ -27,6 +27,9 @@ #include <Threads.h> extern "C" { +#include <osmocom/core/utils.h> +#include <osmocom/vty/cpu_sched_vty.h> + #include "convert.h" } @@ -171,6 +174,7 @@ void *AlignRadioServiceLoopAdapter(RadioInterface *radioInterface) { set_selfthread_name("AlignRadio"); + OSMO_ASSERT(osmo_cpu_sched_vty_apply_localthread() == 0); while (1) { sleep(60); radioInterface->alignRadio(); diff --git a/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg index 6d787f6..ae55efe 100644 --- a/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg +++ b/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg @@ -9,13 +9,14 @@ line vty no login ! +cpu-sched + policy rr 18 trx bind-ip 127.0.0.1 remote-ip 127.0.0.1 egprs disable tx-sps 4 rx-sps 4 - rt-prio 18 chan 0 tx-path BAND1 rx-path LNAW diff --git a/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg index 6d787f6..ae55efe 100644 --- a/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg +++ b/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg @@ -9,13 +9,14 @@ line vty no login ! +cpu-sched + policy rr 18 trx bind-ip 127.0.0.1 remote-ip 127.0.0.1 egprs disable tx-sps 4 rx-sps 4 - rt-prio 18 chan 0 tx-path BAND1 rx-path LNAW diff --git a/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg index 2e45da9..1468e93 100644 --- a/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg +++ b/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg @@ -9,6 +9,8 @@ line vty no login ! +cpu-sched + policy rr 18 trx bind-ip 127.0.0.1 remote-ip 127.0.0.1 @@ -17,6 +19,5 @@ tx-sps 4 rx-sps 4 rssi-offset 38 - rt-prio 18 chan 0 chan 1 diff --git a/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg index 1ecaec2..a924122 100644 --- a/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg +++ b/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg @@ -9,6 +9,8 @@ line vty no login ! +cpu-sched + policy rr 18 trx bind-ip 127.0.0.1 remote-ip 127.0.0.1 @@ -19,6 +21,4 @@ tx-sps 4 rx-sps 4 clock-ref external - rt-prio 18 chan 0 - diff --git a/doc/manuals/osmotrx-usermanual.adoc b/doc/manuals/osmotrx-usermanual.adoc index a17a899..2d1caad 100644 --- a/doc/manuals/osmotrx-usermanual.adoc +++ b/doc/manuals/osmotrx-usermanual.adoc @@ -31,6 +31,8 @@ include::{srcdir}/chapters/code-architecture.adoc[] +include::./common/chapters/vty_cpu_sched.adoc[] + include::./common/chapters/trx_if.adoc[] include::./common/chapters/port_numbers.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3798603779b88ea37da03033cf7737a6e4751d6e Gerrit-Change-Number: 19445 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200810/6ddc3ba2/attachment.htm>