Re: [RFC PATCH 0/5] madvise MADV_DOEXEC

From: Steven Sistare
Date: Fri Jul 31 2020 - 13:56:03 EST


On 7/31/2020 1:48 PM, Jason Gunthorpe wrote:
> On Fri, Jul 31, 2020 at 01:15:34PM -0400, Steven Sistare wrote:
>> On 7/31/2020 12:56 PM, Jason Gunthorpe wrote:
>>> On Fri, Jul 31, 2020 at 12:11:52PM -0400, Steven Sistare wrote:
>>>>> Your preservation-across-exec use-case might or might not need the
>>>>> VMA to be mapped at the same address.
>>>>
>>>> It does. qemu registers memory with vfio which remembers the va's in kernel
>>>> metadata for the device.
>>>
>>> Once the memory is registered with vfio the VA doesn't matter, vfio
>>> will keep the iommu pointing at the same physical pages no matter
>>> where they are mapped.
>>
>> Yes, but there are other code paths that compute and use offsets between va and the
>> base va. Mapping at a different va in the new process breaks vfio; I have tried it.
>
> Maybe you could fix vfio instead of having this adventure, if vfio is
> the only motivation.

Maybe. We still need to preserve an anonymous segment, though. MADV_DOEXEC, or mshare,
or something else. And I think the ability to preserve memory containing pointers to itself
is an interesting use case, though not ours.

- Steve