From: Daniel Phillips <phillips@bonn-fries.net>
To: Andrea Arcangeli <andrea@suse.de>
Cc: "Martin J. Bligh" <Martin.Bligh@us.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?]
Date: Mon, 6 May 2002 02:34:49 +0200 [thread overview]
Message-ID: <E174WSn-0004Bc-00@starship> (raw)
In-Reply-To: <20020502180632.I11414@dualathlon.random> <E174Vq8-0004BK-00@starship> <20020506022830.A6712@dualathlon.random>
On Monday 06 May 2002 02:28, Andrea Arcangeli wrote:
> On Mon, May 06, 2002 at 01:54:52AM +0200, Daniel Phillips wrote:
> > On Friday 03 May 2002 07:15, Andrea Arcangeli wrote:
> > > On Thu, May 02, 2002 at 09:08:18PM +0200, Daniel Phillips wrote:
> > > > On Thursday 02 May 2002 20:57, Andrea Arcangeli wrote:
> > > > >
> > > > > correct. The direct mapping is nothing magic, it's like a big static
> > > > > kmap area. Everybody is required to use
> > > > > virt_to_page/page_address/pci_map_single/... to switch between virtual
> > > > > address and mem_map anyways (thanks to the discontigous mem_map), so you
> > > > > can use this property by making discontigous the virtual space as well,
> > > > > not only the mem_map. discontigmem basically just allows that.
> > > >
> > > > And what if you don't have enough virtual space to fit all the memory you
> > >
> > > ZONE_NORMAL is by definition limited by the direct mapping size, so if
> > > you don't have enough virtual space you cannot enlarge the zone_normal
> > > anyways. If need more virtual space you can only do things like
> > > CONFIG_2G.
> >
> > I must be guilty of not explaining clearly. Suppose you have the following
> > physical memory map:
> >
> > 0: 128 MB
> > 8000,0000: 128 MB
> > 1,0000,0000: 128 MB
> > 1,8000,0000: 128 MB
> > 2,0000,0000: 128 MB
> > 2,8000,0000: 128 MB
> > 3,0000,0000: 128 MB
> > 3,8000,0000: 128 MB
> >
> > The total is 1 GB of installed ram. Yet the kernel's 1G virtual space,
> > can only handle 128 MB of it. The rest falls out of the addressable range and
> > has to be handled as highmem, that is if you preserve the linear relationship
> > between kernel virtual memory and physical memory, as config_discontigmem does.
> > Even if you go to 2G of kernel memory (restricting user space to 2G of virtual)
> > you can only handle 256 MB.
> >
> > By using config_nonlinear, the kernel can directly address all of that memory,
> > giving you the full 800MB or so to work with (leaving out the kmap regions etc)
> > as zone_normal.
>
> If those different 128M chunks aren't in different numa nodes that's
> broken hardware that can be workarounded just fine with discontigmem.
It's real hardware - broken operating system. And no, it's not numa.
Could you please explain how to work around it with discontigmem?
> If
> as expected they are (indeed similar to numa-q) placed on different numa
> nodes, then they must go into pgdat regardless, so nonlinear or not
> cannot make difference with numa. Either ways (both if it's broken
> hardware workaroundable with discontigmem, or proper numa architecture)
> there will be no problem at all in coalescing the blocks below 4G into
> ZONE_NORMAL (and for the blocks above 4G nonlinaer can do nothing).
Why can config_nonlinear do nothing with blocks above 4G physical?
--
Daniel
next prev parent reply other threads:[~2002-05-06 0:34 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-26 18:27 Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?] Russell King
2002-04-26 22:46 ` Andrea Arcangeli
2002-04-29 17:50 ` Martin J. Bligh
2002-04-29 22:00 ` Roman Zippel
2002-04-30 0:43 ` Andrea Arcangeli
2002-04-27 22:10 ` Daniel Phillips
2002-04-29 13:35 ` Andrea Arcangeli
2002-04-29 23:02 ` Daniel Phillips
2002-05-01 2:23 ` Andrea Arcangeli
2002-04-30 23:12 ` Daniel Phillips
2002-05-01 1:05 ` Daniel Phillips
2002-05-02 0:47 ` Andrea Arcangeli
2002-05-01 1:26 ` Daniel Phillips
2002-05-02 1:43 ` Andrea Arcangeli
2002-05-01 2:41 ` Daniel Phillips
2002-05-02 13:34 ` Andrea Arcangeli
2002-05-02 15:18 ` Martin J. Bligh
2002-05-02 15:35 ` Andrea Arcangeli
2002-05-01 15:42 ` Daniel Phillips
2002-05-02 16:06 ` Andrea Arcangeli
2002-05-02 16:10 ` Martin J. Bligh
2002-05-02 16:40 ` Andrea Arcangeli
2002-05-02 17:16 ` William Lee Irwin III
2002-05-02 18:41 ` Andrea Arcangeli
2002-05-02 19:19 ` William Lee Irwin III
2002-05-02 19:27 ` Daniel Phillips
2002-05-02 19:38 ` William Lee Irwin III
2002-05-02 19:58 ` Daniel Phillips
2002-05-03 6:28 ` Andrea Arcangeli
2002-05-03 6:10 ` Andrea Arcangeli
2002-05-02 22:20 ` Martin J. Bligh
2002-05-02 21:28 ` William Lee Irwin III
2002-05-02 21:52 ` Kurt Ferreira
2002-05-02 21:55 ` William Lee Irwin III
2002-05-03 6:38 ` Andrea Arcangeli
2002-05-03 6:58 ` Martin J. Bligh
2002-05-03 6:04 ` Andrea Arcangeli
2002-05-03 6:33 ` Martin J. Bligh
2002-05-03 8:38 ` Andrea Arcangeli
2002-05-03 9:26 ` William Lee Irwin III
2002-05-03 15:38 ` Martin J. Bligh
2002-05-03 15:17 ` Virtual address space exhaustion (was Discontigmem virt_to_page() ) Martin J. Bligh
2002-05-03 15:58 ` Andrea Arcangeli
2002-05-03 16:10 ` Martin J. Bligh
2002-05-03 16:25 ` Andrea Arcangeli
2002-05-03 16:02 ` Daniel Phillips
2002-05-03 16:20 ` Andrea Arcangeli
2002-05-03 16:41 ` Daniel Phillips
2002-05-03 16:58 ` Andrea Arcangeli
2002-05-03 18:08 ` Daniel Phillips
2002-05-03 9:24 ` Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?] William Lee Irwin III
2002-05-03 10:30 ` Andrea Arcangeli
2002-05-03 11:09 ` William Lee Irwin III
2002-05-03 11:27 ` Andrea Arcangeli
2002-05-03 15:42 ` Martin J. Bligh
2002-05-03 15:32 ` Martin J. Bligh
2002-05-02 19:22 ` Daniel Phillips
2002-05-03 6:06 ` Andrea Arcangeli
2002-05-02 18:25 ` Daniel Phillips
2002-05-02 18:44 ` Andrea Arcangeli
2002-05-02 19:31 ` Martin J. Bligh
2002-05-02 18:57 ` Andrea Arcangeli
2002-05-02 19:08 ` Daniel Phillips
2002-05-03 5:15 ` Andrea Arcangeli
2002-05-05 23:54 ` Daniel Phillips
2002-05-06 0:28 ` Andrea Arcangeli
2002-05-06 0:34 ` Daniel Phillips [this message]
2002-05-06 1:01 ` Andrea Arcangeli
2002-05-06 0:55 ` Russell King
2002-05-06 1:07 ` Daniel Phillips
2002-05-06 1:20 ` Andrea Arcangeli
2002-05-06 1:24 ` Daniel Phillips
2002-05-06 1:42 ` Andrea Arcangeli
2002-05-06 1:48 ` Daniel Phillips
2002-05-06 2:06 ` Andrea Arcangeli
2002-05-06 17:40 ` Daniel Phillips
2002-05-06 19:09 ` Martin J. Bligh
2002-05-06 1:09 ` Andrea Arcangeli
2002-05-06 1:13 ` Daniel Phillips
2002-05-06 2:03 ` Daniel Phillips
2002-05-06 2:31 ` Andrea Arcangeli
2002-05-06 8:57 ` Russell King
2002-05-06 8:54 ` Roman Zippel
2002-05-06 15:26 ` Daniel Phillips
2002-05-06 19:07 ` Roman Zippel
2002-05-08 15:57 ` Daniel Phillips
2002-05-08 23:11 ` Roman Zippel
2002-05-09 16:08 ` Daniel Phillips
2002-05-09 22:06 ` Roman Zippel
2002-05-09 22:22 ` Daniel Phillips
2002-05-09 23:00 ` Roman Zippel
2002-05-09 23:22 ` Daniel Phillips
2002-05-10 0:13 ` Roman Zippel
2002-05-02 22:39 ` Martin J. Bligh
2002-05-03 7:04 ` Andrea Arcangeli
2002-05-02 23:42 ` Daniel Phillips
2002-05-03 7:45 ` Andrea Arcangeli
2002-05-02 16:07 ` Martin J. Bligh
2002-05-02 16:58 ` Gerrit Huizenga
2002-05-02 18:10 ` Andrea Arcangeli
2002-05-02 19:28 ` Gerrit Huizenga
2002-05-02 22:23 ` Martin J. Bligh
2002-05-03 6:20 ` Andrea Arcangeli
2002-05-03 6:39 ` Martin J. Bligh
2002-05-02 16:00 ` William Lee Irwin III
2002-05-02 2:37 ` William Lee Irwin III
2002-05-02 15:59 ` Andrea Arcangeli
2002-05-02 16:06 ` William Lee Irwin III
2002-05-01 18:05 ` Jesse Barnes
2002-05-01 23:17 ` Andrea Arcangeli
2002-05-01 23:23 ` discontiguous memory platforms Jesse Barnes
2002-05-02 0:51 ` Ralf Baechle
2002-05-02 1:27 ` Andrea Arcangeli
2002-05-02 1:32 ` Ralf Baechle
2002-05-02 8:50 ` Roman Zippel
2002-05-01 13:21 ` Daniel Phillips
2002-05-02 14:00 ` Roman Zippel
2002-05-01 14:08 ` Daniel Phillips
2002-05-02 17:56 ` Roman Zippel
2002-05-01 17:59 ` Daniel Phillips
2002-05-02 18:26 ` Roman Zippel
2002-05-02 18:32 ` Daniel Phillips
2002-05-02 19:40 ` Roman Zippel
2002-05-02 20:14 ` Daniel Phillips
2002-05-03 6:34 ` Andrea Arcangeli
2002-05-03 9:33 ` Roman Zippel
2002-05-03 6:30 ` Andrea Arcangeli
2002-05-02 18:35 ` Geert Uytterhoeven
2002-05-02 18:39 ` Daniel Phillips
2002-05-02 0:20 ` Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?] Anton Blanchard
2002-05-01 1:35 ` Daniel Phillips
2002-05-02 1:45 ` William Lee Irwin III
2002-05-01 2:02 ` Daniel Phillips
2002-05-02 2:33 ` William Lee Irwin III
2002-05-01 2:44 ` Daniel Phillips
2002-05-02 1:46 ` Andrea Arcangeli
2002-05-01 1:56 ` Daniel Phillips
2002-05-02 1:01 ` Andrea Arcangeli
2002-05-02 15:28 ` Anton Blanchard
2002-05-01 16:10 ` Daniel Phillips
2002-05-02 15:59 ` Dave Engebretsen
2002-05-01 17:24 ` Daniel Phillips
2002-05-02 16:44 ` Dave Engebretsen
2002-05-02 16:31 ` William Lee Irwin III
2002-05-02 16:21 ` Dave Engebretsen
2002-05-02 17:28 ` William Lee Irwin III
2002-05-02 23:05 ` Daniel Phillips
2002-05-03 0:05 ` William Lee Irwin III
2002-05-03 1:19 ` Daniel Phillips
2002-05-03 19:47 ` Dave Engebretsen
2002-05-03 22:06 ` Daniel Phillips
2002-05-03 23:52 ` David Mosberger
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=E174WSn-0004Bc-00@starship \
--to=phillips@bonn-fries.net \
--cc=Martin.Bligh@us.ibm.com \
--cc=andrea@suse.de \
--cc=linux-kernel@vger.kernel.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