All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabrice Bellard <fabrice-+Yn2HnRVxb5AfugRpC6u6w@public.gmane.org>
To: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org,
	Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
	Paul Brook <paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
Subject: Re: [PATCH 1/6] Use correct types to enable > 2G support
Date: Fri, 01 Feb 2008 11:26:15 +0100	[thread overview]
Message-ID: <47A2F3C7.6060409@bellard.org> (raw)
In-Reply-To: <1201818980-27534-2-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>

Anthony Liguori wrote:
> KVM supports more than 2GB of memory for x86_64 hosts.  The following patch
> fixes a number of type related issues where int's were being used when they
> shouldn't have been.  It also introduces CMOS support so the BIOS can build
> the appropriate e820 tables.

 > [...]
> +    /* above 4giga memory allocation */
> +    if (above_4g_mem_size > 0) {
> +        ram_addr = qemu_ram_alloc(above_4g_mem_size);
> +        cpu_register_physical_memory(0x100000000, above_4g_mem_size, ram_addr);
> +    }
> +

Why do you need this ? All the RAM can be registered with a single call. 
  I fear you need to do that because of KVM RAM handling limitations.

> Index: qemu/osdep.c
> ===================================================================
> --- qemu.orig/osdep.c	2008-01-30 13:47:00.000000000 -0600
> +++ qemu/osdep.c	2008-01-30 13:47:31.000000000 -0600
> @@ -113,7 +113,7 @@
>              int64_t free_space;
>              int ram_mb;
>  
> -            extern int ram_size;
> +            extern int64_t ram_size;
>              free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;
>              if ((ram_size + 8192 * 1024) >= free_space) {
>                  ram_mb = (ram_size / (1024 * 1024));
> @@ -202,7 +202,7 @@
>  #ifdef _BSD
>      return valloc(size);
>  #else
> -    return memalign(4096, size);
> +    return memalign(TARGET_PAGE_SIZE, size);
>  #endif
>  }

No fully correct because it is intended to be the host page size.

> +extern int64_t ram_size;

I agree with the fact that ram_size should be 64 bit. Maybe each machine 
could test the value and emit an error message if it is too big. Maybe 
an uint64_t would be better though.

Fabrice.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

WARNING: multiple messages have this Message-ID (diff)
From: Fabrice Bellard <fabrice@bellard.org>
To: Anthony Liguori <aliguori@us.ibm.com>
Cc: kvm-devel@lists.sourceforge.net, qemu-devel@nongnu.org,
	Paul Brook <paul@codesourcery.com>
Subject: [Qemu-devel] Re: [PATCH 1/6] Use correct types to enable > 2G support
Date: Fri, 01 Feb 2008 11:26:15 +0100	[thread overview]
Message-ID: <47A2F3C7.6060409@bellard.org> (raw)
In-Reply-To: <1201818980-27534-2-git-send-email-aliguori@us.ibm.com>

Anthony Liguori wrote:
> KVM supports more than 2GB of memory for x86_64 hosts.  The following patch
> fixes a number of type related issues where int's were being used when they
> shouldn't have been.  It also introduces CMOS support so the BIOS can build
> the appropriate e820 tables.

 > [...]
> +    /* above 4giga memory allocation */
> +    if (above_4g_mem_size > 0) {
> +        ram_addr = qemu_ram_alloc(above_4g_mem_size);
> +        cpu_register_physical_memory(0x100000000, above_4g_mem_size, ram_addr);
> +    }
> +

Why do you need this ? All the RAM can be registered with a single call. 
  I fear you need to do that because of KVM RAM handling limitations.

> Index: qemu/osdep.c
> ===================================================================
> --- qemu.orig/osdep.c	2008-01-30 13:47:00.000000000 -0600
> +++ qemu/osdep.c	2008-01-30 13:47:31.000000000 -0600
> @@ -113,7 +113,7 @@
>              int64_t free_space;
>              int ram_mb;
>  
> -            extern int ram_size;
> +            extern int64_t ram_size;
>              free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;
>              if ((ram_size + 8192 * 1024) >= free_space) {
>                  ram_mb = (ram_size / (1024 * 1024));
> @@ -202,7 +202,7 @@
>  #ifdef _BSD
>      return valloc(size);
>  #else
> -    return memalign(4096, size);
> +    return memalign(TARGET_PAGE_SIZE, size);
>  #endif
>  }

No fully correct because it is intended to be the host page size.

> +extern int64_t ram_size;

I agree with the fact that ram_size should be 64 bit. Maybe each machine 
could test the value and emit an error message if it is too big. Maybe 
an uint64_t would be better though.

