From: Thomas Gleixner <tglx@linutronix.de>
To: Felipe Balbi <balbi@ti.com>
Cc: hpa@zytor.com, okuno.kohji@jp.panasonic.com,
bigeasy@linutronix.de, linux-kernel@vger.kernel.org,
msmucr@gmail.com, nathan.sullivan@ni.com, mingo@kernel.org,
linux-tip-commits@vger.kernel.org
Subject: Re: [tip:irq/core] genirq: Handle force threading of irqs with primary and thread handler
Date: Fri, 9 Oct 2015 12:36:33 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.11.1510091228070.6097@nanos> (raw)
In-Reply-To: <87twq3257l.fsf@saruman.tx.rr.com>
On Tue, 6 Oct 2015, Felipe Balbi wrote:
> this commit causes a performance regression for the USB driver on
> several platforms (anybody using drivers/usb/dwc3, basically).
>
> Here's the USB throughput with linux-next in 3 different scenarios:
>
> 1) Linux next without threadirqs cmdline
>
> test 0: sent 256.00 MB read 33.02 MB/s write 30.01 MB/s
>
> 2) Linux next with threadirqs on cmdline
>
> test 0: sent 256.00 MB read 30.70 MB/s write 27.89 MB/s
>
> 3) Linux next with threadirqs on cmdline + revert of $subject
>
> test 0: sent 256.00 MB read 32.93 MB/s write 29.85 MB/s
>
>
> Considering this is trying to solve an issue found on the SDHCI driver,
> shouldn't that be fixed instead ? Another option would be, of course, to
> add IRQF_NO_THREAD to dwc3, but I'd like to avoid that if possible.
It's not only an issue for SDHCI. It's a general problem with other
drivers as well.
> The way we try to use dwc3 is rather simple, actually. We use the
> primary handle *only* to detect is $this device generated the IRQ and if
> did we wake up the thread. We also don't make use of ONESHOT because we
> mask $this device IRQs in the primary handler and only unmask after the
> thread runs.
So in your case IRQF_NO_THREAD is really the solution. It will keep
your primary handler handled in the hard interrupt context. That will
work on RT as well.
> It's a bit surprising, to me at least, that simply running everything as
> a thread would have such a measurable impact, but it does.
I'm surprised of the size of the impact as well. I wouldn't have
expected that another kernel thread context switch makes such a
difference.
Thanks,
tglx
next prev parent reply other threads:[~2015-10-09 10:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-21 9:01 [PATCH] " Thomas Gleixner
2015-09-22 6:42 ` Kohji Okuno
2015-09-22 10:42 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2015-10-06 18:59 ` Felipe Balbi
2015-10-09 10:36 ` Thomas Gleixner [this message]
2015-10-09 14:01 ` Felipe Balbi
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=alpine.DEB.2.11.1510091228070.6097@nanos \
--to=tglx@linutronix.de \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=msmucr@gmail.com \
--cc=nathan.sullivan@ni.com \
--cc=okuno.kohji@jp.panasonic.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®