[PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs

Xiaoyao Li posted 1 patch 3 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250721065220.895606-1-xiaoyao.li@intel.com
Maintainers: David Hildenbrand <david@redhat.com>, Igor Mammedov <imammedo@redhat.com>
backends/hostmem-shm.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Xiaoyao Li 3 months, 3 weeks ago
shm can surely serve as the shared memory for coco-VMs. But currently it
doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
require private mmeory.

Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
allow shm memory backend serve as shared memory for coco-VMs.

cc: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
---
 backends/hostmem-shm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
index f66211a2ec92..806e2670e039 100644
--- a/backends/hostmem-shm.c
+++ b/backends/hostmem-shm.c
@@ -54,6 +54,7 @@ have_fd:
     /* Let's do the same as memory-backend-ram,share=on would do. */
     ram_flags = RAM_SHARED;
     ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
+    ram_flags |= backend->guest_memfd ? RAM_GUEST_MEMFD : 0;
 
     return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend),
                                               backend_name, backend->size,
-- 
2.43.0
Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Xiaoyao Li 3 months ago
On 7/21/2025 2:52 PM, Xiaoyao Li wrote:
> shm can surely serve as the shared memory for coco-VMs. But currently it
> doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
> flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
> require private mmeory.
> 
> Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
> allow shm memory backend serve as shared memory for coco-VMs.

ping...

Paolo, will you merge it for QEMU 10.1? I think it's worth it.

> cc: Stefano Garzarella <sgarzare@redhat.com>
> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> ---
>   backends/hostmem-shm.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
> index f66211a2ec92..806e2670e039 100644
> --- a/backends/hostmem-shm.c
> +++ b/backends/hostmem-shm.c
> @@ -54,6 +54,7 @@ have_fd:
>       /* Let's do the same as memory-backend-ram,share=on would do. */
>       ram_flags = RAM_SHARED;
>       ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
> +    ram_flags |= backend->guest_memfd ? RAM_GUEST_MEMFD : 0;
>   
>       return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend),
>                                                 backend_name, backend->size,
Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Xiaoyao Li 2 months ago
On 8/14/2025 5:45 PM, Xiaoyao Li wrote:
> On 7/21/2025 2:52 PM, Xiaoyao Li wrote:
>> shm can surely serve as the shared memory for coco-VMs. But currently it
>> doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
>> flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
>> require private mmeory.
>>
>> Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
>> allow shm memory backend serve as shared memory for coco-VMs.
> 
> ping...
> 
> Paolo, will you merge it for QEMU 10.1? I think it's worth it.

ping again.

>> cc: Stefano Garzarella <sgarzare@redhat.com>
>> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>> ---
>>   backends/hostmem-shm.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
>> index f66211a2ec92..806e2670e039 100644
>> --- a/backends/hostmem-shm.c
>> +++ b/backends/hostmem-shm.c
>> @@ -54,6 +54,7 @@ have_fd:
>>       /* Let's do the same as memory-backend-ram,share=on would do. */
>>       ram_flags = RAM_SHARED;
>>       ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
>> +    ram_flags |= backend->guest_memfd ? RAM_GUEST_MEMFD : 0;
>>       return memory_region_init_ram_from_fd(&backend->mr, 
>> OBJECT(backend),
>>                                                 backend_name, backend- 
>> >size,
> 
> 


Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Xiaoyao Li 3 weeks, 1 day ago
On 9/12/2025 1:45 PM, Xiaoyao Li wrote:
> On 8/14/2025 5:45 PM, Xiaoyao Li wrote:
>> On 7/21/2025 2:52 PM, Xiaoyao Li wrote:
>>> shm can surely serve as the shared memory for coco-VMs. But currently it
>>> doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
>>> flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
>>> require private mmeory.
>>>
>>> Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
>>> allow shm memory backend serve as shared memory for coco-VMs.
>>
>> ping...
>>
>> Paolo, will you merge it for QEMU 10.1? I think it's worth it.
> 
> ping again.

ping++,

+ Peter,

Maybe you can queue it in case it gets missed from Paolo again?

>>> cc: Stefano Garzarella <sgarzare@redhat.com>
>>> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>>> ---
>>>   backends/hostmem-shm.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
>>> index f66211a2ec92..806e2670e039 100644
>>> --- a/backends/hostmem-shm.c
>>> +++ b/backends/hostmem-shm.c
>>> @@ -54,6 +54,7 @@ have_fd:
>>>       /* Let's do the same as memory-backend-ram,share=on would do. */
>>>       ram_flags = RAM_SHARED;
>>>       ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
>>> +    ram_flags |= backend->guest_memfd ? RAM_GUEST_MEMFD : 0;
>>>       return memory_region_init_ram_from_fd(&backend->mr, 
>>> OBJECT(backend),
>>>                                                 backend_name, 
>>> backend- >size,
>>
>>
> 
> 


Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Peter Xu 3 weeks ago
On Fri, Oct 24, 2025 at 08:51:35AM +0800, Xiaoyao Li wrote:
> On 9/12/2025 1:45 PM, Xiaoyao Li wrote:
> > On 8/14/2025 5:45 PM, Xiaoyao Li wrote:
> > > On 7/21/2025 2:52 PM, Xiaoyao Li wrote:
> > > > shm can surely serve as the shared memory for coco-VMs. But currently it
> > > > doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
> > > > flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
> > > > require private mmeory.
> > > > 
> > > > Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
> > > > allow shm memory backend serve as shared memory for coco-VMs.
> > > 
> > > ping...
> > > 
> > > Paolo, will you merge it for QEMU 10.1? I think it's worth it.
> > 
> > ping again.
> 
> ping++,
> 
> + Peter,
> 
> Maybe you can queue it in case it gets missed from Paolo again?

Yep, queued now and I copied stable, let me know otherwise.  Thanks.

-- 
Peter Xu
Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by David Hildenbrand 3 months, 3 weeks ago
On 21.07.25 08:52, Xiaoyao Li wrote:
> shm can surely serve as the shared memory for coco-VMs. But currently it
> doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
> flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
> require private mmeory.
> 
> Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
> allow shm memory backend serve as shared memory for coco-VMs.
> 
> cc: Stefano Garzarella <sgarzare@redhat.com>
> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers,

David / dhildenb
Re: [PATCH] hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs
Posted by Stefano Garzarella 3 months, 3 weeks ago
On Mon, Jul 21, 2025 at 02:52:20PM +0800, Xiaoyao Li wrote:
>shm can surely serve as the shared memory for coco-VMs. But currently it
>doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
>flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
>require private mmeory.
>
>Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
>allow shm memory backend serve as shared memory for coco-VMs.
>
>cc: Stefano Garzarella <sgarzare@redhat.com>
>Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>---
> backends/hostmem-shm.c | 1 +
> 1 file changed, 1 insertion(+)

LGTM!

Acked-by: Stefano Garzarella <sgarzare@redhat.com>

Thanks,
Stefano

>
>diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
>index f66211a2ec92..806e2670e039 100644
>--- a/backends/hostmem-shm.c
>+++ b/backends/hostmem-shm.c
>@@ -54,6 +54,7 @@ have_fd:
>     /* Let's do the same as memory-backend-ram,share=on would do. */
>     ram_flags = RAM_SHARED;
>     ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
>+    ram_flags |= backend->guest_memfd ? RAM_GUEST_MEMFD : 0;
>
>     return memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend),
>                                               backend_name, backend->size,
>-- 
>2.43.0
>