tici: give loggerd rt priority (#21503)

* give loggerd rt priority

* assert

* little more

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 7e2752c878
commatwo_master
Adeeb Shihadeh 4 years ago committed by GitHub
parent fe6ef87073
commit 5c1d1ebe76
  1. 11
      selfdrive/camerad/main.cc
  2. 7
      selfdrive/debug/check_timings.py
  3. 8
      selfdrive/loggerd/loggerd.cc
  4. 2
      selfdrive/loggerd/omx_encoder.h
  5. 11
      selfdrive/modeld/modeld.cc

@ -44,12 +44,11 @@ void party(cl_device_id device_id, cl_context context) {
#endif #endif
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
set_realtime_priority(53); int err;
if (Hardware::EON()) { err = set_realtime_priority(53);
set_core_affinity(2); assert(err == 0);
} else if (Hardware::TICI()) { err = set_core_affinity(Hardware::TICI() ? 6 : 2);
set_core_affinity(6); assert(err == 0);
}
cl_device_id device_id = cl_get_device_id(CL_DEVICE_TYPE_DEFAULT); cl_device_id device_id = cl_get_device_id(CL_DEVICE_TYPE_DEFAULT);

@ -12,13 +12,12 @@ ts = defaultdict(lambda: deque(maxlen=100))
if __name__ == "__main__": if __name__ == "__main__":
while True: while True:
time.sleep(1)
print() print()
for s, sock in socks.items(): for s, sock in socks.items():
msgs = messaging.drain_sock(sock) msgs = messaging.drain_sock(sock)
for m in msgs: for m in msgs:
ts[s].append(m.logMonoTime / 1e6) ts[s].append(m.logMonoTime / 1e6)
if len(ts[s]) == ts[s].maxlen: d = np.diff(ts[s])
d = np.diff(ts[s]) print(f"{s:17} {np.mean(d):.2f} {np.std(d):.2f} {np.max(d):.2f} {np.min(d):.2f}")
print(f"{s:17} {np.mean(d):.2f} {np.std(d):.2f} {np.max(d):.2f} {np.min(d):.2f}")
time.sleep(1)

@ -115,6 +115,14 @@ void encoder_thread(int cam_idx) {
const LogCameraInfo &cam_info = cameras_logged[cam_idx]; const LogCameraInfo &cam_info = cameras_logged[cam_idx];
set_thread_name(cam_info.filename); set_thread_name(cam_info.filename);
if (Hardware::TICI()) {
int err;
err = set_realtime_priority(1);
assert(err == 0);
err = set_core_affinity(3);
assert(err == 0);
}
int cnt = 0, cur_seg = -1; int cnt = 0, cur_seg = -1;
int encode_idx = 0; int encode_idx = 0;
LoggerHandle *lh = NULL; LoggerHandle *lh = NULL;

@ -62,11 +62,11 @@ private:
SafeQueue<OMX_BUFFERHEADERTYPE *> free_in; SafeQueue<OMX_BUFFERHEADERTYPE *> free_in;
SafeQueue<OMX_BUFFERHEADERTYPE *> done_out; SafeQueue<OMX_BUFFERHEADERTYPE *> done_out;
// for qcams
AVFormatContext *ofmt_ctx; AVFormatContext *ofmt_ctx;
AVCodecContext *codec_ctx; AVCodecContext *codec_ctx;
AVStream *out_stream; AVStream *out_stream;
bool remuxing; bool remuxing;
bool downscale; bool downscale;
uint8_t *y_ptr2, *u_ptr2, *v_ptr2; uint8_t *y_ptr2, *u_ptr2, *v_ptr2;
}; };

@ -131,13 +131,12 @@ void run_model(ModelState &model, VisionIpcClient &vipc_client) {
} }
int main(int argc, char **argv) { int main(int argc, char **argv) {
set_realtime_priority(54); int err;
err = set_realtime_priority(54);
assert(err == 0);
err = set_core_affinity(Hardware::EON() ? 2 : 7);
assert(err == 0);
if (Hardware::EON()) {
set_core_affinity(2);
} else if (Hardware::TICI()) {
set_core_affinity(7);
}
bool wide_camera = Hardware::TICI() ? Params().getBool("EnableWideCamera") : false; bool wide_camera = Hardware::TICI() ? Params().getBool("EnableWideCamera") : false;
// start calibration thread // start calibration thread

Loading…
Cancel
Save