All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Ming Lei <ming.lei@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Long Li <longli@microsoft.com>, Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Keith Busch <keith.busch@intel.com>, Jens Axboe <axboe@fb.com>,
	Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	John Garry <john.garry@huawei.com>,
	Hannes Reinecke <hare@suse.com>,
	linux-nvme@lists.infradead.org, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 1/4] softirq: implement IRQ flood detection mechanism
Date: Tue, 3 Sep 2019 08:40:35 +0200	[thread overview]
Message-ID: <6b88719c-782a-4a63-db9f-bf62734a7874@linaro.org> (raw)
In-Reply-To: <20190903063125.GA21022@ming.t460p>

On 03/09/2019 08:31, Ming Lei wrote:
> Hi Daniel,
> 
> On Tue, Sep 03, 2019 at 07:59:39AM +0200, Daniel Lezcano wrote:
>>
>> Hi Ming Lei,
>>
>> On 03/09/2019 05:30, Ming Lei wrote:
>>
>> [ ... ]
>>
>>
>>>>> 2) irq/timing doesn't cover softirq
>>>>
>>>> That's solvable, right?
>>>
>>> Yeah, we can extend irq/timing, but ugly for irq/timing, since irq/timing
>>> focuses on hardirq predication, and softirq isn't involved in that
>>> purpose.
>>>
>>>>  
>>>>> Daniel, could you take a look and see if irq flood detection can be
>>>>> implemented easily by irq/timing.c?
>>>>
>>>> I assume you can take a look as well, right?
>>>
>>> Yeah, I have looked at the code for a while, but I think that irq/timing
>>> could become complicated unnecessarily for covering irq flood detection,
>>> meantime it is much less efficient for detecting IRQ flood.
>>
>> In the series, there is nothing describing rigorously the problem (I can
>> only guess) and why the proposed solution solves it.
>>
>> What is your definition of an 'irq flood'? A high irq load? An irq
>> arriving while we are processing the previous one in the bottom halves?
> 
> So far, it means that handling interrupt & softirq takes all utilization
> of one CPU, then processes can't be run on this CPU basically, usually
> sort of CPU lockup warning will be triggered.

It is a scheduler problem then ?

>> The patch 2/4 description says "however IO completion is only done on
>> one of these submission CPU cores". That describes the bottleneck and
>> then the patch says "Add IRQF_RESCUE_THREAD to create one interrupt
>> thread handler", what is the rational between the bottleneck (problem)
>> and the irqf_rescue_thread (solution)?
> 
> The solution is to switch to handle this interrupt on the created rescue
> irq thread context when irq flood is detected, and 'this interrupt' means
> the interrupt requested with IRQF_RESCUE_THREAD.
> 
>>
>> Is it really the solution to track the irq timings to detect a flood?
> 
> The solution tracks the time taken on running do_IRQ() for each CPU.




-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Ming Lei <ming.lei@redhat.com>
Cc: Jens Axboe <axboe@fb.com>, Hannes Reinecke <hare@suse.com>,
	Sagi Grimberg <sagi@grimberg.me>,
	linux-scsi@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Long Li <longli@microsoft.com>,
	John Garry <john.garry@huawei.com>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-nvme@lists.infradead.org,
	Keith Busch <keith.busch@intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH 1/4] softirq: implement IRQ flood detection mechanism
Date: Tue, 3 Sep 2019 08:40:35 +0200	[thread overview]
Message-ID: <6b88719c-782a-4a63-db9f-bf62734a7874@linaro.org> (raw)
In-Reply-To: <20190903063125.GA21022@ming.t460p>

