qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paul Brook <paul@codesourcery.com>
To: "J. Mayer" <l_indien@magic.fr>
Cc: Blue Swirl <blauwirbel@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Updated >2G memory patch
Date: Sun, 30 Sep 2007 01:02:40 +0100	[thread overview]
Message-ID: <200709300102.41416.paul@codesourcery.com> (raw)
In-Reply-To: <1191107818.29900.53.camel@rapid>

> > IMHO Huge amounts of virtual address space can definitely be useful, even
> > if you don't have ram to back it.
> >
> > Huge amounts of physical address space is less immediately useful, though
> > in practice you have to emulate whatever real hardware provides. If
> > you're emulating a machine with a 40+ bit physical address space, there's
> > a fair chance your guest OS will decide to scatter a relatively small set
> > of resources over the whole address space.
>
> I don't agree too much with your opinion, because what I can see is that
> PowerPC 64 machines (at least IBM ones) tend to use the 62 bits physical
> address space provided by the architecture. If I remember well, there is
> at least one PPC64 architecture where the highest bits are used to split
> the physical address space between memory, memory-mapped IO,
> devices, ...
> I'm quite sure there are other 64 bits architecture that have the same
> requirement of a huge physical address space, then beeing able to handle
> it in Qemu seems to be very useful, much more than trying to emulate a
> huge amount of RAM, and is needed in a very near future.

I'm confused. You say you don't agree with me, then give an example that 
confirms what I said (Replace Guest OS with machine memory map as 
appropriate).

> > I agree there's no point trying to emulate >2G ram on a 32-bit host, but
> > physical address space and ram are two very different things.
> > For example I have a cpu that has a "bitbanded" memory region. This
> > expands each bit of real ram to a whole 32-bit word, effectively turning
> > a word load/store into an atomic bit operation. Currently it's only used
> > for relatively small address ranges, but it's a good example of a
> > situation where the physical address space is much larger than ram.
>
> I don't see why it would be useless to emulate huge amount of RAM on 32
> bits hosts. If you try to register more than a few gigabytes of memory,
> there are great chances that the host machine won't have the physical
> RAM to handle it at once, so a page swap mechanism will have to be
> implemented. Then, I see no difference in using it on a 32 bits hosts or
> a 64 bits ones.

The difference is that on a 32-bit host you have to manually page guest ram to 
make if fit in the host address space. On a 64-bit host you can just do a big 
malloc any let the host OS deal with it. Implementing a swap-to-disk memory 
manager inside qemu really doesn't seem like a good use of resources given 
pretty much all new host hardware is 64-bit and the host OS has already 
solved the problem for us.

Some form of dynamic ram allocation is a reasonable feature. Demand paging is 
a much bigger and harder problem.

Emulating a machine with more ram than the host is IMHO not something a normal 
end user should be doing. Performance is going to be abysmal however it's 
implemented, and probably only useful for smoketesting low level OS support. 
It seems entirely reasonable to limit this to 64-bit hosts.

I have absolutely no sympathy for people who are running 32-bit OS on machines 
with >2G ram. Pretty much any machine with that much ram is also capable of 
running a 64-bit host OS.

Paul

  reply	other threads:[~2007-09-30  0:02 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-29 13:04 [Qemu-devel] Updated >2G memory patch Blue Swirl
2007-09-29 13:33 ` [Qemu-devel] " Izik Eidus
2007-09-29 13:40   ` Izik Eidus
2007-09-29 13:34 ` [Qemu-devel] " J. Mayer
2007-09-29 15:54   ` Blue Swirl
2007-09-29 22:43     ` Paul Brook
2007-09-29 23:16       ` J. Mayer
2007-09-30  0:02         ` Paul Brook [this message]
2007-09-30  0:34           ` J. Mayer
2007-09-30 15:43             ` Paul Brook
2007-09-30  7:15         ` Blue Swirl
2007-09-30 12:31           ` J. Mayer
2007-09-30 14:37             ` Avi Kivity
2007-09-30 15:30             ` Blue Swirl

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=200709300102.41416.paul@codesourcery.com \
    --to=paul@codesourcery.com \
    --cc=blauwirbel@gmail.com \
    --cc=l_indien@magic.fr \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).