HAMMER problems with ciss

Matthew Dillon dillon at apollo.backplane.com
Fri Aug 7 13:10:48 PDT 2009

:Hi All,
:I'm trying to do some testing with dfly 2.2 (both release and the last
:release snapshot) and HAMMER.
:For the first run I issued a simple dd if=/dev/zero of=testfile bs=1M
:command on the filesystem, which wrote some stuff out and immediately
:switched the file system into read only mode.
:UFS works fine.
:The kernel logs this:
:(da1:ciss1:0:1:0): SYNCHRONIZE CACHE(10). CDB: 35 0 0 0 0 0 0 0 0 0
:(da1:ciss1:0:1:0): CAM Status: SCSI Status Error
:(da1:ciss1:0:1:0): SCSI Status: Check Condition
:(da1:ciss1:0:1:0): ILLEGAL REQUEST asc:20,0
:(da1:ciss1:0:1:0): Invalid command operation code
:(da1:ciss1:0:1:0): Unretryable error
:HAMMER(test): Critical error inode=-1 while flushing meta-data
:HAMMER(test): Forcing read-only mode
:HAMMER(test): Critical error inode=-1 while flushing meta-data
:HAMMER(test): Critical write error during flush, refusing to sync UNDO FIFO
:This is with a HP P400 controller with battery backed write cache,
:which -as it seems- doesn't support the SYNCHRONIZE CACHE command.
:FreeBSD's ciss driver apparently has workaround for this.
:Any chance of merging that change into dfly?

    Hmm.  I looked at the driver code and we seem to have the same
    workaround.  The workaround is disabled in both the FreeBSD driver
    and our driver.  Please try changing line 899 in dev/raid/ciss.c,
    change the #if 0 to an #if 1.

#if 0
    /* XXX later revisions may not need this */
    sc->ciss_flags |= CISS_FLAG_FAKE_SYNCH;

    And see if that fixes the problem.  Also post all the ciss lines
    from /var/run/dmesg.boot, maybe I can do a more specific check of
    adapter version to set the flag for.

					Matthew Dillon 
					<dillon at backplane.com>

More information about the Kernel mailing list