-
Marcel Apfelbaum authored
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>Marcel Apfelbaum authoredEvery 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>
Loading