* [PATCH v4 0/2] util/oslib: qemu_try_memalign() improvements @ 2020-10-20 11:17 Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 Philippe Mathieu-Daudé 0 siblings, 2 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-20 11:17 UTC (permalink / raw) To: qemu-devel, Richard Henderson Cc: Paolo Bonzini, Philippe Mathieu-Daudé, Stefan Weil - Use _aligned_malloc for qemu_try_memalign on win32 - Assert qemu_try_memalign() alignment is a power of 2 Supersedes: <20201018164836.1149452-1-richard.henderson@linaro.org> Philippe Mathieu-Daudé (1): util/oslib: Assert qemu_try_memalign() alignment is a power of 2 Richard Henderson (1): util/oslib-win32: Use _aligned_malloc for qemu_try_memalign util/oslib-posix.c | 3 +++ util/oslib-win32.c | 12 +++++------- 2 files changed, 8 insertions(+), 7 deletions(-) -- 2.26.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign 2020-10-20 11:17 [PATCH v4 0/2] util/oslib: qemu_try_memalign() improvements Philippe Mathieu-Daudé @ 2020-10-20 11:17 ` Philippe Mathieu-Daudé 2020-10-20 11:19 ` Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 Philippe Mathieu-Daudé 1 sibling, 1 reply; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-20 11:17 UTC (permalink / raw) To: qemu-devel, Richard Henderson Cc: Paolo Bonzini, Philippe Mathieu-Daudé, Stefan Weil From: Richard Henderson <richard.henderson@linaro.org> We do not need or want to be allocating page sized quanta. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Stefan Weil <sw@weilnetz.de> Message-Id: <20201018164836.1149452-1-richard.henderson@linaro.org> --- util/oslib-win32.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/util/oslib-win32.c b/util/oslib-win32.c index e99debfb8dd..29dd05d59d7 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -39,6 +39,7 @@ #include "trace.h" #include "qemu/sockets.h" #include "qemu/cutils.h" +#include <malloc.h> /* this must come after including "trace.h" */ #include <shlobj.h> @@ -56,10 +57,8 @@ void *qemu_try_memalign(size_t alignment, size_t size) { void *ptr; - if (!size) { - abort(); - } - ptr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE); + g_assert(size != 0); + ptr = _aligned_malloc(alignment, size); trace_qemu_memalign(alignment, size, ptr); return ptr; } @@ -93,9 +92,7 @@ void *qemu_anon_ram_alloc(size_t size, uint64_t *align, bool shared) void qemu_vfree(void *ptr) { trace_qemu_vfree(ptr); - if (ptr) { - VirtualFree(ptr, 0, MEM_RELEASE); - } + _aligned_free(ptr); } void qemu_anon_ram_free(void *ptr, size_t size) -- 2.26.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign 2020-10-20 11:17 ` [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign Philippe Mathieu-Daudé @ 2020-10-20 11:19 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-20 11:19 UTC (permalink / raw) To: qemu-devel, Richard Henderson; +Cc: Paolo Bonzini, Stefan Weil On 10/20/20 1:17 PM, Philippe Mathieu-Daudé wrote: > From: Richard Henderson <richard.henderson@linaro.org> > > We do not need or want to be allocating page sized quanta. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Reviewed-by: Stefan Weil <sw@weilnetz.de> > Message-Id: <20201018164836.1149452-1-richard.henderson@linaro.org> Oops I forgot: Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > util/oslib-win32.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/util/oslib-win32.c b/util/oslib-win32.c > index e99debfb8dd..29dd05d59d7 100644 > --- a/util/oslib-win32.c > +++ b/util/oslib-win32.c > @@ -39,6 +39,7 @@ > #include "trace.h" > #include "qemu/sockets.h" > #include "qemu/cutils.h" > +#include <malloc.h> > > /* this must come after including "trace.h" */ > #include <shlobj.h> > @@ -56,10 +57,8 @@ void *qemu_try_memalign(size_t alignment, size_t size) > { > void *ptr; > > - if (!size) { > - abort(); > - } > - ptr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE); > + g_assert(size != 0); > + ptr = _aligned_malloc(alignment, size); > trace_qemu_memalign(alignment, size, ptr); > return ptr; > } > @@ -93,9 +92,7 @@ void *qemu_anon_ram_alloc(size_t size, uint64_t *align, bool shared) > void qemu_vfree(void *ptr) > { > trace_qemu_vfree(ptr); > - if (ptr) { > - VirtualFree(ptr, 0, MEM_RELEASE); > - } > + _aligned_free(ptr); > } > > void qemu_anon_ram_free(void *ptr, size_t size) > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 2020-10-20 11:17 [PATCH v4 0/2] util/oslib: qemu_try_memalign() improvements Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign Philippe Mathieu-Daudé @ 2020-10-20 11:17 ` Philippe Mathieu-Daudé 2020-10-21 16:01 ` Richard Henderson 1 sibling, 1 reply; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-20 11:17 UTC (permalink / raw) To: qemu-devel, Richard Henderson Cc: Paolo Bonzini, Philippe Mathieu-Daudé, Stefan Weil qemu_try_memalign() expects a power of 2 alignment: - posix_memalign(3): The address of the allocated memory will be a multiple of alignment, which must be a power of two and a multiple of sizeof(void *). - _aligned_malloc() The alignment value, which must be an integer power of 2. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- util/oslib-posix.c | 3 +++ util/oslib-win32.c | 1 + 2 files changed, 4 insertions(+) diff --git a/util/oslib-posix.c b/util/oslib-posix.c index f15234b5c03..9d6451f9239 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -200,6 +200,9 @@ void *qemu_try_memalign(size_t alignment, size_t size) if (alignment < sizeof(void*)) { alignment = sizeof(void*); + } else { + g_assert(QEMU_IS_ALIGNED(alignment, sizeof(void *))); + g_assert(is_power_of_2(alignment)); } #if defined(CONFIG_POSIX_MEMALIGN) diff --git a/util/oslib-win32.c b/util/oslib-win32.c index 29dd05d59d7..72e4ee910ce 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -58,6 +58,7 @@ void *qemu_try_memalign(size_t alignment, size_t size) void *ptr; g_assert(size != 0); + g_assert(is_power_of_2(alignment)); ptr = _aligned_malloc(alignment, size); trace_qemu_memalign(alignment, size, ptr); return ptr; -- 2.26.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 2020-10-20 11:17 ` [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 Philippe Mathieu-Daudé @ 2020-10-21 16:01 ` Richard Henderson 2020-10-21 16:21 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 6+ messages in thread From: Richard Henderson @ 2020-10-21 16:01 UTC (permalink / raw) To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Paolo Bonzini, Stefan Weil On 10/20/20 4:17 AM, Philippe Mathieu-Daudé wrote: > @@ -200,6 +200,9 @@ void *qemu_try_memalign(size_t alignment, size_t size) > > if (alignment < sizeof(void*)) { > alignment = sizeof(void*); > + } else { > + g_assert(QEMU_IS_ALIGNED(alignment, sizeof(void *))); This is redundant with the if above, and the assert below. > + g_assert(is_power_of_2(alignment)); r~ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 2020-10-21 16:01 ` Richard Henderson @ 2020-10-21 16:21 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 6+ messages in thread From: Philippe Mathieu-Daudé @ 2020-10-21 16:21 UTC (permalink / raw) To: Richard Henderson, qemu-devel; +Cc: Paolo Bonzini, Stefan Weil On 10/21/20 6:01 PM, Richard Henderson wrote: > On 10/20/20 4:17 AM, Philippe Mathieu-Daudé wrote: >> @@ -200,6 +200,9 @@ void *qemu_try_memalign(size_t alignment, size_t size) >> >> if (alignment < sizeof(void*)) { >> alignment = sizeof(void*); >> + } else { >> + g_assert(QEMU_IS_ALIGNED(alignment, sizeof(void *))); > > This is redundant with the if above, and the assert below. Indeed, thanks =) > >> + g_assert(is_power_of_2(alignment)); > > > r~ > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-10-21 16:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-10-20 11:17 [PATCH v4 0/2] util/oslib: qemu_try_memalign() improvements Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 1/2] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign Philippe Mathieu-Daudé 2020-10-20 11:19 ` Philippe Mathieu-Daudé 2020-10-20 11:17 ` [PATCH v4 2/2] util/oslib: Assert qemu_try_memalign() alignment is a power of 2 Philippe Mathieu-Daudé 2020-10-21 16:01 ` Richard Henderson 2020-10-21 16:21 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).