From: Blaisorblade <blaisorblade@yahoo.it>
To: user-mode-linux-devel@lists.sourceforge.net
Cc: Henrik Nordstrom <uml@hno.marasystems.com>,
Rob Landley <rob@landley.net>, Doug Dumitru <doug@easyco.com>,
"Vaibhav Sharma, Noida" <Vaibhavs@noida.hcltech.com>
Subject: Re: [uml-devel] memory
Date: Mon, 24 Jan 2005 19:52:53 +0100 [thread overview]
Message-ID: <200501241952.53795.blaisorblade@yahoo.it> (raw)
In-Reply-To: <Pine.LNX.4.61.0501241049100.5934@filer.marasystems.com>
On Monday 24 January 2005 11:02, Henrik Nordstrom wrote:
> On Sun, 23 Jan 2005, Rob Landley wrote:
> > The client kernel's highmem suport is unlikely to do much, I'd think.
> > Not unless it's unmapping and remapping multiple mmaps.
It does this, indeed and sadly (that's why it's so slow).
> > (There's large
> > file support, but trying to mmap a 5 gig chunk out of a large file can't
> > work: what would that mean? How could you generate an offset into the
> > last meg? What would the pointer _be_?)
> off_t is 64 bits in 64-bit file pointer mode, so there is no problem to
> mmap portions of an multi-gigabyte "ram" file within a 32-bit address
> space.
Offset can sure be 64-bit wide, but he refers to mmaping a 5G-wide chunk of
memory, and to a "pointer offset"... you cannot mmap more than 4G in memory
even with 4G/4G. Yes, you can do it like he says (i.e. mmapping back and
forth).
> > The parent kernel's highmem support still doesn't provide more than 4
> > gigabytes per application, and the UML kernel is one application.
> Yes, but with HIGHMEM UML in theory can provide as as much ram to each
> single process running below it as it can for a single process. So yes,
> each process in the UML would still be limited, but the total RAM usage of
> UML would be practically unlimited. And in addition a very good
> environment for debugging HIGHMEM in general as you could set up things to
> only provide a very limited directly addressible address space with the
> rest remapped by HIGHMEM.
This point holds actually.
I think however that Henrik will agree that this is not yet implemented, and
(maybe) nor in sight... about this, I would add somebody suggested
using /proc/mm to this aim: since a single address space is not enough to map
all the 64 Giga on a PAE system, he suggested using multiple address spaces
and switching between them to use memory as cache for MySQL (IIRC)... this
was also posted on this list.
Also, since x86_64 systems are so cheap (I'm writing from one of them), x86_64
UML is going to be a reality soon, and we're in short of manpower, the
logical conclusion is that this is unlikely to be implemented... unless it's
very simple; do you think that making sure the offset inside /tmp/vm_file-***
is 64-bit wide would be enough?
> With HIGHMEM the host process size limitations has an direct effect on the
> maximum process size possible within the UML, but not on the RAM size of
> UML. In addition running an UML with HIGHMEM support does not depend on
> the host HIGHMEM support, but performance will obviously suffer if UML
> needs to swap..
> > (And that's with the 4 gig kernel/4 gig user patches from... Ingo
> > Molnar, I think.)
I confirm
> > Highmem lets the system as a whole use PAE (up to 64
> > gigs physical memory), but the kernel is basically doing something very
> > like the old DOS expanded memory behind the scenes, swapping around page
> > tables so each process sees a different set of physical memory. pages
> > (The overhead isn't quite so bad since it's doing that anyway as part of
> > protecting process's memory from each other...)
> Exctaly, and UML can do something very similar with the help of mmap().
Which is too slow, though...
--
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2005-01-24 18:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-23 6:46 [uml-devel] memory Vaibhav Sharma, Noida
2005-01-23 8:28 ` Doug Dumitru
2005-01-23 9:51 ` Rob Landley
2005-01-24 18:41 ` Blaisorblade
2005-01-23 18:27 ` Henrik Nordstrom
2005-01-23 18:25 ` Rob Landley
2005-01-24 10:02 ` Henrik Nordstrom
2005-01-24 18:52 ` Blaisorblade [this message]
2005-01-24 1:11 ` Jeff Dike
2005-01-24 5:10 ` Rob Landley
2005-01-24 10:12 ` Henrik Nordstrom
2005-01-24 11:31 ` Bodo Stroesser
2005-01-24 11:32 ` stian
[not found] ` <200501241811.j0OIBYXk002874@ccure.user-mode-linux.org>
2005-01-24 16:24 ` Bodo Stroesser
-- strict thread matches above, loose matches on Subject: below --
2005-01-24 8:13 Vaibhav Sharma, Noida
2005-01-24 12:43 ` Rob Landley
2005-01-24 19:07 ` Blaisorblade
2005-01-24 22:41 ` Henrik Nordstrom
2005-01-25 1:40 ` Rob Landley
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=200501241952.53795.blaisorblade@yahoo.it \
--to=blaisorblade@yahoo.it \
--cc=Vaibhavs@noida.hcltech.com \
--cc=doug@easyco.com \
--cc=rob@landley.net \
--cc=uml@hno.marasystems.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/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