In LinuxOnLinux, the guest is just another linux process (or
rather, one per virtual CPU). So what this patch does is allow such a
garden-variety process to have more than one address space and switch
between them.2
Essentially what I'm doing is treating the standard linux VM as a huge
software-loaded TLB. When the guest gets a TLB miss, the VMM calls
mmap() to insert the translation. Without the patch the address
space has to be remapped on every guest context switch. The patch
adds address-space IDs to make that unnecessary.
What I'm wondering is if there are any *other* uses for this (not just
virtualisation). I know qemu uses mmap() to create its address
spaces if CONFIG_SOFTMMU is not defined, and could thus benefit.
--
Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au
http://www.ertos.nicta.com.au ERTOS within National ICT Australia