diff --git a/src/FileDmaInputFilter.cc b/src/FileDmaInputFilter.cc
index 5b86004f8d3379568d2f0a210ee3c399706b0bc5..f020376e01710694499949ca1b27577bfc580552 100644
--- a/src/FileDmaInputFilter.cc
+++ b/src/FileDmaInputFilter.cc
@@ -17,6 +17,9 @@
 
 #define DAX_INPUT 1
 
+constexpr size_t DAX_LENGTH = 16777216;
+constexpr size_t DAX_OFFSET = 16777216;
+
 FileDmaInputFilter::FileDmaInputFilter(const std::string &filename, size_t packetBufferSize,
                                        size_t nbPacketBuffers, ctrl &control)
     : InputFilter(packetBufferSize, nbPacketBuffers, control) {
@@ -31,8 +34,8 @@ FileDmaInputFilter::FileDmaInputFilter(const std::string &filename, size_t packe
     std::cout << "File descriptor = " << std::to_string(f_descriptor_) << std::endl;
   }
 
-  uint32_t const length = 4096 * 4096 * 1000;  // Multiple of page size
-  uint32_t const offset = 4096 * 4096;
+  uint32_t const length = DAX_LENGTH;  // Multiple of page size
+  uint32_t const offset = DAX_OFFSET;
   mmap_buffer_ =
       reinterpret_cast<char *>(mmap(NULL, length, PROT_READ, MAP_SHARED, f_descriptor_, offset));
 
@@ -54,8 +57,7 @@ FileDmaInputFilter::FileDmaInputFilter(const std::string &filename, size_t packe
 
 FileDmaInputFilter::~FileDmaInputFilter() {
   fclose(inputFile);
-  uint32_t length = 4096 * 4096 * 1000;  // Multiple of page size
-  munmap(mmap_buffer_, length);
+  munmap(mmap_buffer_, DAX_LENGTH);
   LOG(TRACE) << "Destroyed file input filter";
 }
 
@@ -120,6 +122,8 @@ static inline ssize_t read_dma_packet_buffer(char *src_buf, char *dst_buf, size_
   size_t bytes_read = 0;
   const size_t align_by = 32;
   assert(size % align_by == 0);
+  std::cout << "read_dma_packet_buffer: reading up to " << std::to_string(size) << " bytes."
+            << std::endl;
 
   static constexpr uint64_t deadbeef = 0xdeadbeefdeadbeefL;
 
@@ -128,11 +132,17 @@ static inline ssize_t read_dma_packet_buffer(char *src_buf, char *dst_buf, size_
     memcpy(dst_buf + bytes_read, src_buf + bytes_read, align_by);
     // Must find end of packet ('deadbeef') within the destination buffer's allocated space
     if (*(uint64_t *)(src_buf + bytes_read) == deadbeef) {
+      std::cout << "Found deadbeef after " << std::to_string(bytes_read) << " bytes." << std::endl;
       return static_cast<ssize_t>(bytes_read + align_by);
     }
     bytes_read += align_by;
   }
 
+  if (bytes_read == size) {
+    std::cout << "Filled buffer but no deadbeef" << std::endl;
+    //    return static_cast<ssize_t>(bytes_read);
+  }
+
   // We are here because the packet cannot fit into the buffer
   throw std::runtime_error("Packet is too big and cannot fit into preallocated memory");
   return -1;
@@ -145,10 +155,11 @@ inline ssize_t FileDmaInputFilter::readPacket(char **buffer, ssize_t bufferSize)
 
 #if DAX_INPUT == 1
   // bufferSize must be multiple of page size
+  std::cout << "Current mmap offset: " << std::to_string(mmap_offset_) << " out of "
+            << std::to_string(DAX_LENGTH) << std::endl;
   bytesRead = read_dma_packet_buffer(mmap_buffer_ + mmap_offset_, *buffer, bufferSize);
   mmap_offset_ += bytesRead;
-
-  std::cout << "Bytes read : " << std::to_string(bytesRead) << std::endl;
+  std::cout << "Bytes read: " << std::to_string(bytesRead) << std::endl;
 
   //  void *buffer = mmap(NULL, bufferSize, PROT_READ, MAP_PRIVATE, f_descriptor_, offset);
   //