[lkml]   [2003]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: kexec reboot code buffer
    "Martin J. Bligh" <> writes:

    > >> The problem is that I have not figured out how to tell the memory
    > >> allocator just what I need,
    > > <snip>
    > >> I guess I would make the standard zones something like:
    > >> /*
    > >> * ZONE_DMA < 16 MB ISA DMA capable memory
    > >> * ZONE_NORMAL 16-896 MB direct mapped by the kernel
    > >> * ZONE_PHYSMEM 896-4096 MB memory that is accessible with the
    > >> MMU disabled.
    > >> * ZONE_HIGHMEM > 4096MB only page cache and user processes
    > >> */
    > >
    > > I think this might be overkill. ZONE_NORMAL gives you what you want,
    > > and I don't think it's worth it to introduce a new one just for the
    > > relatively short timespan where you have the new kernel loaded, but
    > > haven't actually shut down. I think a little comment next to the
    > > allocation explaining this will be more than enough.
    > >
    > > Martin, any ideas?
    > We talked about creating a new zone specifically for DMA32 (ie <4Gb)
    > for other reasons, but it's not there as yet.

    Right. And because of that I don't feel bad about asking for a zone
    that ends at 4GB, as it is a fairly general need in the kernel, even
    if the rest of the interfaces have a little catching up to do before
    the can use it. Although with IOMMUs I don't know how much such a
    DMA32 zone is worth.

    > As Dave mentioned,
    > ZONE_NORMAL should be sufficient, though if you need it physically
    > contiguous, that might be a problem.

    I am fine with memory that is not physically contiguous. The memory
    I really want the kernel is currently sitting on.....

    > How much memory do you need? If it's only 2Mb or so, why don't we
    > statically reserve it at boot time and keep it set aside?

    The largest I have heard of is currently is 96MB. Typical is
    somewhere between 900K and 6MB. You get some interesting
    kernel+ramdisk combinations when people are network booting a diskless
    system. Theoretically I can accommodate a nearly 4GB image, with the
    current code structure.

    So the 4GB instead of 960MB limit, and not pesimizing the kernel for
    the cases where the new image sits in ram for a while (kexec on panic)
    is while I modified my code to use high memory.

    The nasty case comes with highmemory when I am allocating memory on a
    32GB NUMA box and am allocating memory on the wrong node. In which
    case my code needs to allocate 28GB before it starts getting the
    memory it wants.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:32    [W:0.021 / U:87.352 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site