On 03/09/2019 08:31, Ming Lei wrote:
> Hi Daniel,
> 
> On Tue, Sep 03, 2019 at 07:59:39AM +0200, Daniel Lezcano wrote:
>>
>> Hi Ming Lei,
>>
>> On 03/09/2019 05:30, Ming Lei wrote:
>>
>> [ ... ]
>>
>>
>>>>> 2) irq/timing doesn't cover softirq
>>>>
>>>> That's solvable, right?
>>>
>>> Yeah, we can extend irq/timing, but ugly for irq/timing, since irq/timing
>>> focuses on hardirq predication, and softirq isn't involved in that
>>> purpose.
>>>
>>>>  
>>>>> Daniel, could you take a look and see if irq flood detection can be
>>>>> implemented easily by irq/timing.c?
>>>>
>>>> I assume you can take a look as well, right?
>>>
>>> Yeah, I have looked at the code for a while, but I think that irq/timing
>>> could become complicated unnecessarily for covering irq flood detection,
>>> meantime it is much less efficient for detecting IRQ flood.
>>
>> In the series, there is nothing describing rigorously the problem (I can
>> only guess) and why the proposed solution solves it.
>>
>> What is your definition of an 'irq flood'? A high irq load? An irq
>> arriving while we are processing the previous one in the bottom halves?
> 
> So far, it means that handling interrupt & softirq takes all utilization
> of one CPU, then processes can't be run on this CPU basically, usually
> sort of CPU lockup warning will be triggered.

It is a scheduler problem then ?

>> The patch 2/4 description says "however IO completion is only done on
>> one of these submission CPU cores". That describes the bottleneck and
>> then the patch says "Add IRQF_RESCUE_THREAD to create one interrupt
>> thread handler", what is the rational between the bottleneck (problem)
>> and the irqf_rescue_thread (solution)?
> 
> The solution is to switch to handle this interrupt on the created rescue
> irq thread context when irq flood is detected, and 'this interrupt' means
> the interrupt requested with IRQF_RESCUE_THREAD.
> 
>>
>> Is it really the solution to track the irq timings to detect a flood?
> 
> The solution tracks the time taken on running do_IRQ() for each CPU.




