Project

General

Profile

Actions

Bug #5737

closed

mr_sas driver does not pass SCSI mode sense to disks when adapter in JBOD mode.

Added by Andy Fiddaman over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
driver - device drivers
Start date:
2015-03-23
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

Some of the LSI chips which are supported by the mr_sas driver can be configured in HBA mode.
When in this mode, the mr_sas driver does not pass mode sense commands through to the hardware. This results in error messages during boot and ZFS being unable to set write caching on drives.

In testing with the Dell HPERC H730p adapter, based on the LSI MegaRAID SAS-3 3108 (Invader) chip, boot looks like:

NOTICE: map sync received, switched map_id to 1

NOTICE: LDMAP sync completed.
WARNING: /pci@0,0/pci8086,2f02@1/pci1028,1f49@0/sd@0,1 (sd0):
        Command failed to complete...Device is gone

WARNING: /pci@0,0/pci8086,2f02@1/pci1028,1f49@0/sd@1,1 (sd1):
        Command failed to complete...Device is gone

Hostname: carolina
WARNING: /pci@0,0/pci8086,2f02@1/pci1028,1f49@0/sd@4,1 (sd6):
        Command failed to complete...Device is gone
... etc.

It is also not possible to view or modify write caching through format -e

carolina# (6) format -e
selecting c0t2d1
format> cache
cache> write
write_cache> disp
Mode sense failed.
write_cache> enable
Mode sense failed.

Nor can any mode sense pages be retrieved using a tool such as <i>sdparm</i>:

carolina# (10) sdparm -a /dev/rdsk/c0t2d1s0
    /dev/rdsk/c0t2d1s0: SEAGATE   ST91000640SS      0004
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
mode sense (10): pass through os error: I/O error
... etc.

I have an initial patch for this which I'll be sending to the developers' list for review this week.

With the patch:

... Clean boot ...

format -e
...
write_cache> displ
Write Cache is enabled

carolina# (4) sdparm -a /dev/rdsk/c0t2d1s2
    /dev/rdsk/c0t2d1s2: SEAGATE   ST91000640SS      0004
Read write error recovery mode page:
  AWRE        1  [cha: y, def:  1, sav:  1]
  ARRE        1  [cha: y, def:  1, sav:  1]
  TB          0  [cha: y, def:  0, sav:  0]
  RC          0  [cha: y, def:  0, sav:  0]
  EER         0  [cha: y, def:  0, sav:  0]
  PER         0  [cha: y, def:  0, sav:  0]
... many more lines deleted
Actions #1

Updated by Electric Monk over 8 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

git commit e65bc174f67bfc560c23a317bb16268ec18103f6

commit  e65bc174f67bfc560c23a317bb16268ec18103f6
Author: Andy Fiddaman <omnios@citrus-it.net>
Date:   2015-03-28T20:09:43.000Z

    5737 mr_sas driver does not pass SCSI mode sense to disks when adapter in JBOD mode.
    5738 mr_sas driver - poor performance when Invader adapter in JBOD mode.
    Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
    Reviewed by: Garrett D'Amore <garrett@damore.org>
    Approved by: Dan McDonald <danmcd@omniti.com>

Actions

Also available in: Atom PDF