Hello Arnd,
Here are the hdparm and smartctl outputs for the first card I tested (Transcend ultra 2GB Industrial 'CF100BA8'). There seems to be no dma mode there, only PIO.
Philippe
tmp179:~ # cat /proc/partitions major minor #blocks name
8 0 244198584 sda 8 1 2103296 sda1 8 2 20972544 sda2 8 16 1990296 sdb tmp179:~ # hdparm -i /dev/sdb
/dev/sdb:
Model=PIO, FwRev=20100202, SerialNo=20100716 CF100BA8 Config={ HardSect NotMFM Fixed DTR>10Mbs } RawCHS=3949/16/63, TrkSize=0, SectSize=576, ECCbytes=4 BuffType=DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=off CurCHS=3949/16/63, CurSects=3980592, LBA=yes, LBAsects=3980592 IORDY=no, tPIO={min:120,w/IORDY:120} PIO modes: pio0 pio1 pio2 pio3 pio4 AdvancedPM=yes: disabled (255) Drive conforms to: Unspecified: ATA/ATAPI-4
* signifies the current active mode
tmp179:~ # hdparm -I /dev/sdb
/dev/sdb:
CompactFlash ATA device Model Number: PIO Serial Number: 20100716 CF100BA8 Firmware Revision: 20100202 Standards: Supported: 4 Likely used: 6 Configuration: Logical max current cylinders 3949 3949 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 3980592 LBA user addressable sectors: 3980592 Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 1943 MBytes device size with M = 1000*1000: 2038 MBytes (2 GB) cache/buffer size = 1 KBytes (type=DualPort) Capabilities: LBA, IORDY(may be)(cannot be disabled) Standby timer values: spec'd by Vendor R/W multiple sector transfer: Max = 1 Current = 0 Advanced power management level: disabled DMA: not supported PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: * SMART feature set Security Mode feature set Power Management feature set WRITE_BUFFER command READ_BUFFER command NOP cmd CFA feature set Advanced Power Management feature set * Gen1 signaling speed (1.5Gb/s) * CFA Power Level 1 (max 500mA) Security: Master password revision code = 65534 supported not enabled not locked not frozen not expired: security count not supported: enhanced erase 2min for SECURITY ERASE UNIT. Integrity word not set (found 0x0000, expected 0x52a5) tmp179:~ # smartctl --all -T permissive /dev/sdb smartctl 5.40 2010-10-16 r3189 [i686-pc-linux-gnu] (SUSE RPM) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION === Device Model: PIO Serial Number: 20100716 CF100BA8 Firmware Version: 20100202 User Capacity: 2,038,063,104 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 4 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Fri Mar 18 11:35:28 2011 CET SMART support is: Ambiguous - ATA IDENTIFY DEVICE words 85-87 don't show if SMART is enabled. Checking to be sure by trying SMART RETURN STATUS command. SMART support is: Available - device has SMART capability. SMART support is: Enabled
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
General SMART Values: Offline data collection status: (0x26) Offline data collection activity is in a Reserved state. Auto Offline Data Collection: Disabled. Total time to complete Offline data collection: ( 3) seconds. Offline data collection capabilities: (0x00) Offline data collection not supported. SMART capabilities: (0x0002) Does not save SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x00) Error logging NOT supported. No General Purpose Logging support.
SMART Attributes Data Structure revision number: 1 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x0000 100 100 000 Old_age Offline - 0 2 Throughput_Performance 0x0000 100 100 000 Old_age Offline - 0 5 Reallocated_Sector_Ct 0x0000 100 100 000 Old_age Offline - 0 7 Seek_Error_Rate 0x0000 100 100 000 Old_age Offline - 0 8 Seek_Time_Performance 0x0000 100 100 000 Old_age Offline - 0 12 Power_Cycle_Count 0x0000 100 100 000 Old_age Offline - 43 195 Hardware_ECC_Recovered 0x0000 100 100 000 Old_age Offline - 0 196 Reallocated_Event_Count 0x0000 100 100 000 Old_age Offline - 0 197 Current_Pending_Sector 0x0000 100 100 000 Old_age Offline - 0 198 Offline_Uncorrectable 0x0000 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0000 100 100 000 Old_age Offline - 0 200 Multi_Zone_Error_Rate 0x0000 100 100 000 Old_age Offline - 0
Warning: device does not support Error Logging Error SMART Error Log Read failed: Input/output error Smartctl: SMART Error Log Read Failed Warning: device does not support Self Test Logging Error SMART Error Self-Test Log Read failed: Input/output error Smartctl: SMART Self Test Log Read Failed Device does not support Selective Self Tests/Logging tmp179:~ #
On Friday 18 March 2011, Philippe De Muyter wrote:
Here are the hdparm and smartctl outputs for the first card I tested (Transcend ultra 2GB Industrial 'CF100BA8'). There seems to be no dma mode there, only PIO.
Ok, that makes sense. It explains both why this card is so slow, and why it's hard to get meaningful measurements out of it -- when transferring large amounts of data, the slow interface hides a lot of the timing effects that are going on with its garbage collection.
Arnd
flashbench-results@lists.linaro.org