Received: by 2002:a05:6a10:c7c6:0:0:0:0 with SMTP id h6csp1671318pxy; Mon, 2 Aug 2021 07:33:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPYwyA0IsFETW5E4Y20RIhM457Gjwy1cpI87avodtidX6jaw3yUzhrl2I1puJuBZ6xZ6gI X-Received: by 2002:a17:906:1ccf:: with SMTP id i15mr15818017ejh.120.1627914793184; Mon, 02 Aug 2021 07:33:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627914793; cv=none; d=google.com; s=arc-20160816; b=fwnsfD3o1ayk2O5JxM+d5a+QzZhj9w48tMnEmXcaka05N+UYqGwcfqdgLVY/g9f6lY cbHdba7euSodGwGuDkE3pn5BopkHboxx0mwK1N0K0pJ4Aodm0sTb8X6GI4J9ZOSMRet1 A3UNBR3928HHmv2id7jUbASIPyOP44xoeYY3FjtQJeRiyFaCDl99mGI/2oMIXOV21Own dQn5uFd+rc190ID6TxYC41ROfUZJ2yiYhxqjyO4Oyzb5xIDjvsVE2YG0v/yVc8H3iCUM H+9O3kw44kFnWLKBvBdAYHIy2NfRdNLFt5u08LQ/Rq9EAMVFNC2RtxoXjUvkmw6cI4BF 0zNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=XeXjmAxnn6bEcuGhZh/BIcTWI5vzIDESsI93f1PiLoE=; b=SE3kyZzkuVJmC7nMB+CqQ2IhtuAPxo8nFg029aXuZceJTfs+4MF3ZpsWQJ4kzaDzYB dMsHxuQcSuuRe9DWzfkiDZSdDvE+SyBrlRA4QrnAUBdS+xmdIqTN1EOnY/QobL6NUONU VEmbjXN5Ni8Guh9fr4uX9r4YgCnc4/HPqvD+bEfQo8LV1wZ8tdFgVTpH5BBJSrQA7z92 ZavwQ05V5FdC4thhEP7T2ezFbXEJD7Ykf/JTuMBnaRI7LcjAu0r0w6IJmgB3p+MquqCh d+N/tHBg67RDJV4A+lSU1wDnJ8S2nZKsn7sD6neak/GBBe7amcZaOF7bBUZdxaAWqSsD sS8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=toS+5mRu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o5si10631626edc.478.2021.08.02.07.32.49; Mon, 02 Aug 2021 07:33:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=toS+5mRu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233985AbhHBObS (ORCPT + 99 others); Mon, 2 Aug 2021 10:31:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233940AbhHBObP (ORCPT ); Mon, 2 Aug 2021 10:31:15 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CFB4C06175F for ; Mon, 2 Aug 2021 07:31:03 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id x14so24736709edr.12 for ; Mon, 02 Aug 2021 07:31:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XeXjmAxnn6bEcuGhZh/BIcTWI5vzIDESsI93f1PiLoE=; b=toS+5mRuTcVYgg7zw4XizQ+WwQfU+62wIlhCzJrtDorwdg8/RxsAK4/ynvS3IrHny1 eadvYXrsW14AzHZ9LpPbhiFZZfRoXwWeFoI7p3Jj8/4oBf9kAVXfTfdHZTu2MswYePAK pfBC5yExNJQj0IqSFJE+JqdI8RdjGca3vDRTpfIJmjKgi9zLZN+qlnhOjlnxImRrSHcL Mila1QFQzofqo0q6Z3rkoBfOu68tU3aQwS5TQ7c2q2nsq1wrd70nFR1HUn51+IyvWo+Q RTEwW5l3BE+IqT5VY4ExBYxlHR2FmmlHoephh6jQMIjEy8msXpJUeA4RAfWZJNi9Ke5l iR9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XeXjmAxnn6bEcuGhZh/BIcTWI5vzIDESsI93f1PiLoE=; b=Z1cjovn7BwnhNGz52HKsHSpZmn3fBRGICibEGBcz4Bvrfqex0axYcG5F2CFSsniuVu 525OmOiPiYzaAQmu7Mx4trclyap2QfdfvPdCwjnSim0TbDb/IjWvL5aR4ksjG9RRRWPh DsujPvz5+ynQiiSDyYp1neSSmCn6qRw0XK7M1qomNA3tBN3fQB4u43nK8PAZLjvvqWhQ D3hiUXN8NCljcdmWjmr+6Vi6ibc/vzVz2RttzyIOM23wnruBKM64v22faQF7souxumRV d+iZihOgQe51DfShkUrOVsv8yxs//96j4NvInN0jCY5cBBhrm2ezUZ2UY9Wl6/jiXRaM 013w== X-Gm-Message-State: AOAM530C949EB2sSdKRIgTNfEbUEcyDZFvF9V2cuhfL3btMZctN2Qwhc tY4K+TqQBnw4dNGPOK2B1Ig+vKiWZELu0oWOosiR/vaBfTKtgQ== X-Received: by 2002:a50:cd86:: with SMTP id p6mr19718540edi.212.1627914661663; Mon, 02 Aug 2021 07:31:01 -0700 (PDT) MIME-Version: 1.0 References: <20210731192637.3653796-1-lrizzo@google.com> In-Reply-To: From: Luigi Rizzo Date: Mon, 2 Aug 2021 16:30:50 +0200 Message-ID: Subject: Re: [PATCH] amd/iommu: fix logic bug in amd_iommu_report_page_fault() To: Joerg Roedel Cc: Will Deacon , linux-kernel , David Rientjes , Luigi Rizzo , Suravee Suthikulpanit Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 2, 2021 at 4:13 PM Joerg Roedel wrote: > > On Sat, Jul 31, 2021 at 12:26:37PM -0700, Luigi Rizzo wrote: > > amd_iommu_report_page_fault() has two print paths, depending on whether or > > not it can find a pci device. But the code erroneously enters the second > > path if the rate limiter in the first path triggers: > > if (dev_data && ratelimit(A)) { A; } else if (ratelimit(B)) { B; } > > The correct code should be > > if (dev_data) { if (ratelimit(A)) { A;} } else if (ratelimit(B)) { B; } > > > > Signed-off-by: Luigi Rizzo > > --- > > drivers/iommu/amd/iommu.c | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > Thanks, but I queued this patch already: > > https://lore.kernel.org/r/YPgk1dD1gPMhJXgY@wantstofly.org Ah didn't realize that. Thank you! Two questions on the topic: 1. how comes only the AMD driver is so verbose in reporting io page faults? Neither intel nor other iommu drivers seem to log anything 2. Would it make sense to have a control to disable such logging, either per-device or globally? Eg something like this (negative logic so it must be set explicitly to disable logging). @ -985,6 +985,7 @@ struct device { defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) bool dma_coherent:1; #endif + bool no_log_fault:1; ... + if (!pdev->dev.no_log_fault && __ratelimit(&dev_data->rs)) + dev_err(&pdev->dev, "Event logged [IO_PAGE_FAULT dom cheers luigi