I want to support 57 virtual address bits (for 5 page table levels), and such a change could easily support 39 too. We'll need to make the bit range allocation dynamic, allocate just enough bits for memory per shard and just enough bits for the number of shards (can support >256 shards this way) and store the masks and shifts in globals instead of constants.
Quoting Avi from scylladb/scylladb#13712