Project

General

Profile

Actions

Bug #7275

closed

nvme shouldn't use ddi_intr_enable/disable to block interrupts

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

Status:
Closed
Priority:
Normal
Category:
-
Start date:
2016-08-05
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage
Gerrit CR:

Description

Apparently these functions are intended to be only used attach and detach time to enable or disable the interrupts in the system. As such they are doing a lot of work under the hood thats just wrong to do for temporarily blocking interrupts.

As it turns out VMware gets very confused when nvme does that and powers off the VM. That doesn't really happen by default right now because of the way the interrupts are used by nvme, but it's a time bomb anyway.

Blocking of interrupts happens only once in the code: at attach time when we re-init a semaphore. As there is no way the semaphore could be used by the time it is re-inited we don't need to disable the interrupts.

Actions #1

Updated by Hans Rosenfeld almost 5 years ago

  • Assignee set to Hans Rosenfeld
  • Difficulty changed from Medium to Bite-size
Actions #2

Updated by Electric Monk almost 5 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 6afc9eb26c8915821607cde21b0a32addc165a72

commit  6afc9eb26c8915821607cde21b0a32addc165a72
Author: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Date:   2016-08-10T15:04:01.000Z

    7275 nvme shouldn't use ddi_intr_enable/disable to block interrupts
    Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
    Reviewed by: Dan Fields <dan.fields@nexenta.com>
    Reviewed by: Dan McDonald <danmcd@omniti.com>
    Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
    Approved by: Richard Lowe <richlowe@richlowe.net>

Actions

Also available in: Atom PDF