[illumos-Advocates] RTI 896 sata module can panic on smartctl issued in vbox

Garrett D'Amore garrett at damore.org
Mon Apr 11 20:45:28 PDT 2011



http://mexico.purplecow.org/gdamore/webrev/satapanic/

(There is one trivial lint fix, and a couple of whitespace fixes for cstyle, that I've made since the above webrev, but I have not regenerated the webrev.  I don't think this was significant enough to warrant a new review.)

I've tested this code on virtual box, where the panic is readily 
reproducible using smartctl.  The command that smartctl uses causes a 
SATA reset to be issued.  After this code, the panic is no longer 
reproducible.  I have used this code (and am using it) on m primary 
workstation for a number of hours now.

hg outgoing -v:

running ssh anonhg at hg.illumos.org "hg -R illumos-gate serve --stdio"
comparing with ssh://anonhg@hg.illumos.org/illumos-gate
searching for changes

changeset:   13337:ebf76b61349f
tag:         tip
user:        Garrett D'Amore <garrett at nexenta.com>
date:        Mon Apr 11 20:37:33 2011 -0700

description:
     896 sata module can panic on smartctl issued in vbox
     Reviewed by: Albert Lee <trisk at nexenta.com>
     Reviewed by: Gordon Ross <gwr at nexenta.com>

modified:
    usr/src/uts/common/io/sata/impl/sata.c

hg pbchk:

garrett at thinkpad{20}> hg pbchk
Copyright check:

C style check:

Header format check:

Java style check:

Mapfile comment check:

File permission check:

Keywords check:

Comments check:

Checking for new tags:

Checking for multiple heads (or branches):

Checking for branch changes:

Checking for uncommitted changes:

Checking for merges:

Nightly build message:

==== Nightly distributed build started:   Mon Apr 11 12:58:36 PDT 2011 ====
==== Nightly distributed build completed: Mon Apr 11 14:59:13 PDT 2011 ====

==== Total build time ====

real    2:00:37

==== Build environment ====

/usr/bin/uname
SunOS thinkpad 5.11 qlc2322 i86pc i386 i86pc

/opt/SUNWspro/bin/dmake
dmake: Sun Distributed Make 7.8 SunOS_i386 Patch 126504-01 2007/07/19
number of concurrent jobs = 10

32-bit compiler
/opt/onbld/bin/i386/cw -_cc
cw version 1.29
primary: /opt/SUNWspro/bin/cc
cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
shadow: /usr/sfw/bin/gcc
gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)

64-bit compiler
/opt/onbld/bin/i386/cw -_cc
cw version 1.29
primary: /opt/SUNWspro/bin/cc
cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
shadow: /usr/sfw/bin/gcc
gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)

/usr/java/bin/javac
java full version "1.6.0_21-b06"

/usr/ccs/bin/as
as: Sun Compiler Common 12 SunOS_i386 snv_121 08/03/2009

/usr/ccs/bin/ld
ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1726

Build project:  group.staff
Build taskid:   144

==== Nightly argument issues ====


==== Build version ====

satafix

==== Make clobber ERRORS ====


==== Make tools clobber ERRORS ====


==== Tools build errors ====


==== Build errors (DEBUG) ====


==== Build warnings (DEBUG) ====


==== Elapsed build time (DEBUG) ====

real  1:16:22.2
user  6:42:40.2
sys   1:21:49.7

==== Build noise differences (DEBUG) ====

1c1
<     -classpath 
/data/work/qlc2322/usr/src/lib/libdtrace_jni/java/classes:/data/work/qlc2322/usr/src/lib/libdtrace_jni/java/src 
-d 
/data/work/qlc2322/proto/root_i386/usr/share/lib/java/javadoc/dtrace/api \
---
 >     -classpath 
/data/work/satafix/usr/src/lib/libdtrace_jni/java/classes:/data/work/satafix/usr/src/lib/libdtrace_jni/java/src 
-d 
/data/work/satafix/proto/root_i386/usr/share/lib/java/javadoc/dtrace/api \
12,19c12,19
< LD_RUN_PATH="/usr/lib:/lib" 
/data/work/qlc2322/usr/src/tools/proto/root_i386-nd/opt/onbld/bin/i386/cw -_cc  
-G Project.o  -o blib/arch/auto/Sun/Solaris/Project/Project.so     \
< Note: 
/data/work/qlc2322/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxPanel.java 
uses or overrides a deprecated API.
< Note: 
/data/work/qlc2322/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollableArea.java 
uses or overrides a deprecated API.
< Note: 
/data/work/qlc2322/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TabbedFolder.java 
uses or overrides a deprecated API.
< Note: 
/data/work/qlc2322/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorStore.java 
uses unchecked or unsafe operations.
< Note: 
/data/work/qlc2322/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/SubFieldTokenizer.java 
uses unchecked or unsafe operations.
< Note: 
/data/work/qlc2322/usr/src/cmd/pools/poold/com/sun/solaris/domain/pools/ResourceMonitor.java 
uses unchecked or unsafe operations.
< Note: 
/data/work/qlc2322/usr/src/cmd/print/printmgr/com/sun/admin/pm/server/Debug.java 
uses unchecked or unsafe operations.
---
 > LD_RUN_PATH="/usr/lib:/lib" 
/data/work/satafix/usr/src/tools/proto/root_i386-nd/opt/onbld/bin/i386/cw -_cc  
-G Project.o  -o blib/arch/auto/Sun/Solaris/Project/Project.so     \
 > Note: 
/data/work/satafix/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/CheckboxPanel.java 
uses or overrides a deprecated API.
 > Note: 
/data/work/satafix/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/ScrollableArea.java 
uses or overrides a deprecated API.
 > Note: 
/data/work/satafix/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/awt/TabbedFolder.java 
uses or overrides a deprecated API.
 > Note: 
/data/work/satafix/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/ColorStore.java 
uses unchecked or unsafe operations.
 > Note: 
/data/work/satafix/usr/src/cmd/krb5/kadmin/gui/visualrt/sunsoft/jws/visual/rt/type/SubFieldTokenizer.java 
uses unchecked or unsafe operations.
 > Note: 
/data/work/satafix/usr/src/cmd/pools/poold/com/sun/solaris/domain/pools/ResourceMonitor.java 
uses unchecked or unsafe operations.
 > Note: 
/data/work/satafix/usr/src/cmd/print/printmgr/com/sun/admin/pm/server/Debug.java 
uses unchecked or unsafe operations.

==== package build errors (DEBUG) ====


==== Validating manifests against proto area ====


==== Check ELF runtime attributes ====


==== Diff ELF runtime attributes (since last build) ====


==== 'dmake lint' of src ERRORS ====


==== Elapsed time of 'dmake lint' of src ====

real    27:53.9
user  1:38:36.1
sys     25:58.8

==== lint warnings src ====


==== lint noise differences src ====


==== cstyle/hdrchk errors ====


==== Find core files ====


==== Check lists of files ====


==== Impact on file permissions ====





More information about the Advocates mailing list