On 11/16/2009 01:14 AM, Tejun Heo wrote:
Hello,
Arjan van de Ven wrote:
sigh. so I moved all the generic logic generic, and left the ahci
specific code specific to ahci. I put the logic there where it was
easy to implement, and there where the other link power management
controls are (in sysfs). If that's not good enough, I'm out of my skills
in the libata world to be honest, and would like to ask you to implement
that instead. let me know what sysfs looks like and I'll adjust
powertop to it....
The reason why we have sysfs attributes which should have been at link
layer at host was that it originally was for ahci alpm which is host
specific feature which got extended to something somewhat generic.
Now another pm feature which should belong to link is added to host
following the precedence.
Then again, it's also true that nobody really cares about ATA PM
features enough during past couple of years so I really don't want to
prevent the feature you're trying to add. It would be best if there's
someone who would pick it up and implement proper infrastructure but
well that doesn't seem to be happening anytime soon.
So, I don't know. That's the concern I have but I don't want to nack
your change either. One thing is at least make those functions take
ata_link isntead of ata_port as there's nothing port specific about
those. Jeff, what do you think?
Well,
- these are link-level features
- libata lacks a link-level sysfs API
- we need a link-level sysfs API (ata_transport, anyone?)
The ugly alternative has always been to hack in something at the host level.
In term of internal data structures, the v3 patch putting the stats into
struct ata_link is definitely the right thing to do. I would also put
the accounting_enabled variable in there, as non-AHCI implementations,
polling or not, seem highly likely to need that.
Jeff
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html