Hi Matt, On 07/08/2009, Matthew Dillon <[email protected]> wrote: > > :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? > : > :Regards, > > 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; > #endif > > 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. ciss0: <HP Smart Array P800> port 0x5000-0x50ff mem 0xfdef0000-0xfdef0fff,0xfdf00000-0xfdffffff irq 7 at device 0.0 on pci14 ciss1: <HP Smart Array P400> port 0x4000-0x40ff mem 0xfdbf0000-0xfdbf0fff,0xfdc00000-0xfdcfffff irq 10 at device 0.0 on pci6 da0 at ciss1 bus 0 target 0 lun 0 da1 at ciss1 bus 0 target 1 lun 0 da2 at ciss1 bus 0 target 2 lun 0 but I think it would be the same for all SA family members...
Works fine with this change, thanks. -- http://suckit.blog.hu/
