ZFS bug: was creating ZIL ignores vfs.zfs.min_auto_ashift, should be ZIL sets improper ashift with AHCI controllers

Borja Marcos borjam at sarenet.es
Fri Nov 7 07:31:08 UTC 2014

On Nov 6, 2014, at 10:10 PM, Steven Hartland wrote:

> On 06/11/2014 14:58, Borja Marcos wrote:
> Ok narrowed down the issue, looks like cache file generation is where the issue is, possibly a race condition.

Hmm and you mentioned a boot pool and a not boot pool. Certainly, that's another difference :/ I wrongly blamed the
controlled difference because I directly suspected the quirks mechanism.

> If you run the following then rerun your zdb I suspect you'll get the right results (ashift: 12)
> zpool set cachefile='' <pool>
> Alternatively you can run the following to display real pool config vs that which is in the cache file:
> zdb -C <pool>

Let's see

# zpool add rpool log ada1
# zdb|fgrep ashift
            ashift: 12
            ashift: 9

ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
ada1: <INTEL SSDSA2CT040G3 4PC10362> ATA-8 SATA 2.x device
ada1: Serial Number PEPR408501DV040AGN
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 38166MB (78165360 512 byte sectors: 16H 63S/T 16383C)
ada1: quirks=0x1<4K>

And now,

# zdb -C rpool|fgrep ashift
                ashift: 12
                ashift: 12

You are right!

This time I had not altered min_auto_ashift but I had added a quirk to ata_da.c. So it
correctly used the quirk sector size to adjust ashift. 

Seems the bug should be "improper cache file generation for a pool used for boot". I'll
see if I can run some more tests.



More information about the freebsd-fs mailing list