[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/3] util/mmap-alloc: support MAP_SYNC in qem
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/3] util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap() |
Date: |
Wed, 24 Jan 2018 22:20:57 +0200 |
> index 50385e3f81..dd5876471f 100644
> --- a/include/qemu/mmap-alloc.h
> +++ b/include/qemu/mmap-alloc.h
> @@ -7,7 +7,8 @@ size_t qemu_fd_getpagesize(int fd);
>
> size_t qemu_mempath_getpagesize(const char *mem_path);
>
> -void *qemu_ram_mmap(int fd, size_t size, size_t align, bool shared);
> +void *qemu_ram_mmap(int fd, size_t size, size_t align, bool shared,
> + OnOffAuto sync);
>
> void qemu_ram_munmap(void *ptr, size_t size);
>
And Marcel plans to add a remappable flag ... Is it time we
switched to a flags field?
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index adb3758275..0ff10cb529 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -372,6 +372,24 @@ void qemu_anon_ram_free(void *ptr, size_t size);
> # define QEMU_VMALLOC_ALIGN getpagesize()
> #endif
>
> +/*
> + * MAP_SHARED_VALIDATE and MAP_SYNC were introduced in Linux kernel
> + * 4.15, so they may not be defined when compiling on older kernels.
> + */
> +#ifdef CONFIG_LINUX
> +#ifndef MAP_SHARED_VALIDATE
> +#define MAP_SHARED_VALIDATE 0x3
> +#endif
> +#ifndef MAP_SYNC
> +#define MAP_SYNC 0x80000
> +#endif
> +#define QEMU_HAS_MAP_SYNC true
> +#else /* !CONFIG_LINUX */
> +#define MAP_SHARED_VALIDATE 0x0
> +#define MAP_SYNC 0x0
> +#define QEMU_HAS_MAP_SYNC false
> +#endif /* CONFIG_LINUX */
> +
> #ifdef CONFIG_POSIX
> struct qemu_signalfd_siginfo {
> uint32_t ssi_signo; /* Signal number */
Please just import this into standard-headers from Linux.