lkml.org 
[lkml]   [2004]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: PCI memory allocation bug with CONFIG_HIGHMEM


    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.

    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?

    Linus
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-11-18 23:46    [W:0.030 / U:35.108 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site