diff options
author | Juergen Gross <jgross@suse.com> | 2025-02-11 13:16:28 +0300 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2025-02-13 14:48:57 +0300 |
commit | e93ec87286bd1fd30b7389e7a387cfb259f297e3 (patch) | |
tree | 4be7675a411a043b5dd5826f56ed943b43a960e6 /tools/perf/scripts/python/export-to-sqlite.py | |
parent | 85fcb57c983f423180ba6ec5d0034242da05cc54 (diff) | |
download | linux-e93ec87286bd1fd30b7389e7a387cfb259f297e3.tar.xz |
x86/xen: allow larger contiguous memory regions in PV guests
Today a PV guest (including dom0) can create 2MB contiguous memory
regions for DMA buffers at max. This has led to problems at least
with the megaraid_sas driver, which wants to allocate a 2.3MB DMA
buffer.
The limiting factor is the frame array used to do the hypercall for
making the memory contiguous, which has 512 entries and is just a
static array in mmu_pv.c.
In order to not waste memory for non-PV guests, put the initial
frame array into .init.data section and dynamically allocate an array
from the .init_after_bootmem hook of PV guests.
In case a contiguous memory area larger than the initially supported
2MB is requested, allocate a larger buffer for the frame list. Note
that such an allocation is tried only after memory management has been
initialized properly, which is tested via a flag being set in the
.init_after_bootmem hook.
Fixes: 9f40ec84a797 ("xen/swiotlb: add alignment check for dma buffers")
Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Alan Robinson <Alan.Robinson@fujitsu.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions