From: David Hinds <dhinds@sonic.net>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, Amit <mehrotraamit@yahoo.co.in>,
Russell King <rmk@arm.linux.org.uk>
Subject: Re: PCI memory allocation bug with CONFIG_HIGHMEM
Date: Mon, 5 Jan 2004 16:44:23 -0800 [thread overview]
Message-ID: <20040105164423.A30738@sonic.net> (raw)
In-Reply-To: <Pine.LNX.4.58.0401051630190.2170@home.osdl.org>
On Mon, Jan 05, 2004 at 04:36:15PM -0800, Linus Torvalds wrote:
>
> On Mon, 5 Jan 2004, David Hinds wrote:
> >
> > In arch/i386/kernel/setup.c we have:
> >
> > /* Tell the PCI layer not to allocate too close to the RAM area.. */
> > low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff;
> > if (low_mem_size > pci_mem_start)
> > pci_mem_start = low_mem_size;
> >
> > which is meant to round up pci_mem_start to the nearest 1 MB boundary
> > past the top of physical RAM. However this does not consider highmem.
> > Should this just be using max_pfn rather than max_low_pfn?
>
> Yes and no. That doesn't really work either, for any machine with more
> than 4GB of RAM.
Ugh.
> We want to find the memory hole (in the low 4GB region), and usually the
> e820 memory map should make that all happen properly. What does that
> report on this laptop?
>
> This is why we put the memory resources in /proc/iomem, and mark them
> busy: so that the PCI subsystem won't try to allocate PCI memory in the
> RAM (or ACPI reserved) area. The "pci_mem_start" thing is just a point to
> _start_ the allocation, the PCI subsystem still should honor the fact that
> we have memory above it. That's the whole point of doing proper resource
> allocation, after all.
>
> Does this not work, or have you disabled e820 for some reason?
The original problem was actually that grub was passing a bogus mem=
parameter to the kernel that was 4K too small, I guess because it was
intending to indicate the amount of "available" memory (the top 4K is
reserved for ACPI). If highmem had not been enabled, the above code
would have corrected the problem; but with highmem, the computed
low_mem_size was incorrect. I would say that grub is just broken and
is misusing the mem= parameter, but this has been a problem for years
and they don't seem interested in fixing it.
-- Dave
next prev parent reply other threads:[~2004-01-06 0:49 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-05 20:07 PCI memory allocation bug with CONFIG_HIGHMEM David Hinds
2004-01-05 23:00 ` Russell King
2004-01-05 23:45 ` David Hinds
2004-01-06 0:36 ` Linus Torvalds
2004-01-06 0:44 ` David Hinds [this message]
2004-01-06 1:11 ` Linus Torvalds
2004-01-06 1:41 ` Linus Torvalds
[not found] <1aJdi-7TH-25@gated-at.bofh.it>
2004-01-06 3:32 ` Andi Kleen
2004-01-06 3:40 ` Linus Torvalds
2004-01-06 4:05 ` Andi Kleen
2004-01-06 5:04 ` Linus Torvalds
2004-01-06 8:12 ` Andi Kleen
2004-01-06 9:11 ` Mika Penttilä
2004-01-06 9:44 ` Andi Kleen
2004-01-06 10:16 ` Mika Penttilä
2004-01-06 10:49 ` Andi Kleen
2004-01-06 15:27 ` Linus Torvalds
2004-01-06 15:37 ` Andi Kleen
2004-01-06 15:48 ` Linus Torvalds
2004-01-06 22:29 ` Adam Belay
2004-01-07 4:06 ` Linus Torvalds
2004-01-07 5:02 ` Andi Kleen
2004-01-07 5:55 ` Dave Jones
2004-01-07 6:06 ` Linus Torvalds
2004-01-07 6:08 ` Dave Jones
2004-01-07 6:45 ` Linus Torvalds
2004-01-07 6:51 ` Andi Kleen
2004-01-07 2:43 ` Adam Belay
2004-01-07 8:32 ` Helge Hafting
2004-01-06 22:45 ` Eric W. Biederman
2004-01-07 0:06 ` Linus Torvalds
2004-01-07 4:58 ` Eric W. Biederman
2004-01-07 5:32 ` Linus Torvalds
2004-01-07 15:53 ` Eric W. Biederman
2004-01-07 16:32 ` Linus Torvalds
2004-01-07 17:32 ` Eric W. Biederman
2004-01-08 19:34 ` Eric W. Biederman
2004-01-07 9:31 ` Russell King
2004-01-07 15:06 ` Eric W. Biederman
2004-01-07 20:29 ` Russell King
2004-01-06 22:56 ` Eric W. Biederman
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=20040105164423.A30738@sonic.net \
--to=dhinds@sonic.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mehrotraamit@yahoo.co.in \
--cc=rmk@arm.linux.org.uk \
--cc=torvalds@osdl.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