Opened 14 years ago
Closed 14 years ago
#91 closed defect (fixed)
smartctl, standby mode not detected properly on FreeBSD
Reported by: | drsweety | Owned by: | Dan Lukes |
---|---|---|---|
Priority: | minor | Milestone: | Release 5.40 |
Component: | all | Version: | 5.39.1 |
Keywords: | freebsd | Cc: |
Description
Hi!
I've enabled the standby timer on all my harddisks with "camcontrol standby adaX -t 900" (=which sends the STANDBY ATA cmd to the drive (=idle now, arm standby timer to 900s)). This works fine and "smartctl" recognises that the drive is in standby mode:
# smartctl -A -n standby /dev/ada3 smartctl 5.39.1 2010-01-28 r3054 [FreeBSD 8.1-RELEASE amd64] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net Device is in STANDBY mode, exit(2) # camcontrol cmd ada3 -a "E5 00 00 00 00 00 00 00 00 00 00 00" -r - 50 00 00 00 00 40 00 00 00 00 00
However, if a drive is currently active it still thinks that the drive is in standby mode even though it clearly is not:
# dd if=/dev/ada0 of=/dev/null count=1 1+0 records in 1+0 records out 512 bytes transferred in 0.034235 secs (14955 bytes/sec) # ./smartctl -A -n standby /dev/ada0 smartctl 5.39.1 2010-01-28 r3054 [FreeBSD 8.1-RELEASE amd64] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net Power mode: 00 Device is in STANDBY mode, exit(2) # camcontrol cmd ada0 -a "E5 00 00 00 00 00 00 00 00 00 00 00" -r - 50 00 00 00 00 00 00 00 00 FF 00 #
Note that the "Power mode: 00" output was added by me to atacmds.cpp for debugging purposes. It outputs the value of "result" from within "ataCheckPowerMode". As you can see from the "camcontrol" output the device is active (sector count=FF). I'm not sure why the output for sector count from "camcontrol" and "smartctl" differ... Is this working as designed?
Attachments (1)
Change History (8)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
Keywords: | freebsd added; FreeBSD standby removed |
---|
comment:3 by , 14 years ago
I ran into the same problem. To get things going on a fix, here is the requested output:
smartctl -r ioctl -n standby /dev/ada10 smartctl 5.39.1 2010-01-28 r3054 [FreeBSD 8.1-RELEASE amd64] (local build) Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net REPORT-IOCTL: Device=/dev/ada10 Command=CHECK POWER MODE Input: FR=...., SC=...., LL=...., LM=...., LH=...., DEV=...., CMD=0xe5 Output: ERR=...., SC=0x00, LL=...., LM=...., LH=...., DEV=...., STS=.... REPORT-IOCTL: Device=/dev/ada10 Command=CHECK POWER MODE returned 0 Device is in STANDBY mode, exit(2)
camcontrol cmd ada10 -a "E5 00 00 00 00 00 00 00 00 00 00 00" -r - 50 00 00 00 00 00 00 00 00 FF 00
by , 14 years ago
Attachment: | freebsd_powercheck.patch added |
---|
comment:5 by , 14 years ago
Component: | smartctl → all |
---|---|
Milestone: | → Release 5.40 |
comment:6 by , 14 years ago
Owner: | changed from | to
---|---|
Status: | new → accepted |
comment:7 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Tested on FreeBSD 8.1-R i386 and FreeBSD 8.1-R amd64
committed slightly different patch than the one attached by bdheller, but difference is in formatting only
The sector_count value may not be passed by os_freebsd.cpp to atacmds.cpp.
Please provide output of:
smartctl -r ioctl -n standby /dev/ada3