Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5267497ybl; Tue, 27 Aug 2019 01:55:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqyLgkj7gHXqXoCr58pueOY3px383p6oV3lVp5+zlk2XhGUhXHuJ//V9ZCSyQf9e7CaiyTv1 X-Received: by 2002:a65:5348:: with SMTP id w8mr20183923pgr.176.1566896116732; Tue, 27 Aug 2019 01:55:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566896116; cv=none; d=google.com; s=arc-20160816; b=0va3NP0t4ZPhVimNrK8nHLtiohQMttfP8JklmQi3QMDewM4pge0R8K5B+5cs0BBQdw NxDPP0VtkONxftivFGq0U8eo1s8zkTCvzHA7AoLv6xUGrRyJsHghTFjb2KPSRP3r0S9s 2KAV6g0tFusgEvLyvTNxvO/zN4PP/IEqF8aqlFyW0NtCNwp08FR8RfQjWKNIW5vKxNdB 1KAbMYm154IJm7/+S77gFtH3Cqoqf5OjRBiWlDolQAcymJ/hmeDpw76j5BKThZc5kghw 0A175+eFr7H4iFWMmvAh2sb+n5zx3B0aIEGHQkhiqkXt1X28NEZfssbu9htJIafP2wPZ 1xkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ltgbNOTUAIugm35AsY9eEjJeyMwkSwXC2KiJvHfq99E=; b=dwJUMWuKR1pWEuiC3RKxCppbWEQGIxTOMh1DLRJUf4Mu7jFvGO5LWjuVbs/A+dOvNP c6+c+e3Uj4gcFR7Hb0icqRr7v1Sj8r+ukQCd53gp0VeUpXE5PyBuBnWlPTrzCGFee5lJ lzVqBilbInUsT3v678d24TIkOlJxlTXKD1q5AhWCTViQ4pq4nvVle/qdniiAFqnS+m92 UTq47NPnBDhQ9MqLEf/vgxleXqto2nxpTWLKqg0K1Xhf1Kn4CEDUhdr4oYQwS1f2WlGR 7QJLdjUcDRkdIVHRC+tKC1CdRcMDN4nZVqcfONZbNEfAZE+3RB8p3SKCwZZGU8IgQqsV GQQg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e17si11443876pgt.192.2019.08.27.01.55.01; Tue, 27 Aug 2019 01:55:16 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729454AbfH0IyE (ORCPT + 99 others); Tue, 27 Aug 2019 04:54:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35368 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729220AbfH0IyE (ORCPT ); Tue, 27 Aug 2019 04:54:04 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B34A08980EB; Tue, 27 Aug 2019 08:54:03 +0000 (UTC) Received: from localhost (ovpn-8-27.pek2.redhat.com [10.72.8.27]) by smtp.corp.redhat.com (Postfix) with ESMTP id F373C5D70D; Tue, 27 Aug 2019 08:53:59 +0000 (UTC) From: Ming Lei To: Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Ming Lei , Long Li , Ingo Molnar , Peter Zijlstra , Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , John Garry , Hannes Reinecke , linux-nvme@lists.infradead.org, linux-scsi@vger.kernel.org Subject: [PATCH 0/4] genirq/nvme: add IRQF_RESCUE_THREAD for avoiding IRQ flood Date: Tue, 27 Aug 2019 16:53:40 +0800 Message-Id: <20190827085344.30799-1-ming.lei@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.67]); Tue, 27 Aug 2019 08:54:04 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Guys, The 1st patch implements one simple EWMA based mechanism for detecting IRQ flood. The 2nd patch adds IRQF_RESCUE_THREAD, and interrupts will be handled in the created rescue thread in case that IRQ flood comes. The 3rd patch applies the flag of IRQF_RESCURE_THREAD for NVMe. The last patch uses irq's affinity in case of IRQF_RESCUE_THREAD. Please review & comment! Long, please test and see if your issue can be fixed. Ming Lei (4): softirq: implement IRQ flood detection mechanism genirq: add IRQF_RESCUE_THREAD nvme: pci: pass IRQF_RESCURE_THREAD to request_threaded_irq genirq: use irq's affinity for threaded irq with IRQF_RESCUE_THREAD drivers/base/cpu.c | 25 +++++++++++++++++++++ drivers/nvme/host/pci.c | 17 +++++++++++++-- include/linux/hardirq.h | 2 ++ include/linux/interrupt.h | 6 +++++ kernel/irq/handle.c | 6 ++++- kernel/irq/manage.c | 25 ++++++++++++++++++++- kernel/softirq.c | 46 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 123 insertions(+), 4 deletions(-) Cc: Long Li Cc: Ingo Molnar , Cc: Peter Zijlstra Cc: Keith Busch Cc: Jens Axboe Cc: Christoph Hellwig Cc: Sagi Grimberg Cc: John Garry Cc: Thomas Gleixner Cc: Hannes Reinecke Cc: linux-nvme@lists.infradead.org Cc: linux-scsi@vger.kernel.org -- 2.20.1