[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu.
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu. |
Date: |
Thu, 23 Oct 2008 15:35:45 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
Glauber Costa wrote:
> Signed-off-by: Glauber Costa <address@hidden>
-ENOREASON
What was the original idea behind using a named mem region? Why is it no
longer needed? Maybe I missed that point on the list, but then it would
still be nice-to-have in the changelog.
> ---
> osdep.c | 111
> ---------------------------------------------------------------
> 1 files changed, 0 insertions(+), 111 deletions(-)
>
> diff --git a/osdep.c b/osdep.c
> index 683aad0..31c96e6 100644
> --- a/osdep.c
> +++ b/osdep.c
> @@ -68,112 +68,9 @@ void qemu_vfree(void *ptr)
>
> #else
>
> -#if defined(USE_KQEMU)
> -
> -#ifdef __OpenBSD__
> -#include <sys/param.h>
> -#include <sys/types.h>
> -#include <sys/mount.h>
> -#else
> -#include <sys/vfs.h>
> -#endif
> -
> #include <sys/mman.h>
> #include <fcntl.h>
>
> -static void *kqemu_vmalloc(size_t size)
> -{
> - static int phys_ram_fd = -1;
> - static int phys_ram_size = 0;
> - void *ptr;
> -
> -#ifdef __OpenBSD__ /* no need (?) for a dummy file on OpenBSD */
> - int map_anon = MAP_ANON;
> -#else
> - int map_anon = 0;
> - const char *tmpdir;
> - char phys_ram_file[1024];
> -#ifdef HOST_SOLARIS
> - struct statvfs stfs;
> -#else
> - struct statfs stfs;
> -#endif
> -
> - if (phys_ram_fd < 0) {
> - tmpdir = getenv("QEMU_TMPDIR");
> - if (!tmpdir)
> -#ifdef HOST_SOLARIS
> - tmpdir = "/tmp";
> - if (statvfs(tmpdir, &stfs) == 0) {
> -#else
> - tmpdir = "/dev/shm";
> - if (statfs(tmpdir, &stfs) == 0) {
> -#endif
> - int64_t free_space;
> - int ram_mb;
> -
> - free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;
> - if ((ram_size + 8192 * 1024) >= free_space) {
> - ram_mb = (ram_size / (1024 * 1024));
> - fprintf(stderr,
> - "You do not have enough space in '%s' for the %d MB
> of QEMU virtual RAM.\n",
> - tmpdir, ram_mb);
> - if (strcmp(tmpdir, "/dev/shm") == 0) {
> - fprintf(stderr, "To have more space available provided
> you have enough RAM and swap, do as root:\n"
> - "mount -o remount,size=%dm /dev/shm\n",
> - ram_mb + 16);
> - } else {
> - fprintf(stderr,
> - "Use the '-m' option of QEMU to diminish the
> amount of virtual RAM or use the\n"
> - "QEMU_TMPDIR environment variable to set another
> directory where the QEMU\n"
> - "temporary RAM file will be opened.\n");
> - }
> - fprintf(stderr, "Or disable the accelerator module with
> -no-kqemu\n");
> - exit(1);
> - }
> - }
> - snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX",
> - tmpdir);
> - phys_ram_fd = mkstemp(phys_ram_file);
> - if (phys_ram_fd < 0) {
> - fprintf(stderr,
> - "warning: could not create temporary file in '%s'.\n"
> - "Use QEMU_TMPDIR to select a directory in a tmpfs
> filesystem.\n"
> - "Using '/tmp' as fallback.\n",
> - tmpdir);
> - snprintf(phys_ram_file, sizeof(phys_ram_file), "%s/qemuXXXXXX",
> - "/tmp");
> - phys_ram_fd = mkstemp(phys_ram_file);
> - if (phys_ram_fd < 0) {
> - fprintf(stderr, "Could not create temporary memory file
> '%s'\n",
> - phys_ram_file);
> - exit(1);
> - }
> - }
> - unlink(phys_ram_file);
> - }
> - size = (size + 4095) & ~4095;
> - ftruncate(phys_ram_fd, phys_ram_size + size);
> -#endif /* !__OpenBSD__ */
> - ptr = mmap(NULL,
> - size,
> - PROT_WRITE | PROT_READ, map_anon | MAP_SHARED,
> - phys_ram_fd, phys_ram_size);
> - if (ptr == MAP_FAILED) {
> - fprintf(stderr, "Could not map physical memory\n");
> - exit(1);
> - }
> - phys_ram_size += size;
> - return ptr;
> -}
> -
> -static void kqemu_vfree(void *ptr)
> -{
> - /* may be useful some day, but currently we do not need to free */
> -}
> -
> -#endif
> -
> void *qemu_memalign(size_t alignment, size_t size)
> {
> #if defined(_POSIX_C_SOURCE)
> @@ -193,10 +90,6 @@ void *qemu_memalign(size_t alignment, size_t size)
> /* alloc shared memory pages */
> void *qemu_vmalloc(size_t size)
> {
> -#if defined(USE_KQEMU)
> - if (kqemu_allowed)
> - return kqemu_vmalloc(size);
> -#endif
> #ifdef _BSD
> return valloc(size);
> #else
> @@ -206,10 +99,6 @@ void *qemu_vmalloc(size_t size)
>
> void qemu_vfree(void *ptr)
> {
> -#if defined(USE_KQEMU)
> - if (kqemu_allowed)
> - kqemu_vfree(ptr);
> -#endif
> free(ptr);
> }
>
Jan
--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux
- [Qemu-devel] [PATCH 0/32] New shot at accelerators, Glauber Costa, 2008/10/23
- [Qemu-devel] [PATCH 01/32] use anonymous memory for kqemu., Glauber Costa, 2008/10/23
- [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu.,
Jan Kiszka <=
- [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Anthony Liguori, 2008/10/23
- [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Jan Kiszka, 2008/10/23
- [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Anthony Liguori, 2008/10/23
- Re: [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Leonardo Reiter, 2008/10/23
- Re: [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Leonardo Reiter, 2008/10/23
- Re: [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Andreas Färber, 2008/10/24
- Re: [Qemu-devel] Re: [PATCH 01/32] use anonymous memory for kqemu., Ben Taylor, 2008/10/24
- [Qemu-devel] QEMU on Solaris 10 (was: [PATCH 01/32] use anonymous memory for kqemu.), Andreas Färber, 2008/10/25
- Re: [Qemu-devel] QEMU on Solaris 10 (was: [PATCH 01/32] use anonymous memory for kqemu.), Andreas Färber, 2008/10/25
- Re: [Qemu-devel] QEMU on Solaris 10 (was: [PATCH 01/32] use anonymous memory for kqemu.), Blue Swirl, 2008/10/25