Date: Mon, 29 Apr 2013 15:50:10 +0530 From: Ajit Jain <ajit.jain@cloudbyte.com> To: Steven Hartland <killing@multiplay.co.uk> Cc: freebsd-fs <freebsd-fs@freebsd.org> Subject: Re: seeing data corruption with zfs trim functionality Message-ID: <CAA71u6ZehJq7LE-m3RMCGgZQPT4U%2BO_m6ezfT-a5ig%2Bd%2Bc8uzQ@mail.gmail.com> In-Reply-To: <60316751643743738AB83DABC6A5934B@multiplay.co.uk> References: <CAA71u6Y5dKZ9O0rqxCpx-9t7DYgTnPZSoNy-iHOnmzrOUYp%2Bvw@mail.gmail.com> <60316751643743738AB83DABC6A5934B@multiplay.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi Steven,
Freebsd Version: 9
SSD: Seagate SSD, complete smartctl output is attached with the mail.
Not sure if I could provide the SSD information that you were looking for.
If not, could you please tell me command (if any) to get the information.
LSI card:
mpslsi0@pci0:2:0:0: class=0x010700 card=0x30801000 chip=0x00721000
rev=0x03 hdr=0x00
vendor = 'LSI Logic / Symbios Logic'
device = 'SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]'
class = mass storage
subclass = SAS
Complete pciconf -lv output is attached with mail.
thanks
ajit
On Mon, Apr 29, 2013 at 1:52 PM, Steven Hartland <killing@multiplay.co.uk>wrote:
> ----- Original Message ----- From: "Ajit Jain" <ajit.jain@cloudbyte.com>
>
>
> I am running zfs with trim functionality (ported from head). Seeing data
>> corruption when running iotest* with multiple threads (never saw data
>> corruption with single thread).
>>
>> The patches merged to add trim support are as follows:
>> 1. 240868 (zfs trim patch)
>> 2. 230053 and 245252 (block device driver trim support)
>> 3. 239655 (fix an issue in patch 230053)
>>
>> I am "NOT" seeing data corruption in the following cases:
>> 1. Running iotest with single thread (Trim is enabled at entire io stack).
>> 2. Trim is enabled at zfs layer but disable at driver layer i.e. delete
>> method is set to NONE (even with multiple threads).
>>
>>
>> Since patch 240868 alone was not working as I pulled in additional zfs
>> trim
>> patches 244155, 244187, 244188, 248572 (however I am not using separate
>> L2arc device), 248573, 248574, 248575 and 248576. Still I am seeing the
>> same issue.
>>
>> Issue: After some time running with multiple thread write system call
>> return sometimes with EIO or 122 (checksum error) error code.
>>
>> I looked at GEOM code a bit I think it already has the trim (DELETE)
>> command support. Still I am doubtful if I have pulled in all required
>> patches in the entire I/O stack.
>>
>> I am using a LSI SAS HBA card to connect to the SSD, firmware seems to
>> claim the support for trim.
>>
>> *iotest: non standard freebsd FreeBSD utility, which creates files and
>> does
>> I/O on the files and can be invoked in single/multithread mode to do the
>> I/O.
>>
>
> What version are you porting the changes to?
>
> What SSD are you using?
>
> What LSI controller are you using?
>
> Regards
> Steve
>
> ==============================**==================
> This e.mail is private and confidential between Multiplay (UK) Ltd. and
> the person or entity to whom it is addressed. In the event of misdirection,
> the recipient is prohibited from using, copying, printing or otherwise
> disseminating it or any information contained in it.
> In the event of misdirection, illegible or incomplete transmission please
> telephone +44 845 868 1337
> or return the E.mail to postmaster@multiplay.co.uk.
>
>
[-- Attachment #2 --]
hostb0@pci0:0:0:0: class=0x060000 card=0x50001458 chip=0x5a141002 rev=0x02 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (external gfx0 port B)'
class = bridge
subclass = HOST-PCI
pcib1@pci0:0:2:0: class=0x060400 card=0x50001458 chip=0x5a161002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (PCI express gpp port B)'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:3:0: class=0x060400 card=0x50001458 chip=0x5a171002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (PCI express gpp port C)'
class = bridge
subclass = PCI-PCI
pcib3@pci0:0:4:0: class=0x060400 card=0x50001458 chip=0x5a181002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (PCI express gpp port D)'
class = bridge
subclass = PCI-PCI
pcib4@pci0:0:9:0: class=0x060400 card=0x50001458 chip=0x5a1c1002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (PCI express gpp port H)'
class = bridge
subclass = PCI-PCI
pcib5@pci0:0:10:0: class=0x060400 card=0x50001458 chip=0x5a1d1002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'RD890 PCI to PCI bridge (external gfx1 port A)'
class = bridge
subclass = PCI-PCI
ahci0@pci0:0:17:0: class=0x01018f card=0xb0021458 chip=0x43901002 rev=0x40 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]'
class = mass storage
subclass = ATA
ohci0@pci0:0:18:0: class=0x0c0310 card=0x50041458 chip=0x43971002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
class = serial bus
subclass = USB
ehci0@pci0:0:18:2: class=0x0c0320 card=0x50041458 chip=0x43961002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
class = serial bus
subclass = USB
ohci1@pci0:0:19:0: class=0x0c0310 card=0x50041458 chip=0x43971002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
class = serial bus
subclass = USB
ehci1@pci0:0:19:2: class=0x0c0320 card=0x50041458 chip=0x43961002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
class = serial bus
subclass = USB
none0@pci0:0:20:0: class=0x0c0500 card=0x00000000 chip=0x43851002 rev=0x42 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SBx00 SMBus Controller'
class = serial bus
subclass = SMBus
atapci0@pci0:0:20:1: class=0x01018a card=0x50021458 chip=0x439c1002 rev=0x40 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 IDE Controller'
class = mass storage
subclass = ATA
none1@pci0:0:20:2: class=0x040300 card=0xa1321458 chip=0x43831002 rev=0x40 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SBx00 Azalia (Intel HDA)'
class = multimedia
subclass = HDA
isab0@pci0:0:20:3: class=0x060100 card=0x439d1002 chip=0x439d1002 rev=0x40 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 LPC host controller'
class = bridge
subclass = PCI-ISA
pcib6@pci0:0:20:4: class=0x060401 card=0x00000000 chip=0x43841002 rev=0x40 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'SBx00 PCI to PCI Bridge'
class = bridge
subclass = PCI-PCI
ohci2@pci0:0:20:5: class=0x0c0310 card=0x50041458 chip=0x43991002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB OHCI2 Controller'
class = serial bus
subclass = USB
pcib7@pci0:0:21:0: class=0x060400 card=0x00001002 chip=0x43a01002 rev=0x00 hdr=0x01
vendor = 'ATI Technologies Inc'
device = 'SB700/SB800 PCI to PCI bridge (PCIE port 0)'
class = bridge
subclass = PCI-PCI
ohci3@pci0:0:22:0: class=0x0c0310 card=0x50041458 chip=0x43971002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB OHCI0 Controller'
class = serial bus
subclass = USB
ehci2@pci0:0:22:2: class=0x0c0320 card=0x50041458 chip=0x43961002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'SB7x0/SB8x0/SB9x0 USB EHCI Controller'
class = serial bus
subclass = USB
hostb1@pci0:0:24:0: class=0x060000 card=0x00000000 chip=0x16001022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 0'
class = bridge
subclass = HOST-PCI
hostb2@pci0:0:24:1: class=0x060000 card=0x00000000 chip=0x16011022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 1'
class = bridge
subclass = HOST-PCI
hostb3@pci0:0:24:2: class=0x060000 card=0x00000000 chip=0x16021022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 2'
class = bridge
subclass = HOST-PCI
hostb4@pci0:0:24:3: class=0x060000 card=0x00000000 chip=0x16031022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 3'
class = bridge
subclass = HOST-PCI
hostb5@pci0:0:24:4: class=0x060000 card=0x00000000 chip=0x16041022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 4'
class = bridge
subclass = HOST-PCI
hostb6@pci0:0:24:5: class=0x060000 card=0x00000000 chip=0x16051022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices [AMD]'
device = 'Family 15h Processor Function 5'
class = bridge
subclass = HOST-PCI
vgapci0@pci0:1:0:0: class=0x030000 card=0x116019da chip=0x0a6510de rev=0xa2 hdr=0x00
vendor = 'nVidia Corporation'
device = 'GT218 [GeForce 210]'
class = display
subclass = VGA
none2@pci0:1:0:1: class=0x040300 card=0x116019da chip=0x0be310de rev=0xa1 hdr=0x00
vendor = 'nVidia Corporation'
device = 'High Definition Audio Controller'
class = multimedia
subclass = HDA
mpslsi0@pci0:2:0:0: class=0x010700 card=0x30801000 chip=0x00721000 rev=0x03 hdr=0x00
vendor = 'LSI Logic / Symbios Logic'
device = 'SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]'
class = mass storage
subclass = SAS
xhci0@pci0:3:0:0: class=0x0c0330 card=0x50071458 chip=0x70231b6f rev=0x01 hdr=0x00
class = serial bus
subclass = USB
re0@pci0:4:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x06 hdr=0x00
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
class = network
subclass = ethernet
xhci1@pci0:5:0:0: class=0x0c0330 card=0x50071458 chip=0x70231b6f rev=0x01 hdr=0x00
class = serial bus
subclass = USB
fwohci0@pci0:6:14:0: class=0x0c0010 card=0x10001458 chip=0x30441106 rev=0xc0 hdr=0x00
vendor = 'VIA Technologies, Inc.'
device = 'VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller'
class = serial bus
subclass = FireWire
[-- Attachment #3 --]
smartctl 5.42 2011-10-20 r3458 [CloudByte 1.1-Elastistor amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
Vendor: SEAGATE
Product: ST100FM0002
Revision: 0003
User Capacity: 100,030,242,816 bytes [100 GB]
Logical block size: 512 bytes
Logical Unit id: 0x5000c500301051f7
Serial number: Z12117290000822150Z3
Device type: disk
Transport protocol: SAS
Local Time is: Mon Apr 29 15:44:43 2013 IST
Device supports SMART and is Enabled
Temperature Warning Enabled
SMART Health Status: OK
SS Media used endurance indicator: 0%
Current Drive Temperature: 37 C
Drive Trip Temperature: 65 C
Manufactured in week 26 of year 2012
Specified cycle count over device lifetime: 10000
Accumulated start-stop cycles: 24
defect list format 6 unknown
Elements in grown defect list: 0
Vendor (Seagate) cache information
Blocks sent to initiator = 260867288
Blocks received from initiator = 2726069275
Blocks read from cache and sent to initiator = 48842
Number of read and write commands whose size <= segment size = 210376727
Number of read and write commands whose size > segment size = 0
Vendor (Seagate/Hitachi) factory information
number of hours powered up = 782.57
number of minutes until next internal SMART test = 40
Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 0 0 0 0 0 133.564 0
write: 0 0 0 0 0 12391.221 0
Non-medium error count: 0
No self-tests have been logged
Long (extended) Self Test duration: 32767 seconds [546.1 minutes]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAA71u6ZehJq7LE-m3RMCGgZQPT4U%2BO_m6ezfT-a5ig%2Bd%2Bc8uzQ>
