[lkml]   [2010]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [patch] x86: allow ZONE_DMA to be configurable
    On Thu, 14 Oct 2010, Andrew Morton wrote:

    > > ZONE_DMA is unnecessary for a large number of machines that do not
    > > require addressing in the lower 16MB of memory because they do not use
    > > ISA devices with 16-bit address registers (plus one page byte register).
    > >
    > > This patch allows users to disable ZONE_DMA for x86 if they know they
    > > will not be using such devices with their kernel.
    > >
    > > This prevents the VM from unnecessarily reserving a ratio of memory
    > > (defaulting to 1/256th of system capacity) with lowmem_reserve_ratio
    > > for such allocations when it will never be used.
    > >
    > I wonder how hard it would be to do this at runtime, probably with a
    > boot parameter.

    A "no_zone_dma" boot parameter wouldn't allow us to achieve the text or
    data savings that we see from disabling all three options in question

    Hot-adding ZONE_DMA at runtime would be possible but there's no guarantee
    that memory hasn't fully been used by the time you do it, so it disregards
    lowmem_reserve_ratio unless you migrate everything, which has a dependency
    on it being movable.

    > I'd be a little concerned at the effects of this on page reclaim and
    > the page allocator - it might expose weird pre-existing bugs or
    > inefficiencies. But we can cross that bridge when we fall off it, I
    > guess.

    We've run with it for a couple years, we can even undefine __GFP_DMA to
    find allocations that we compile into the kernel to ensure we don't have a
    requirement for the zone. Perhaps only define the gfp flag when we have
    CONFIG_ZONE_DMA and break users' builds until they disable options that
    require it (or enable CONFIG_ZONE_DMA)?

    It would be great if we could do "select ZONE_DMA" for all options that
    require it, though.

     \ /
      Last update: 2010-10-15 00:17    [W:0.025 / U:5.612 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site