[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/3] backends/hostmem: Fix support of memory-backend-memfd
From: |
David Hildenbrand |
Subject: |
Re: [PATCH v2 1/3] backends/hostmem: Fix support of memory-backend-memfd in qemu_maxrampagesize() |
Date: |
Wed, 10 Aug 2022 14:59:31 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
On 10.08.22 14:57, Thomas Huth wrote:
> It is currently not possible yet to use "memory-backend-memfd" on s390x
> with hugepages enabled. This problem is caused by qemu_maxrampagesize()
> not taking memory-backend-memfd objects into account yet, so the code
> in s390_memory_init() fails to enable the huge page support there via
> s390_set_max_pagesize(). Fix it by generalizing the code, so that it
> looks at qemu_ram_pagesize(memdev->mr.ram_block) instead of re-trying
> to get the information from the filesystem.
>
> Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2116496
> Suggested-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> backends/hostmem.c | 14 ++------------
> 1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/backends/hostmem.c b/backends/hostmem.c
> index 624bb7ecd3..4428e06738 100644
> --- a/backends/hostmem.c
> +++ b/backends/hostmem.c
> @@ -306,22 +306,12 @@ bool host_memory_backend_is_mapped(HostMemoryBackend
> *backend)
> return backend->is_mapped;
> }
>
> -#ifdef __linux__
> size_t host_memory_backend_pagesize(HostMemoryBackend *memdev)
> {
> - Object *obj = OBJECT(memdev);
> - char *path = object_property_get_str(obj, "mem-path", NULL);
> - size_t pagesize = qemu_mempath_getpagesize(path);
> -
> - g_free(path);
> + size_t pagesize = qemu_ram_pagesize(memdev->mr.ram_block);
> + g_assert(pagesize >= qemu_real_host_page_size());
> return pagesize;
> }
> -#else
> -size_t host_memory_backend_pagesize(HostMemoryBackend *memdev)
> -{
> - return qemu_real_host_page_size();
> -}
> -#endif
>
> static void
> host_memory_backend_memory_complete(UserCreatable *uc, Error **errp)
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Thanks,
David / dhildenb
- [PATCH v2 0/3] Fix hugepages with memfd on s390x and clean up related code, Thomas Huth, 2022/08/10
- [PATCH v2 3/3] util/mmap-alloc: Remove qemu_mempath_getpagesize(), Thomas Huth, 2022/08/10
- [PATCH v2 1/3] backends/hostmem: Fix support of memory-backend-memfd in qemu_maxrampagesize(), Thomas Huth, 2022/08/10
- [PATCH v2 2/3] softmmu/physmem: Remove the ifdef __linux__ around the pagesize functions, Thomas Huth, 2022/08/10
- Re: [PATCH v2 0/3] Fix hugepages with memfd on s390x and clean up related code, Claudio Imbrenda, 2022/08/10
- Re: [PATCH v2 0/3] Fix hugepages with memfd on s390x and clean up related code, Thomas Huth, 2022/08/26