• Joerg Roedel's avatar
    x86/swiotlb: Try coherent allocations with __GFP_NOWARN · 186dfc9d
    Joerg Roedel authored
    When we boot a kdump kernel in high memory, there is by
    default only 72MB of low memory available. The swiotlb code
    takes 64MB of it (by default) so that there are only 8MB
    left to allocate from. On systems with many devices this
    causes page allocator warnings from
    dma_generic_alloc_coherent():
    
      systemd-udevd: page allocation failure: order:0, mode:0x280d4
      CPU: 0 PID: 197 Comm: systemd-udevd Tainted: G        W
      3.12.28-4-default #1 Hardware name: HP ProLiant DL980 G7, BIOS
      P66 07/30/2012  ffff8800781335e0 ffffffff8150b1db 00000000000280d4 ffffffff8113af90
       0000000000000000 0000000000000000 ffff88007efdbb00 0000000100000000
       0000000000000000 0000000000000000 0000000000000000 0000000000000001
      Call Trace:
        dump_trace+0x7d/0x2d0
        show_stack_log_lvl+0x94/0x170
        show_stack+0x21/0x50
        dump_stack+0x41/0x51
        warn_alloc_failed+0xf0/0x160
        __alloc_pages_slowpath+0x72f/0x796
        __alloc_pages_nodemask+0x1ea/0x210
        dma_generic_alloc_coherent+0x96/0x140
        x86_swiotlb_alloc_coherent+0x1c/0x50
        ttm_dma_pool_alloc_new_pages+0xab/0x320 [ttm]
        ttm_dma_populate+0x3ce/0x640 [ttm]
        ttm_tt_bind+0x36/0x60 [ttm]
        ttm_bo_handle_move_mem+0x55f/0x5c0 [ttm]
        ttm_bo_move_buffer+0x105/0x130 [ttm]
        ttm_bo_validate+0xc1/0x130 [ttm]
        ttm_bo_init+0x24b/0x400 [ttm]
        radeon_bo_create+0x16c/0x200 [radeon]
        radeon_ring_init+0x11e/0x2b0 [radeon]
        r100_cp_init+0x123/0x5b0 [radeon]
        r100_startup+0x194/0x230 [radeon]
        r100_init+0x223/0x410 [radeon]
        radeon_device_init+0x6af/0x830 [radeon]
        radeon_driver_load_kms+0x89/0x180 [radeon]
        drm_get_pci_dev+0x121/0x2f0 [drm]
        local_pci_probe+0x39/0x60
        pci_device_probe+0xa9/0x120
        driver_probe_device+0x9d/0x3d0
        __driver_attach+0x8b/0x90
        bus_for_each_dev+0x5b/0x90
        bus_add_driver+0x1f8/0x2c0
        driver_register+0x5b/0xe0
        do_one_initcall+0xf2/0x1a0
        load_module+0x1207/0x1c70
        SYSC_finit_module+0x75/0xa0
        system_call_fastpath+0x16/0x1b
        0x7fac533d2788
    
    After these warnings the code enters a fall-back path and
    allocated directly from the swiotlb aperture in the end.
    So remove these warnings as this is not a fatal error.
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    [ Simplify, reflow comment. ]
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Acked-by: default avatarBaoquan He <bhe@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Jörg Rödel <joro@8bytes.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: kexec@lists.infradead.org
    Link: http://lkml.kernel.org/r/1433500202-25531-3-git-send-email-joro@8bytes.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    186dfc9d
pci-swiotlb.c 2.88 KB