[lkml]   [2008]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] [8/13] Enable the mask allocator for x86
    On Fri, 7 Mar 2008, Andi Kleen wrote:

    > - Disable old ZONE_DMA
    > No fixed size ZONE_DMA now anymore. All existing users of __GFP_DMA rely
    > on the compat call to the maskable allocator in alloc/free_pages
    > - Call maskable allocator initialization functions at boot
    > - Add TRAD_DMA_MASK for the compat functions
    > - Remove dma_reserve call

    This looks okay for the disabling part. But note that there are various
    uses of MAX_DMA_ADDRESS (sparsemem, bootmem allocator) that are currently
    suboptimal because they set a boundary at 16MB for allocation of
    potentially large operating system structures. That boundary continues to
    exist despite the removal of ZONE_DMA?

    It would be better to remove ZONE_DMA32 instead and enlarge ZONE_DMA so
    that it can take over the role of ZONE_DMA. Set the boundary for
    MAX_DMA_ADDRESS to the boundary for ZONE_DMA32. Then the
    allocations for sparse and bootmem will be allocated above 4GB which
    leaves lots of the lower space available for 32 bit DMA capable devices.

    Removal of ZONE_DMA32 would allow us to remove support for that zone from
    the kernel in general since x86_64 is the only user of that zone.

    Trouble is likely that there are existing users that have the expectation
    of a 4GB boundary on ZONE_DMA32 and 16MB on ZONE_DMA (particularly old
    drivers). Could we not clean that up?

     \ /
      Last update: 2008-03-08 03:41    [W:0.022 / U:0.372 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site