[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190905090617.GB4432@ming.t460p>
Date: Thu, 5 Sep 2019 17:06:19 +0800
From: Ming Lei <ming.lei@...hat.com>
To: Daniel Lezcano <daniel.lezcano@...aro.org>
Cc: Bart Van Assche <bvanassche@....org>, Jens Axboe <axboe@...com>,
Hannes Reinecke <hare@...e.com>,
Sagi Grimberg <sagi@...mberg.me>, linux-scsi@...r.kernel.org,
Peter Zijlstra <peterz@...radead.org>,
Long Li <longli@...rosoft.com>,
John Garry <john.garry@...wei.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-nvme@...ts.infradead.org,
Keith Busch <keith.busch@...el.com>,
Ingo Molnar <mingo@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Christoph Hellwig <hch@....de>
Subject: Re: [PATCH 1/4] softirq: implement IRQ flood detection mechanism
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.
Thanks,
Ming
Powered by blists - more mailing lists