The difference between volatile range and MADV_DONTNEED is that MADV_DONTNEED does not allow to free the memory if one disables overcommit, right? However, if the overcommit is enabled, then AFAICS the only benefit of virtual ranges is that they allow to free page table entries. Are there are other use cases?