Bug 1304001 - Timer interrupt handling can take up to 20 usec on RT kernel
Timer interrupt handling can take up to 20 usec on RT kernel
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: kernel-rt (Show other bugs)
x86_64 Unspecified
unspecified Severity medium
: rc
: 7.3
Assigned To: Clark Williams
Jiri Kastner
Depends On:
Blocks: 1274397
  Show dependency treegraph
Reported: 2016-02-02 11:32 EST by Andrew Theurer
Modified: 2016-05-10 17:53 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2016-05-10 17:53:27 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Andrew Theurer 2016-02-02 11:32:12 EST
Description of problem:
Timer interrupt handling uses up to 20 usec

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. run cpu bound process on isolcpu
2. trace for task switch
3. record time between task switches, where ksoftirqd is switched in/out

Actual results:
We see that cpu bound process is preempted for ksoftirqd, which does timer interrupt work, the switches back to cpu bound process.  This work can take up to 20 usec

Expected results:
Timer interrupt work should not switch thread context and process timer interrupt work much faster (perhaps 2-3 usec, not sure of exact amount)

Additional info:
This is currently observed with a DPDK program running at fifo:95
Comment 2 Steven Rostedt 2016-02-02 11:51:51 EST
What exactly is the bound task doing? ksoftirqd does timer work, and a timer interrupt can run. And things like task usage accounting can take 20 us.
Comment 3 Steven Rostedt 2016-02-02 11:55:31 EST
Also, have you added nohz_full and rcu_nocb to that isolated CPU as well? That could help too.
Comment 4 Andrew Theurer 2016-02-02 12:45:43 EST
We have no_full, but not rcu_nocb yet, so we will add that.  I don't believe the user thread is doing anything other than some futex calls once in a while.  We'll trace to see if anything else is going on with the user thread.
Comment 5 Beth Uptagrafft 2016-03-08 12:56:33 EST
Andrew, were you able to do a trace to see if anything else was going on?

Comment 6 Andrew Theurer 2016-03-08 14:13:38 EST
Karl, would it be possible to do another trace to see what is happening during the timer interrupt?
Comment 7 Beth Uptagrafft 2016-03-28 10:25:57 EDT
Andrew/Karl, any updates?
Comment 8 Beth Uptagrafft 2016-05-10 15:51:23 EDT
Andrew/Karl, any updates? If we can't get any additional updates, we will need to close this BZ.
Comment 9 Andrew Theurer 2016-05-10 17:41:51 EDT
We have not done a trace, and I am not sure when we will have opportunity to do so.  We can close this and repoen when we have a trace.
Comment 10 Beth Uptagrafft 2016-05-10 17:53:27 EDT
Thank you, Andrew. As you suggest, we will close this issue. Please reopen the BZ if you do get a trace and we will take a look at it.

Note You need to log in before you can comment on or make changes to this bug.