Make the RT priority of message bridge configurable
Helps make the roboRIO forward messages more reliably.
Change-Id: Ibbd7575f7219cb22dc6d6b9fb78c5041e7ac3a89
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/network/message_bridge_client.cc b/aos/network/message_bridge_client.cc
index 891a8a1..61a7271 100644
--- a/aos/network/message_bridge_client.cc
+++ b/aos/network/message_bridge_client.cc
@@ -4,6 +4,7 @@
#include "aos/init.h"
DEFINE_string(config, "config.json", "Path to the config.");
+DEFINE_int32(rt_priority, -1, "If > 0, run as this RT priority");
namespace aos {
namespace message_bridge {
@@ -13,6 +14,9 @@
aos::configuration::ReadConfig(FLAGS_config);
aos::ShmEventLoop event_loop(&config.message());
+ if (FLAGS_rt_priority > 0) {
+ event_loop.SetRuntimeRealtimePriority(FLAGS_rt_priority);
+ }
MessageBridgeClient app(&event_loop);
diff --git a/aos/network/message_bridge_server.cc b/aos/network/message_bridge_server.cc
index ee276d6..9f336c0 100644
--- a/aos/network/message_bridge_server.cc
+++ b/aos/network/message_bridge_server.cc
@@ -5,6 +5,7 @@
#include "glog/logging.h"
DEFINE_string(config, "config.json", "Path to the config.");
+DEFINE_int32(rt_priority, -1, "If > 0, run as this RT priority");
namespace aos {
namespace message_bridge {
@@ -14,6 +15,9 @@
aos::configuration::ReadConfig(FLAGS_config);
aos::ShmEventLoop event_loop(&config.message());
+ if (FLAGS_rt_priority > 0) {
+ event_loop.SetRuntimeRealtimePriority(FLAGS_rt_priority);
+ }
MessageBridgeServer app(&event_loop);
diff --git a/y2020/vision/rootfs/frc971.service b/y2020/vision/rootfs/frc971.service
index e7b8d7c..0066517 100644
--- a/y2020/vision/rootfs/frc971.service
+++ b/y2020/vision/rootfs/frc971.service
@@ -9,6 +9,9 @@
ExecStart=/home/pi/robot_code/starter.sh
KillMode=mixed
TimeoutStopSec=10
+LimitRTPRIO=60
+LimitNICE=-20
+LimitMEMLOCK=infinity
Restart=always
RestartSec=5s
diff --git a/y2020/y2020_roborio.json b/y2020/y2020_roborio.json
index 4cdd035..08dde01 100644
--- a/y2020/y2020_roborio.json
+++ b/y2020/y2020_roborio.json
@@ -382,6 +382,7 @@
{
"name": "message_bridge_client",
"executable_name": "message_bridge_client",
+ "args": ["--rt_priority=5"],
"nodes": [
"roborio"
]
@@ -389,6 +390,7 @@
{
"name": "message_bridge_server",
"executable_name": "message_bridge_server",
+ "args": ["--rt_priority=5"],
"nodes": [
"roborio"
]