lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <201508012209.27974@pali>
Date:	Sat, 1 Aug 2015 22:09:27 +0200
From:	Pali Rohár <pali.rohar@...il.com>
To:	Robert Hancock <hancockrwd@...il.com>,
	Jeff Garzik <jeff@...zik.org>,
	Robert Hancock <hancockr@...w.ca>, Tejun Heo <tj@...nel.org>
Cc:	linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: linux: sata_nv: adma support

On Thursday 25 December 2014 07:22:13 Robert Hancock wrote:
> On Tue, Dec 23, 2014 at 1:51 PM, Pali Rohár <pali.rohar@...il.com>
> wrote:
> > Hello,
> > 
> > I have nvidia nforce4 motherboard with nvidia sata controller:
> > 
> > 00:07.0 IDE interface [0101]: NVIDIA Corporation CK804 Serial ATA
> > Controller [10de:0054] (rev f3)
> > 00:08.0 IDE interface [0101]: NVIDIA Corporation CK804 Serial ATA
> > Controller [10de:0055] (rev f3)
> > 
> > I manually enabled adma mode (which is disabled by default) by
> > adding sata_nv.adma=1 to grub cmdline. In git history I found
> > that enabling adma mode includes NCQ support and reduced CPU
> > overhead. It looks like adma mode is working, but at every boot I
> > see one same error message in dmesg:
> > 
> > [   16.823514] ata1.00: exception Emask 0x1 SAct 0x0 SErr 0x0
> > action 0x0
> > [   16.823520] ata1.00: CPB resp_flags 0x11: , CMD error
> > [   16.823524] ata1.00: failed command: SET FEATURES
> > [   16.823530] ata1.00: cmd ef/05:fe:00:00:00/00:00:00:00:00/40
> > tag 16
> > [   16.823530]          res 51/04:fe:00:00:00/00:00:00:00:00/40
> > Emask 0x1 (device error)
> > [   16.823533] ata1.00: status: { DRDY ERR }
> > [   16.823535] ata1.00: error: { ABRT }
> > 
> > When adma is disabled then this error message is not generated.
> 
> It looks like something is trying to issue a command to disable APM
> power management on the drive, and the command fails (likely because
> it doesn't support that command). I'm not sure where that would be
> coming from - I'm pretty sure the kernel doesn't issue that command
> itself. Something that's part of your distro perhaps?
> 
> I don't know why it would only be failing in ADMA mode either, though
> depending on where the command is coming from, maybe it's not being
> issued otherwise for some reason?
> 
> > What does that error message means? It is critical? What is that
> > command SET FEATURES doing? Are there any problems with adma mode
> > on nforce4 motherboards? Because I did not see any problems
> > (except that one error message).
> > 
> > --
> > Pali Rohár
> > pali.rohar@...il.com

Hello,

now after long time I did more investigation and that error is reported 
for every connected HDD. I identified that it comes from udev script

 /lib/udev/rules.d/85-hdparm.rules

which just call script /lib/udev/hdparm for every one connected HDD.

Script /lib/udev/hdparm just call:

 /sbin/hdparm -B254 $DRIVE

And that -B254 cause above error message in dmesg log. Output from 
hdparm is:

 /dev/sda:
  setting Advanced Power Management level to 0xfe (254)
  APM_level      = not supported

Any idea why in ADMA mode it cause above error (APM unsupported) and in 
non ADMA mode it is working fine? Maybe APM ATA commands should not be 
sent via ADMA?

Here is another output:

 $ sudo hdparm -I /dev/sda | grep -i power
            *    Power Management feature set
                 Power-Up In Standby feature set
            *    SET_FEATURES required to spinup after power up
            *    Host-initiated interface power management

-- 
Pali Rohár
pali.rohar@...il.com

Download attachment "signature.asc " of type "application/pgp-signature" (199 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