• Nicolin Chen's avatar
    dma-contiguous: use fallback alloc_pages for single pages · bd2e7563
    Nicolin Chen authored
    The addresses within a single page are always contiguous, so it's
    not so necessary to always allocate one single page from CMA area.
    Since the CMA area has a limited predefined size of space, it may
    run out of space in heavy use cases, where there might be quite a
    lot CMA pages being allocated for single pages.
    However, there is also a concern that a device might care where a
    page comes from -- it might expect the page from CMA area and act
    differently if the page doesn't.
    This patch tries to use the fallback alloc_pages path, instead of
    one-page size allocations from the global CMA area in case that a
    device does not have its own CMA area. This'd save resources from
    the CMA global area for more CMA allocations, and also reduce CMA
    fragmentations resulted from trivial allocations.
    Signed-off-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
    Tested-by: default avatardann frazier <dann.frazier@canonical.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
contiguous.c 9.89 KB