Hi Jens, I'm looking for an architecture-level decision on what the brd driver should look like once struct page has been shrunk to a minimal size (more detail at https://kernelnewbies.org/MatthewWilcox/Memdescs ) Currently brd uses page->index as a debugging check. In the memdesc future, struct page has no members (you could store a small amount of information in it, but I'm not willing to commit to more than a few bits). brd doesn't use anything else from struct page, as far as I can tell. It just calls kmap_atomic() / __free_page() / flush_dcache_page() (and it doesn't need to call flush_dcache_page() because you can't mmap the pages in the brd's array). Now if you have plans to, eg, support page migration, you're going to need a bit more infrastructure than just allocating pages, but for what you have at the moment, just removing the debugging checks that page->index == idx would make you entirely compatible with the memdesc future. Any problem with that?