Re: Weird hard disk noise on shutdown (bug #7674)

From: Rolf Offermanns
Date: Thu Feb 22 2007 - 10:23:00 EST


Alan wrote:

>> However, i'm not still sure i enabled as much debugging info as i
>> could in the kernel configuration. If you need more, please point me
>> to precise configuration options.
>
> You grabbed a lot of junk but you did grab this line
>
> [17179682.560000] Synchronizing SCSI cache for disk sda:
>
> Which means sd_sync_cache got called and flushed the data to disk.
>
> I don't think you can do the other needed debugging without a recompile.
>
> The following will generate a vast amount of debug of which only the end
> matters. You may well want to build a kernel this way, boot it with
> init=/bin/sh and then at the shell prompt do "halt -f" so you don't get
> too much debug
>
> In include/linux/libata.h change
>
> #undef ATA_DEBUG /* debugging output */
> #undef ATA_VERBOSE_DEBUG /* yet more debugging output */
>
> so both of the undef-s read define
>
> #define ATA_DEBUG
> #define ATA_VERBOSE_DEBUG
>
> and recompile
I hear the same strange noise on poweroff (2.6.20 vanilla). This is what I
get on my system with ATA_DEBUG and ATA_VERBOSE_DEBUG both defined. The
system will *not* poweroff with "halt -f" so there was no noise!

md: stopping all md devices.
Synchronizing SCSI cache for disk sda:
ata_scsi_dump_cdb: CDB (1:0,0,0) 35 00 00 00 00 00 00 00 00
ata_scsi_translate: ENTER
ata1: ata_dev_select: ENTER, ata1: device 0, wait 1
ata_tf_load_pio: device 0xA0
ata_exec_command_pio: ata1: cmd 0xE7
ata_scsi_translate: EXIT
ata_host_intr: ata1: protocol 1 task_state 2
ata_hsm_move: ata1: protocol 1 task_state 2 (dev_stat 0x50)
ata_hsm_move: ata1: dev 0 command complete, drv_stat 0x50
System halted.

If I do a sysrq-o right after this, the above message repeate once more and
the system turns off w/o the disturbing noise.

For the next messages, I booted the system completely (no init=/bin/sh) and
did a "poweroff" at the console prompt after the boot was completed. This
time the noise was there.

ata_host_intr: ata1: protocol 3 task_state 2
ata_host_intr: ata1: host_stat 0x24
ata_hsm_move: ata1: protocol 3 task_state 2 (dev_stat 0x50)
ata_hsm_move: ata1: dev 0 command complete, drv_stat 0x50
ata_sg_clean: unmapping 1 sg elements
ata_scsi_dump_cdb: CDB (1:0,0,0) 28 00 04 b5 d4 c8 00 00 08
ata_scsi_translate: ENTER
scsi_10_lba_len: ten-byte command
ata_sg_setup: ENTER, ata1
ata_sg_setup: 1 sg elements mapped
ata_fill_sg: PRD[0] = (0x39A63000, 0x1000)
ata_tf_load_pio: feat 0x0 nsect 0x8 lba 0xC8 0xD4 0xB5
ata_tf_load_pio: device 0xE4
ata_exec_command_pio: ata1: cmd 0xC8
ata_scsi_translate: EXIT
ata_host_intr: ata1: protocol 3 task_state 2
ata_host_intr: ata1: host_stat 0x24
ata_hsm_move: ata1: protocol 3 task_state 2 (dev_stat 0x50)
ata_hsm_move: ata1: dev 0 command complete, drv_stat 0x50
ata_sg_clean: unmapping 1 sg elements
ata_scsi_dump_cdb: CDB (1:0,0,0) 35 00 00 00 00 00 00 00 00
ata_scsi_translate: ENTER
ata_tf_load_pio: device 0xA0
ata_exec_command_pio: ata1: cmd 0xE7
ata_scsi_translate: EXIT
ata_host_intr: ata1: protocol 1 task_state 2
ata_hsm_move: ata1: protocol 1 task_state 2 (dev_stat 0x50)
ata_hsm_move: ata1: dev 0 command complete, drv_stat 0x50
Power down.


HTH,
Rolf

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/