Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp721532ybe; Thu, 5 Sep 2019 05:04:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqytsqTObpViP+O9VIqan+7i7vjCVRck/Jkw12RG9fixR8tCs+/eEumFVUUm1kZU90/nm9PG X-Received: by 2002:a17:902:758a:: with SMTP id j10mr2988973pll.233.1567685081427; Thu, 05 Sep 2019 05:04:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567685081; cv=none; d=google.com; s=arc-20160816; b=S8JI/4O0kGKJWp1pAWe1Dfz1yRIaP7kU6wpQgrK9OLb9u8qc15Ph4aEGPggA0h/fFQ trGcSX8cdzacx8b0JD0LSEtM3vFNYfVXJWLMwNppV4hmkri4fUV9q7aPhjFxwhv5uwX6 kHkSsopGVeGlcNC8lvddK8QAu+awCqWuwg+dwzRvfrBjKJ8AQYv1aL69TjGXfomR+eIB ucx+LZxeOXrNlmp4KWwEPCL8ax/tSpsxmUoz3nkpvhagDJLuYDD14ohufaQlz6ZbtrS/ Ws2LCRX1pnNiAhYlI0W+m+hTHEPBRMVn4MU7ubtlSH+UI8eHpVpcaYNy9sCNJaYTapi2 jrdw== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :dkim-signature; bh=UQ+h/l/92tqieco4xsfKNJdjS3t97xdei1lBQLqVVqE=; b=cFltHoeFrZnAnK5yOcnZOt7IjJNKxdfjA4nKLDkH0vcZBlW0r+QcFXZbxNNRKoZxas JtqonNA+rm7cr4HX+VSUkHxlg23NNYXOZtzmrYct9fdklsAAZqe4O5cz0F5trHt3MZGX c2NgamtKBC6Mrx1BbbKd8mvpoNOowMw0EG6rIwiQuVHUkqnZo6MNXeJjEHtX1zg0LOiv O1LX52UZwE11adYUIuUn8uV6wZWP3alaLJp4OhAZerVE4CAp90zQRxwFumeRsY9LAxv0 5CiD17k4iHcXdpYZOgkb9s+tXPL3UJYFxYM3oHQFGvzSNABL8gsc4c1Ufhkn0hPNrDNQ n0rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oLrunmvx; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d1si1600469pgq.540.2019.09.05.05.04.24; Thu, 05 Sep 2019 05:04:41 -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=@linaro.org header.s=google header.b=oLrunmvx; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387712AbfIEKhT (ORCPT + 99 others); Thu, 5 Sep 2019 06:37:19 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:52318 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726137AbfIEKhT (ORCPT ); Thu, 5 Sep 2019 06:37:19 -0400 Received: by mail-wm1-f68.google.com with SMTP id t17so2175055wmi.2 for ; Thu, 05 Sep 2019 03:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=UQ+h/l/92tqieco4xsfKNJdjS3t97xdei1lBQLqVVqE=; b=oLrunmvxO0Hzr0g41pSyPC3MUWkGGNEr5ye1fOhxu7RJkfm5pBV+YSFjJIOsnzeJdz +SEmMjy7LUZ4mc7w4ycRb2qxITElpP4KX0f6dySR3PTneX37h6SS8zvDri088tcd+T4C ecYjsbt+InGBkDSEDzdxoV/16fDskJ1SXNgw5gwEo1Vs7MB87t+cOq0INhZJkgHkm6yt eVeY31Res8ghF2FuvGb5m/yY133CbkHcd6uDmryY2fM4q8zgwDLuJFtzpEPIA7y5oLAH yb5piyaONNSQvNoZQy7bFlqtNH/gHbgLzdfC8F1w+0742fXve13SipZ0N+Ovqg/fbWGe twyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=UQ+h/l/92tqieco4xsfKNJdjS3t97xdei1lBQLqVVqE=; b=KBhpCTtcq70/9+rU/FU80eq99yil7roZOge1XvBvKNNpEjne00WRKRnk6vtNDvE9hC J6o1bDIcjCoiEenpeDaNs7cUSBMbyI49RHQMO92+AHG14TdXJJ1nKZp3fU6l+GKSzm9j 0KPeWG/CDnr378tYbFpUM+OPQzZt2zZgygHEkwsrrRdbdk39lTNUA0o30Gi8qCqoauJf pbjRU8etwU6Osf9RVmsLfzQu4fkNt+eLCy6SXi5r0ZUgQ+j5NLsnu+sBh2W8gJpp8Z7k TURjgpazI31huGqxOh7yJQymhPjxx71pESnDm9MQrU/xu1NJK0/GGIuGK4FUIY81epJM 5+9Q== X-Gm-Message-State: APjAAAUsOEKAqZXMHqB0MjBcKbwYW4TGaXQtD5mXo+dDxC4KDIlECXzU xLh6i4WcPiHh6Ayr4QNx16tFLg== X-Received: by 2002:a1c:1f10:: with SMTP id f16mr2439059wmf.176.1567679835865; Thu, 05 Sep 2019 03:37:15 -0700 (PDT) Received: from ?IPv6:2a01:e34:ed2f:f020:794a:5c4d:16b4:31a6? ([2a01:e34:ed2f:f020:794a:5c4d:16b4:31a6]) by smtp.googlemail.com with ESMTPSA id j30sm2517055wrb.66.2019.09.05.03.37.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 05 Sep 2019 03:37:15 -0700 (PDT) Subject: Re: [PATCH 1/4] softirq: implement IRQ flood detection mechanism To: Ming Lei Cc: Bart Van Assche , Jens Axboe , Hannes Reinecke , Sagi Grimberg , linux-scsi@vger.kernel.org, Peter Zijlstra , Long Li , John Garry , LKML , linux-nvme@lists.infradead.org, Keith Busch , Ingo Molnar , Thomas Gleixner , Christoph Hellwig References: <20190828135054.GA23861@ming.t460p> <20190903033001.GB23861@ming.t460p> <299fb6b5-d414-2e71-1dd2-9d6e34ee1c79@linaro.org> <20190903063125.GA21022@ming.t460p> <6b88719c-782a-4a63-db9f-bf62734a7874@linaro.org> <20190903072848.GA22170@ming.t460p> <6f3b6557-1767-8c80-f786-1ea667179b39@acm.org> <2a8bd278-5384-d82f-c09b-4fce236d2d95@linaro.org> <20190905090617.GB4432@ming.t460p> From: Daniel Lezcano Openpgp: preference=signencrypt Autocrypt: addr=daniel.lezcano@linaro.org; prefer-encrypt=mutual; keydata= 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 Message-ID: <6a36ccc7-24cd-1d92-fef1-2c5e0f798c36@linaro.org> Date: Thu, 5 Sep 2019 12:37:13 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190905090617.GB4432@ming.t460p> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ming, On 05/09/2019 11:06, Ming Lei wrote: > On Wed, Sep 04, 2019 at 07:31:48PM +0200, Daniel Lezcano wrote: >> Hi, >> >> On 04/09/2019 19:07, Bart Van Assche wrote: >>> On 9/3/19 12:50 AM, Daniel Lezcano wrote: >>>> On 03/09/2019 09:28, Ming Lei wrote: >>>>> On Tue, Sep 03, 2019 at 08:40:35AM +0200, Daniel Lezcano wrote: >>>>>> It is a scheduler problem then ? >>>>> >>>>> Scheduler can do nothing if the CPU is taken completely by handling >>>>> interrupt & softirq, so seems not a scheduler problem, IMO. >>>> >>>> Why? If there is a irq pressure on one CPU reducing its capacity, the >>>> scheduler will balance the tasks on another CPU, no? >>> >>> Only if CONFIG_IRQ_TIME_ACCOUNTING has been enabled. However, I don't >>> know any Linux distro that enables that option. That's probably because >>> that option introduces two rdtsc() calls in each interrupt. Given the >>> overhead introduced by this option, I don't think this is the solution >>> Ming is looking for. >> >> Was this overhead reported somewhere ? > > The syscall of gettimeofday() calls ktime_get_real_ts64() which finally > calls tk_clock_read() which calls rdtsc too. > > But gettimeofday() is often used in fast path, and block IO_STAT needs to > read it too. > >> >>> See also irqtime_account_irq() in kernel/sched/cputime.c. >> >> From my POV, this framework could be interesting to detect this situation. > > Now we are talking about IRQ_TIME_ACCOUNTING instead of IRQ_TIMINGS, and the > former one could be used to implement the detection. And the only sharing > should be the read of timestamp. You did not share yet the analysis of the problem (the kernel warnings give the symptoms) and gave the reasoning for the solution. It is hard to understand what you are looking for exactly and how to connect the dots. AFAIU, there are fast medium where the responses to requests are faster than the time to process them, right? I don't see how detecting IRQ flooding and use a threaded irq is the solution, can you explain? If the responses are coming at a very high rate, whatever the solution (interrupts, threaded interrupts, polling), we are still in the same situation. My suggestion was initially to see if the interrupt load will be taken into accounts in the cpu load and favorize task migration with the scheduler load balance to a less loaded CPU, thus the CPU processing interrupts will end up doing only that while other CPUs will handle the "threaded" side. Beside that, I'm wondering if the block scheduler should be somehow involved in that [1] -- Daniel [1] https://www.linaro.org/blog/io-bandwidth-management-for-production-quality-services/ -- Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog