All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Paul Brook <paul-qD8j1LwMmJjtCj0u4l0SBw@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>,
	Fabrice Bellard <fabrice-+Yn2HnRVxb5AfugRpC6u6w@public.gmane.org>
Subject: Re: [PATCH 1/6] Use correct types to enable > 2G support
Date: Thu, 31 Jan 2008 18:25:56 -0600	[thread overview]
Message-ID: <47A26714.4000204@us.ibm.com> (raw)
In-Reply-To: <200801312354.24382.paul-qD8j1LwMmJjtCj0u4l0SBw@public.gmane.org>

Paul Brook wrote:
> On Thursday 31 January 2008, 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.
>>     
>
> You've still got a fairly random mix of unsigned long, ram_addr_t and 
> uint64_t.
>   

I wasn't the one that did this work, but we've tested KVM with very 
large amounts of memory (~15GB I believe).  I suspect the changes were 
driven by trial and error.  Perhaps Izik can shed more light on how 
things were changed?

>> -typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size,
>> +typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size,
>>     
>
> This breaks every target except x86.
>
>   

Indeed.  I missed this because it's only a warning since it's just a 
pointer cast.  I'll fix the patch for all the remaining targets.  Thanks!

>> +    if (above_4g_mem_size) {
>> +        rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size >> 16);
>> +        rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size >> 24);
>> +        rtc_set_memory(s, 0x5d, above_4g_mem_size >> 32);
>>     
>
> This will cause warnings on 32-bit hosts.
>   

Yeah, it needs a (uint64_t), I'll update.

>> +#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024 * 1024ULL)
>>     
>
> This seems fairly arbitrary. Why? Any limit is certainly target specific.
>   

On a 32-bit host, a 2GB limit is pretty reasonable since you're limited 
in virtual address space.  On a 64-bit host, there isn't this 
fundamental limit.  If a target may have it's own limit but there is 
definitely a host imposed limit.

2047GBs is a somewhat arbitrary limit though for 64-bit hosts.  If you 
have a more logical suggestion, I'll happily change it.

Regards,

Anthony Liguori


> Paul
>   


-------------------------------------------------------------------------
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: Anthony Liguori <aliguori@us.ibm.com>
To: Paul Brook <paul@codesourcery.com>
Cc: kvm-devel@lists.sourceforge.net, Izik Eidus <izike@qumranet.com>,
	qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 1/6] Use correct types to enable > 2G support
Date: Thu, 31 Jan 2008 18:25:56 -0600	[thread overview]
Message-ID: <47A26714.4000204@us.ibm.com> (raw)
In-Reply-To: <200801312354.24382.paul@codesourcery.com>

Paul Brook wrote:
> On Thursday 31 January 2008, 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.
>>     
>
> You've still got a fairly random mix of unsigned long, ram_addr_t and 
> uint64_t.
>   

I wasn't the one that did this work, but we've tested KVM with very 
large amounts of memory (~15GB I believe).  I suspect the changes were 
driven by trial and error.  Perhaps Izik can shed more light on how 
things were changed?

>> -typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size,
>> +typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size,
>>     
>
> This breaks every target except x86.
>
>   

Indeed.  I missed this because it's only a warning since it's just a 
pointer cast.  I'll fix the patch for all the remaining targets.  Thanks!

>> +    if (above_4g_mem_size) {
>> +        rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size >> 16);
>> +        rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size >> 24);
>> +        rtc_set_memory(s, 0x5d, above_4g_mem_size >> 32);
>>     
>
> This will cause warnings on 32-bit hosts.
>   

Yeah, it needs a (uint64_t), I'll update.

>> +#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024 * 1024ULL)
>>     
>
> This seems fairly arbitrary. Why? Any limit is certainly target specific.
>   

On a 32-bit host, a 2GB limit is pretty reasonable since you're limited 
in virtual address space.  On a 64-bit host, there isn't this 
fundamental limit.  If a target may have it's own limit but there is 
definitely a host imposed limit.

2047GBs is a somewhat arbitrary limit though for 64-bit hosts.  If you 
have a more logical suggestion, I'll happily change it.

Regards,

Anthony Liguori


> Paul
>   

  parent reply	other threads:[~2008-02-01  0:25 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 [this message]
2008-02-01  0:25             ` 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
2008-02-01 10:26         ` [Qemu-devel] " 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=47A26714.4000204@us.ibm.com \
    --to=aliguori-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=fabrice-+Yn2HnRVxb5AfugRpC6u6w@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.