exec: memory radix tree page level compression
commitb35ba30f8fa235c779d876ee299b80a2d501d204
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 11 Nov 2013 15:52:07 +0000 (11 17:52 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 10 Dec 2013 10:29:56 +0000 (10 12:29 +0200)
tree0ce1086a736149105642e0f3a4f57e37810f8d02
parent97115a8d4500abeb090b968f01605e0bdafcdfd3
exec: memory radix tree page level compression

At the moment, memory radix tree is already variable width, but it can
only skip the low bits of address.

This is efficient if we have huge memory regions but inefficient if we
are only using a tiny portion of the address space.

After we have built up the map, detect
configurations where a single L2 entry is valid.

We then speed up the lookup by skipping one or more levels.
In case any levels were skipped, we might end up in a valid section
instead of erroring out. We handle this by checking that
the address is in range of the resulting section.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
exec.c