Fabrice.

  parent reply	other threads:[~2008-02-01 10:26 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-31 22:36 [PATCH 0/6] Support for the Kernel Virtual Machine interface Anthony Liguori
2008-01-31 22:36 ` [Qemu-devel] " Anthony Liguori
     [not found] ` <1201818980-27534-1-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-31 22:36   ` [PATCH 1/6] Use correct types to enable > 2G support Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
     [not found]     ` <1201818980-27534-2-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-01-31 23:54       ` Paul Brook
2008-01-31 23:54         ` [Qemu-devel] " Paul Brook
     [not found]         ` <200801312354.24382.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
2008-02-01  0:25           ` Anthony Liguori
2008-02-01  0:25             ` [Qemu-devel] " Anthony Liguori
     [not found]             ` <47A26714.4000204-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01  0:37               ` Paul Brook
2008-02-01  0:37                 ` [Qemu-devel] " Paul Brook
     [not found]                 ` <200802010037.30731.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
2008-02-01  0:40                   ` Anthony Liguori
2008-02-01  0:40                     ` [Qemu-devel] " Anthony Liguori
2008-02-01 10:26       ` Fabrice Bellard [this message]
2008-02-01 10:26         ` Fabrice Bellard
     [not found]         ` <47A2F3C7.6060409-+Yn2HnRVxb5AfugRpC6u6w@public.gmane.org>
2008-02-01 14:35           ` Anthony Liguori
2008-02-01 14:35             ` [Qemu-devel] " Anthony Liguori
     [not found]             ` <47A32E40.3000204-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01 15:13               ` Avi Kivity
2008-02-01 15:13                 ` [Qemu-devel] " Avi Kivity
2008-02-01 11:56                 ` Robert William Fuller
2008-02-01 16:09                   ` M. Warner Losh
2008-02-01 16:47                     ` Philip Boulain
2008-02-01 17:35                   ` Jamie Lokier
     [not found]                 ` <47A33721.4020600-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-02-01 15:33                   ` Anthony Liguori
2008-02-01 15:33                     ` [Qemu-devel] Re: [kvm-devel] " Anthony Liguori
     [not found]                     ` <47A33BC6.3060705-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01 15:40                       ` [Qemu-devel] " Ian Jackson
2008-02-01 15:40                         ` [Qemu-devel] Re: [kvm-devel] " Ian Jackson
     [not found]                         ` <18339.15712.411486.395238-msK/Ju9w1zmnROeE8kUsYhEHtJm+Wo+I@public.gmane.org>
2008-02-01 17:53                           ` [Qemu-devel] " Anthony Liguori
2008-02-01 17:53                             ` [kvm-devel] " Anthony Liguori
     [not found]                             ` <47A35C7E.8050309-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2008-02-01 17:57                               ` Daniel P. Berrange
2008-02-01 17:57                                 ` [kvm-devel] " Daniel P. Berrange
     [not found]                                 ` <20080201175750.GD22981-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-02-01 20:31                                   ` Anthony Liguori
2008-02-01 20:31                                     ` [kvm-devel] " Anthony Liguori
2008-02-01 21:33                                     ` [kvm-devel] " Paul Brook
2008-02-01 21:33                                       ` [kvm-devel] [Qemu-devel] " Paul Brook
2008-02-01 16:00               ` Paul Brook
2008-02-01 16:00                 ` [Qemu-devel] " Paul Brook
     [not found]                 ` <200802011600.10877.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
2008-02-01 16:21                   ` Fabrice Bellard
2008-02-01 16:21                     ` [Qemu-devel] " Fabrice Bellard
     [not found]                     ` <47A3471B.7030702-+Yn2HnRVxb5AfugRpC6u6w@public.gmane.org>
2008-02-05 11:34                       ` Ian Jackson
2008-02-05 11:34                         ` Ian Jackson
2008-02-01 17:49                 ` [kvm-devel] " Anthony Liguori
2008-02-01 17:49                   ` [Qemu-devel] " Anthony Liguori
2008-02-03  8:58       ` Izik Eidus
2008-02-03  8:58         ` [Qemu-devel] Re: [kvm-devel] " Izik Eidus
2008-01-31 22:36   ` [PATCH 2/6] SCI fixes Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
2008-01-31 22:36   ` [PATCH 3/6] Fix daemonize options Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
2008-01-31 22:36   ` [PATCH 4/6] Tell BIOS about the number of CPUs Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
     [not found]     ` <1201818980-27534-5-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01  0:14       ` Paul Brook
2008-02-01  0:14         ` [Qemu-devel] " Paul Brook
     [not found]         ` <200802010014.07960.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>
2008-02-01  0:28           ` Anthony Liguori
2008-02-01  0:28             ` [Qemu-devel] " Anthony Liguori
     [not found]             ` <47A26790.6010609-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01  0:40               ` Paul Brook
2008-02-01  0:40                 ` [Qemu-devel] " Paul Brook
2008-01-31 22:36   ` [PATCH 5/6] Refactor option ROM loading Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
2008-01-31 22:36   ` [PATCH 6/6] QEMU support for the Kernel Virtual Machine interface Anthony Liguori
2008-01-31 22:36     ` [Qemu-devel] " Anthony Liguori
     [not found]     ` <1201818980-27534-7-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-02-01  9:49       ` Fabrice Bellard
2008-02-01  9:49         ` [Qemu-devel] " Fabrice Bellard
     [not found]         ` <47A2EB14.8030804-+Yn2HnRVxb5AfugRpC6u6w@public.gmane.org>
2008-02-01 14:18           ` Anthony Liguori
2008-02-01 14:18             ` [Qemu-devel] " Anthony Liguori
2008-01-31 22:53   ` [qemu-devel] [PATCH 0/6] Support " Anthony Liguori
2008-01-31 22:53     ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47A2F3C7.6060409@bellard.org \
    --to=fabrice-+yn2hnrvxb5afugrpc6u6w@public.gmane.org \
    --cc=aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org \
    --cc=qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.