[libvirt] [PATCH] qemu: Make sure shmem memory is shared

lhuang lhuang at redhat.com
Thu Nov 10 08:57:10 UTC 2016


I have test this patch, and it works well.

After this patch, Libvirt can generate share=yes in ivshmem-plain memory 
backend command line:

# ps aux|grep r7
...
-object 
memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/my_shmem1,size=4194304,share=yes 
-device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,bus=pci.0,addr=0x7
...

BR,
Luyao

On 11/10/2016 03:32 PM, Martin Kletzander wrote:
> Even though using /dev/shm/asdf as the backend, we still need to make
> the mapping shared.  The original patch forgot to add that parameter.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1392031
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>   src/qemu/qemu_command.c                                       | 1 +
>   tests/qemuxml2argvdata/qemuxml2argv-shmem-plain-doorbell.args | 6 +++---
>   2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index caa80e74c26a..d3f99d34c67f 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -8565,6 +8565,7 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem)
>       virJSONValueObjectCreate(&ret,
>                                "s:mem-path", mem_path,
>                                "U:size", shmem->size,
> +                             "b:share", true,
>                                NULL);
>
>       VIR_FREE(mem_path);
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-shmem-plain-doorbell.args b/tests/qemuxml2argvdata/qemuxml2argv-shmem-plain-doorbell.args
> index 7abc7f8c4be5..688b7c7f63e2 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-shmem-plain-doorbell.args
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-shmem-plain-doorbell.args
> @@ -18,13 +18,13 @@ QEMU_AUDIO_DRV=none \
>   -boot c \
>   -usb \
>   -object memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/shmem0,\
> -size=4194304 \
> +size=4194304,share=yes \
>   -device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,bus=pci.0,addr=0x3 \
>   -object memory-backend-file,id=shmmem-shmem1,mem-path=/dev/shm/shmem1,\
> -size=134217728 \
> +size=134217728,share=yes \
>   -device ivshmem-plain,id=shmem1,memdev=shmmem-shmem1,bus=pci.0,addr=0x5 \
>   -object memory-backend-file,id=shmmem-shmem2,mem-path=/dev/shm/shmem2,\
> -size=268435456 \
> +size=268435456,share=yes \
>   -device ivshmem-plain,id=shmem2,memdev=shmmem-shmem2,bus=pci.0,addr=0x4 \
>   -device ivshmem-doorbell,id=shmem3,chardev=charshmem3,ioeventfd=on,bus=pci.0,\
>   addr=0x6 \




More information about the libvir-list mailing list