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"
       ]