[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: |
Haozhong Zhang |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/3] util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap() |
Date: |
Thu, 25 Jan 2018 08:14:22 +0800 |
User-agent: |
NeoMutt/20171027 |
On 01/24/18 22:20 +0200, Michael S. Tsirkin wrote:
> > 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?
Yes. Some patches on my hands are going to add another field to this
function, so let's switch to flags.
>
> > 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.
>
Sure, I'll move it to a new file include/standard-headers/linux/mman.h.
Thanks,
Haozhong