-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2019-09-03  6:40 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-27  8:53 [PATCH 0/4] genirq/nvme: add IRQF_RESCUE_THREAD for avoiding IRQ flood Ming Lei
2019-08-27  8:53 ` [PATCH 1/4] softirq: implement IRQ flood detection mechanism Ming Lei
2019-08-27 14:42   ` Thomas Gleixner
2019-08-27 16:19     ` Thomas Gleixner
2019-08-27 23:04       ` Ming Lei
2019-08-27 23:12         ` Thomas Gleixner
2019-08-27 22:58     ` Ming Lei
2019-08-27 23:09       ` Thomas Gleixner
2019-08-28 11:06         ` Ming Lei
2019-08-28 11:23           ` Thomas Gleixner
2019-08-28 13:50             ` Ming Lei
2019-08-28 14:07               ` Thomas Gleixner
2019-09-03  3:30                 ` Ming Lei
2019-09-03  3:30                   ` Ming Lei
2019-09-03  5:59                   ` Daniel Lezcano
2019-09-03  5:59                     ` Daniel Lezcano
2019-09-03  6:31                     ` Ming Lei
2019-09-03  6:31                       ` Ming Lei
2019-09-03  6:40                       ` Daniel Lezcano [this message]
2019-09-03  6:40                         ` Daniel Lezcano
2019-09-03  7:28                         ` Ming Lei
2019-09-03  7:28                           ` Ming Lei
2019-09-03  7:50                           ` Daniel Lezcano
2019-09-03  7:50                             ` Daniel Lezcano
2019-09-03  9:30                             ` Ming Lei
2019-09-03  9:30                               ` Ming Lei
2019-09-04 17:07                             ` Bart Van Assche
2019-09-04 17:07                               ` Bart Van Assche
2019-09-04 17:31                               ` Daniel Lezcano
2019-09-04 17:31                                 ` Daniel Lezcano
2019-09-04 17:38                                 ` Bart Van Assche
2019-09-04 17:38                                   ` Bart Van Assche
2019-09-04 18:02                                   ` Peter Zijlstra
2019-09-04 18:02                                     ` Peter Zijlstra
2019-09-04 19:47                                     ` Bart Van Assche
2019-09-04 19:47                                       ` Bart Van Assche
2019-09-05  9:11                                       ` Ming Lei
2019-09-05  9:11                                         ` Ming Lei
2019-09-05  9:06                                 ` Ming Lei
2019-09-05  9:06                                   ` Ming Lei
2019-09-05 10:37                                   ` Daniel Lezcano
2019-09-05 10:37                                     ` Daniel Lezcano
2019-09-06  1:22                                     ` Long Li
2019-09-06  1:22                                       ` Long Li
2019-09-06  4:36                                       ` Daniel Lezcano
2019-09-06  4:36                                         ` Daniel Lezcano
2019-09-06  4:44                                         ` Long Li
2019-09-06  4:44                                           ` Long Li
2019-09-06  1:48                                     ` Ming Lei
2019-09-06  1:48                                       ` Ming Lei
2019-09-06  5:14                                       ` Daniel Lezcano
2019-09-06  5:14                                         ` Daniel Lezcano
2019-09-06 18:30                                         ` Sagi Grimberg
2019-09-06 18:30                                           ` Sagi Grimberg
2019-09-06 18:52                                           ` Keith Busch
2019-09-06 18:52                                             ` Keith Busch
2019-09-07  0:01                                           ` Ming Lei
2019-09-07  0:01                                             ` Ming Lei
2019-09-10  3:10                                             ` Sagi Grimberg
2019-09-10  3:10                                               ` Sagi Grimberg
2019-09-18  0:00                                               ` Long Li
2019-09-18  0:00                                                 ` Long Li
2019-09-20 17:14                                                 ` Sagi Grimberg
2019-09-20 17:14                                                   ` Sagi Grimberg
2019-09-20 19:12                                                   ` Long Li
2019-09-20 19:12                                                     ` Long Li
2019-09-20 20:45                                                     ` Sagi Grimberg
2019-09-20 20:45                                                       ` Sagi Grimberg
2019-09-24  0:57                                                       ` Long Li
2019-09-24  0:57                                                         ` Long Li
2019-09-18 14:37                                               ` Ming Lei
2019-09-18 14:37                                                 ` Ming Lei
2019-09-20 17:09                                                 ` Sagi Grimberg
2019-09-20 17:09                                                   ` Sagi Grimberg
2019-09-06 14:18                                       ` Keith Busch
2019-09-06 14:18                                         ` Keith Busch
2019-09-06 17:50                                         ` Long Li
2019-09-06 17:50                                           ` Long Li
2019-09-06 22:19                                           ` Ming Lei
2019-09-06 22:19                                             ` Ming Lei
2019-09-06 22:25                                             ` Keith Busch
2019-09-06 22:25                                               ` Keith Busch
2019-09-06 23:13                                               ` Ming Lei
2019-09-06 23:13                                                 ` Ming Lei
2019-09-10  0:24                                             ` Ming Lei
2019-09-10  0:24                                               ` Ming Lei
2019-09-03  8:09                           ` Thomas Gleixner
2019-09-03  8:09                             ` Thomas Gleixner
2019-09-03  9:24                             ` Ming Lei
2019-09-03  9:24                               ` Ming Lei
2019-08-29  6:15   ` Long Li
2019-08-30  0:55     ` Ming Lei
2019-08-27  8:53 ` [PATCH 2/4] genirq: add IRQF_RESCUE_THREAD Ming Lei
2019-08-27  8:53 ` [PATCH 3/4] nvme: pci: pass IRQF_RESCURE_THREAD to request_threaded_irq Ming Lei
2019-08-27  9:06   ` Johannes Thumshirn
2019-08-27  9:09     ` Ming Lei
2019-08-27  9:12       ` Johannes Thumshirn
2019-08-27 14:34       ` Keith Busch
2019-08-27 14:44         ` Keith Busch
2019-08-27 15:10   ` Bart Van Assche
2019-08-28  1:45     ` Ming Lei
2019-08-27  8:53 ` [PATCH 4/4] genirq: use irq's affinity for threaded irq with IRQF_RESCUE_THREAD Ming Lei
2019-08-27 14:35   ` Keith Busch
2019-09-06  8:50   ` John Garry
2019-09-06  8:50     ` John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6b88719c-782a-4a63-db9f-bf62734a7874@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=axboe@fb.com \
    --cc=hare@suse.com \
    --cc=hch@lst.de \
    --cc=john.garry@huawei.com \
    --cc=keith.busch@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=longli@microsoft.com \
    --cc=ming.lei@redhat.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sagi@grimberg.me \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.