• Qian Cai's avatar
    iommu/amd: Silence warnings under memory pressure · 3d708895
    Qian Cai authored
    When running heavy memory pressure workloads, the system is throwing
    endless warnings,
    
    smartpqi 0000:23:00.0: AMD-Vi: IOMMU mapping error in map_sg (io-pages:
    5 reason: -12)
    Hardware name: HPE ProLiant DL385 Gen10/ProLiant DL385 Gen10, BIOS A40
    07/10/2019
    swapper/10: page allocation failure: order:0, mode:0xa20(GFP_ATOMIC),
    nodemask=(null),cpuset=/,mems_allowed=0,4
    Call Trace:
     <IRQ>
     dump_stack+0x62/0x9a
     warn_alloc.cold.43+0x8a/0x148
     __alloc_pages_nodemask+0x1a5c/0x1bb0
     get_zeroed_page+0x16/0x20
     iommu_map_page+0x477/0x540
     map_sg+0x1ce/0x2f0
     scsi_dma_map+0xc6/0x160
     pqi_raid_submit_scsi_cmd_with_io_request+0x1c3/0x470 [smartpqi]
     do_IRQ+0x81/0x170
     common_interrupt+0xf/0xf
     </IRQ>
    
    because the allocation could fail from iommu_map_page(), and the volume
    of this call could be huge which may generate a lot of serial console
    output and cosumes all CPUs.
    
    Fix it by silencing the warning in this call site, and there is still a
    dev_err() later to notify the failure.
    Signed-off-by: default avatarQian Cai <cai@lca.pw>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    3d708895
amd_iommu.c 105 KB