[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] oslib-posix: check for posix_memalign in config
From: |
Kamil Rytarowski |
Subject: |
Re: [Qemu-devel] [PATCH] oslib-posix: check for posix_memalign in configure script |
Date: |
Fri, 5 Jan 2018 15:14:04 +0100 |
User-agent: |
Mozilla/5.0 (X11; NetBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 04.01.2018 18:39, Andreas Gustafsson wrote:
> Check for the presence of posix_memalign() in the configure script,
> not using "defined(_POSIX_C_SOURCE) && !defined(__sun__)". This
> lets qemu use posix_memalign() on NetBSD versions that have it,
> instead of falling back to valloc() which is wasteful when the
> required alignment is smaller than a page.
>
> Signed-off-by: Andreas Gustafsson <address@hidden>
Reviewed-by: Kamil Rytarowski <address@hidden>
> ---
> configure | 19 +++++++++++++++++++
> util/oslib-posix.c | 2 +-
> 2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 100309c33f..9f8580332a 100755
> --- a/configure
> +++ b/configure
> @@ -4573,6 +4573,21 @@ if compile_prog "" "" ; then
> posix_madvise=yes
> fi
>
> +##########################################
> +# check if we have posix_memalign()
> +
> +posix_memalign=no
> +cat > $TMPC << EOF
> +#include <stdlib.h>
> +int main(void) {
> + void *p;
> + return posix_memalign(&p, 8, 8);
> +}
> +EOF
> +if compile_prog "" "" ; then
> + posix_memalign=yes
> +fi
> +
> ##########################################
> # check if we have posix_syslog
>
> @@ -5542,6 +5557,7 @@ echo "preadv support $preadv"
> echo "fdatasync $fdatasync"
> echo "madvise $madvise"
> echo "posix_madvise $posix_madvise"
> +echo "posix_memalign $posix_memalign"
> echo "libcap-ng support $cap_ng"
> echo "vhost-net support $vhost_net"
> echo "vhost-scsi support $vhost_scsi"
> @@ -6015,6 +6031,9 @@ fi
> if test "$posix_madvise" = "yes" ; then
> echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
> fi
> +if test "$posix_memalign" = "yes" ; then
> + echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
> +fi
>
> if test "$spice" = "yes" ; then
> echo "CONFIG_SPICE=y" >> $config_host_mak
> diff --git a/util/oslib-posix.c b/util/oslib-posix.c
> index 77369c92ce..4655bc1f89 100644
> --- a/util/oslib-posix.c
> +++ b/util/oslib-posix.c
> @@ -105,7 +105,7 @@ void *qemu_try_memalign(size_t alignment, size_t size)
> alignment = sizeof(void*);
> }
>
> -#if defined(_POSIX_C_SOURCE) && !defined(__sun__)
> +#if defined(CONFIG_POSIX_MEMALIGN)
> int ret;
> ret = posix_memalign(&ptr, alignment, size);
> if (ret != 0) {
>
signature.asc
Description: OpenPGP digital signature