On 17.04.24 11:11, sunil bhargo wrote:
Hi,
We have an application which relies on virtual address to physical
address mapping to remain static. The buffer is allocated using
malloc. It is in user space and we were using the mlock thinking that as
it would prevent the swapping the va->pa address mapping would be
static. But it seems to be a faulty assumption.
If the memory is allocated from huge pages by reserving space upfront at
the kernel boot up and then mmap’ing using MAP_HUGETLB, is it assured
that virtual address to physical mapping won’t be remapped and will be
static ?
Unless you have a kernel that has page migration disabled, no.
You could use secretmem (which is currently not migratabale/swappable/
...), but that has very limited capabilities.
A "hack" would be to register that (ordinary) memory using iouring as a
fixed buffer. That way, it will be longterm pinned and can neither get
migrated nor swapped out.
--
Cheers,
David / dhildenb