Project

General

Profile

Actions

Bug #7725

closed

apix may lose interrupts occuring while softint is running at same IPL

Added by Hans Rosenfeld over 5 years ago. Updated over 5 years ago.

Status:
Rejected
Priority:
Normal
Category:
kernel
Start date:
2017-01-03
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

Description

During development of the emlxs driver Bob Warning of ATTO found that hardware interrupts could go missing. He analyzed that issue and found a bug in apix. Here's what happens:

  • a softint is running at IPL x
  • hardint a comes in at IPL x and is put on the pending queue, bit x being set in x_intr_pending
  • softint finishes, and the harding stays pending
  • time passes
  • hardint b comes in at IPL x, clears bit x in x_intr_pending (in apix_intr_thread_prolog())
  • hardint b finishes, but apix_do_pending_hardint() doesn't see pending hardint a as bit x isn't set in x_intr_pending

Bob was also able to reproduce this with a QLogic FC card.

The fix is actually pretty simple: After finishing the softint processing, check the queues for newly added interrupts again and process them immediately.


Related issues

Is duplicate of illumos gate - Bug #7724: apix may lose interrupts occuring while softint is running at same IPLClosedHans Rosenfeld2017-01-03

Actions
Actions #1

Updated by Hans Rosenfeld over 5 years ago

  • Status changed from New to Rejected

duplicate of #7724

Actions #2

Updated by Marcel Telka almost 4 years ago

  • Is duplicate of Bug #7724: apix may lose interrupts occuring while softint is running at same IPL added
Actions

Also available in: Atom PDF