Actually @skitt pointed out that mmap defines the offset to be multiples of 4096, not the page_size().