┌────────────┐TASK_SIZE
│ │
│ │
│ │mmap VOLATILE
┼────────────┤
│ │
│ │
│ │
│ │
│ │default mmap
│ │
│ │
└────────────┘
VMAs in the volatile region are assigned their own volatile_mmap_lock,
which is independent of the mmap_lock for the non-volatile region.
Additionally, we ensure that no single VMA spans the boundary between
the volatile and non-volatile regions. This separation prevents the
frequent modifications of a small number of volatile VMAs from blocking
other operations on a large number of non-volatile VMAs.
I think really overall this will be solving one can of worms by introducing
another can of very large worms in space :P but perhaps I am missing
details here.
Fully agreed; not a big fan :)
--
Cheers,
David / dhildenb