diff --git a/aos/events/shm_event_loop.cc b/aos/events/shm_event_loop.cc
index e696f36..0f933f9 100644
--- a/aos/events/shm_event_loop.cc
+++ b/aos/events/shm_event_loop.cc
@@ -103,19 +103,20 @@
 
  private:
   void MkdirP(std::string_view path) {
-    struct stat st;
     auto last_slash_pos = path.find_last_of("/");
 
     std::string folder(last_slash_pos == std::string_view::npos
                            ? std::string_view("")
                            : path.substr(0, last_slash_pos));
-    if (stat(folder.c_str(), &st) == -1) {
-      PCHECK(errno == ENOENT);
-      CHECK_NE(folder, "") << ": Base path doesn't exist";
-      MkdirP(folder);
-      VLOG(1) << "Creating " << folder;
-      PCHECK(mkdir(folder.c_str(), FLAGS_permissions) == 0);
+    if (folder.empty()) return;
+    MkdirP(folder);
+    VLOG(1) << "Creating " << folder;
+    const int result = mkdir(folder.c_str(), FLAGS_permissions);
+    if (result == -1 && errno == EEXIST) {
+      VLOG(1) << "Already exists";
+      return;
     }
+    PCHECK(result == 0) << ": Error creating " << folder;
   }
 
   ipc_lib::LocklessQueueConfiguration config_;
diff --git a/aos/ipc_lib/lockless_queue.cc b/aos/ipc_lib/lockless_queue.cc
index 0c87e4d..3fb506b 100644
--- a/aos/ipc_lib/lockless_queue.cc
+++ b/aos/ipc_lib/lockless_queue.cc
@@ -239,6 +239,12 @@
 
 }  // namespace
 
+size_t LocklessQueueConfiguration::message_size() const {
+  // Round up the message size so following data is aligned appropriately.
+  return LocklessQueueMemory::AlignmentRoundUp(message_data_size) +
+         sizeof(Message);
+}
+
 size_t LocklessQueueMemorySize(LocklessQueueConfiguration config) {
   // Round up the message size so following data is aligned appropriately.
   config.message_data_size =
@@ -278,8 +284,7 @@
     memory->config.num_watchers = config.num_watchers;
     memory->config.num_senders = config.num_senders;
     memory->config.queue_size = config.queue_size;
-    memory->config.message_data_size =
-        LocklessQueueMemory::AlignmentRoundUp(config.message_data_size);
+    memory->config.message_data_size = config.message_data_size;
 
     const size_t num_messages = memory->num_messages();
     // There need to be at most MaxMessages() messages allocated.
diff --git a/aos/ipc_lib/lockless_queue.h b/aos/ipc_lib/lockless_queue.h
index 4a8523b..d539386 100644
--- a/aos/ipc_lib/lockless_queue.h
+++ b/aos/ipc_lib/lockless_queue.h
@@ -83,7 +83,7 @@
   // Size in bytes of the data stored in each Message.
   size_t message_data_size;
 
-  size_t message_size() const { return message_data_size + sizeof(Message); }
+  size_t message_size() const;
 
   size_t num_messages() const { return num_senders + queue_size; }
 };
