Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1428726ybl; Wed, 28 Aug 2019 14:42:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqyI6wh+0/UMtOW/qnIJINyeTgxOLyeQEAVdjGRuYcpTwijUSHDxOJBZkMGi4Ycm2ZDzjfgu X-Received: by 2002:a63:724f:: with SMTP id c15mr5423250pgn.257.1567028562960; Wed, 28 Aug 2019 14:42:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567028562; cv=none; d=google.com; s=arc-20160816; b=nA+SNRcsL+1i6NS6rirUVcC6IWXfXhxr2DS9OzZ/dybwI0LZJO+2DFHf7OXzvCtXlG 6DQyjNYwJVwQ1+bikF2mfid/AK2ti8dxIazDYWViSWZonaf8hHykjRssHeYq7fbSEOG3 MQEwKWHaHCuQd8tZZ6nPAL+VPesv9iHSj0xfPaiO42Z0Jl0iELuXngKWrY5rKOcSG7NQ efRWRW5Y8MtASQwb521hdcw5hbzML/p2yzsTQa80rQjDRqn2Gw+DW0OuvhnrfNXxFjwk RVOE+SPTYn1xS1wS2hGZ3dMDdJDHkF1Qlo+PBBHziEaeiZ3Tm40FKfm+iyEyCJB4jnyt uIzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=EmTT1pcCHOo3mELkDkITKYJZl7OtTPiDcR2k8eCL0AE=; b=d/wFxnr2OzkhAcPo+ST9qizyTtLsLU3fFGGbpJLQEA8tpfsxRpCHzcpfoiz1KfQjPH fyXWQBr4THzLfVZy9KxVUH3JbXv6BoLDcR6CTgRB13yKl0UyqF6dw/r1c/HryVwPLazs GG6/BO0ZaT2A7HkUySx/85SKQFW6zxePYNo0IuaBZOX+e/8xYs0HuM9fAetfPn4kmNPe Rct/8HWm701iaN47NJ8IcDqe8o+NnRkKywhv8ddWKAbS8SZKUY7Q50qLgIKElt+nlGVv OMwgzIMYrbiivGVIL8epTd9G2ZC8o0cU5pkQgmt2w0Z3Tsw8U1cii027Q4xSqxoJRmGZ ZyuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=kerBQVkW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c5si381736pjq.52.2019.08.28.14.42.27; Wed, 28 Aug 2019 14:42:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=kerBQVkW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726887AbfH1VkE (ORCPT + 99 others); Wed, 28 Aug 2019 17:40:04 -0400 Received: from mail-qk1-f193.google.com ([209.85.222.193]:35981 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726787AbfH1VkD (ORCPT ); Wed, 28 Aug 2019 17:40:03 -0400 Received: by mail-qk1-f193.google.com with SMTP id d23so1162343qko.3 for ; Wed, 28 Aug 2019 14:40:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=from:to:cc:subject:date:message-id; bh=EmTT1pcCHOo3mELkDkITKYJZl7OtTPiDcR2k8eCL0AE=; b=kerBQVkWoaLKOuaN5C0EeFfDfBmhedtWjA/6EuWLPDeK0IXyfY3ifMPGc38ncPlDQW 1HRTfUaHDM/gL9vDo/Tb2lk6GosB/UH43GB/lzCLwJM8jUtfflf1jxq/KlyMvkcNrrIG up7O5A79KguoaieH5rUwP46b9gyPG2rCb7/hogh41hnfL8U1Ksv2uq9uJUu3EBllYoyt jnKXcZPHVS9ObYNdpC6F7yWv4JvNacVwcEqNvKu2oI8lKZSMhq2LoPExhToVntelF6wj ktwgih9i2yMvsMRjDGSaAebTUhMLA+HeaNiwGMJ2nxBmorGpaeZ/HI13A40SBZMpk5Sw Sq4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=EmTT1pcCHOo3mELkDkITKYJZl7OtTPiDcR2k8eCL0AE=; b=YH9GwsuRTel8jvcINN4ZihZEz0wgSf42Gb4TtY37/EYDBC6Pvwrhf9ro9S/avwwmuP SaTz3VrwH8PwgJTcLlSuoKyY9pxXEMa0xc3zST4wDlawTRaMvEETtkVNhqAdBvhxQSyf AA9ZQ+MnpuxSmZW1aePW/JdbVGX2ghkUCbdTqoYQMrsomRNv7WLExYA0ZCCXhA02SYJM ppvrXIWf3d4rHWDEKlxtV+sCf27c/l23cL+DkmrB5CH4UtTjUdrGzQZh+DNbBxqkV30o ivKRUu8AYf7tfssmMkgUNfznmotZ3KHuz028vt3iruxDrqftfKjGP1Z73wPvQf/uzqh+ w8PA== X-Gm-Message-State: APjAAAWKIhxR5VMiE8rgMI0l+KMxnINRowMe4cB9hzq4VLKngbUdb0ZX eLEQwQb1PCjBdom6DRimjKc2LLqtnrA= X-Received: by 2002:a37:a0c2:: with SMTP id j185mr6211520qke.123.1567028402940; Wed, 28 Aug 2019 14:40:02 -0700 (PDT) Received: from qcai.nay.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id r4sm273053qta.93.2019.08.28.14.40.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Aug 2019 14:40:02 -0700 (PDT) From: Qian Cai To: jroedel@suse.de Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Qian Cai Subject: [PATCH] iommu/amd: silence warnings under memory pressure Date: Wed, 28 Aug 2019 17:39:43 -0400 Message-Id: <1567028383-29325-1-git-send-email-cai@lca.pw> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: 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 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: Qian Cai --- drivers/iommu/amd_iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index b607a92791d3..19eef1edf8ed 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -2547,7 +2547,9 @@ static int map_sg(struct device *dev, struct scatterlist *sglist, bus_addr = address + s->dma_address + (j << PAGE_SHIFT); phys_addr = (sg_phys(s) & PAGE_MASK) + (j << PAGE_SHIFT); - ret = iommu_map_page(domain, bus_addr, phys_addr, PAGE_SIZE, prot, GFP_ATOMIC); + ret = iommu_map_page(domain, bus_addr, phys_addr, + PAGE_SIZE, prot, + GFP_ATOMIC | __GFP_NOWARN); if (ret) goto out_unmap; -- 1.8.3.1