exec: separate sections and nodes per address space
commit53cb28cbfea038f8ad50132dc8a684e638c7d48b
authorMarcel Apfelbaum <marcel.a@redhat.com>
Sun, 1 Dec 2013 12:02:23 +0000 (1 14:02 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 11 Dec 2013 18:11:09 +0000 (11 20:11 +0200)
tree6f73450161cf97bab45c89a8d55bd2691e596fcc
parent6307d974f9a28bb6652352f52da97f820427d29d
exec: separate sections and nodes per address space

Every address space has its own nodes and sections, but
it uses the same global arrays of nodes/section.

This limits the number of devices that can be attached
to the guest to 20-30 devices. It happens because:
 - The sections array is limited to 2^12 entries.
 - The main memory has at least 100 sections.
 - Each device address space is actually an alias to
   main memory, multiplying its number of nodes/sections.

Remove the limitation by using separate arrays of
nodes and sections for each address space.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
exec.c