[ANNOUNCE] libata EH/NCQ/hotplug/PM git tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, all.

It took a lot longer than I thought, but it's ready now.

http://htj.dyndns.org/git/?p=libata-tj.git
git://htj.dyndns.org/libata-tj

The git tree contains ~120 commits from #upstream[1] and tagged as follows.

#libata-eh-prep		various prep patches for things to follow
#libata-eh-fw		new EH framework
#libata-eh		new EH
#libata-eh-merge-irq-pio merge irq-pio
#libata-ncq		NCQ support
#libata-hp-prep		prep for hotplug
#libata-hp-LLDD-prep	prep LLDDs for hotplug
#libata-hp		hotplug
#libata-link		introduce ata_link
#libata-pm-prep		prep for Port Multiplier support
#libata-pm		Port Multiplier support

I'll post above as patchsets later today with descriptions about what has changed since last post.

The following drivers support new features.

ata_piix:		new EH, warmplug
sata_sil:		new EH, hotplug
ahci:			new EH, NCQ, hotplug
sata_sil24:		new EH, NCQ, hotplug, Port Multiplier

The only Port Multiplier I've got is sil4726 and thus it's the only one tested. I implemented AHCI PM support half-way but then realized I don't have any AHCI controller which supports PM (I have ICH7R). Is there any AHCI controller which reports PM support?

In general, EH, NCQ and hotplug work great with Port Multiplier. However, there are some hardware issues.

* sil3124/32 don't have SNotification, so if devices with active commands are yanked out. There's no way to abort the commands directly. We have to wait till timeout. Not so great but not so bad either.

* some drives lock up completely if it gets reset while commands are in progress. Due to PM DMA CS errata, sometimes the controller is forced to reset the whole controller/PM on error detection causing this problem. Well, nothing much can be done about it and recent drives don't seem to have such problems.

* sil3124 doesn't seem to detect R_ERR on command issue as well as sil3132. If somethings goes wrong during EH, 3124 tends to timeout rather than quickly fail as 3132 does resulting in much longer recovery time. However, I think this can be resolved by tuning timeouts used during EH.

* sil3124/32 reacts weirdly on ATAPI CHECK SENSE if the device is attached via PM and commands are active to other devices on the PM. It seems that PM DMA CS errata doesn't cover all. Problems occur even if only one other device is active. This is worked around by executing all ATAPI commands by themselves. So, if you connect ATAPI device to PM and access it, other devices sharing the PM will suffer.

I complained a lot but, all in all, sil3124/32 + sil4726 work greatly.

Albert, can you please verify that I didn't screw up during irq-pio merge? It's done in the following two commits.

516fb4d37fa8648d4f7c9358c7dca22758a49c55 (actual merge)
1bb4c2efb606a5b746997b0ceabbdadbda5d3f26 (followup fixes)

Thanks.

--
tejun
-
: 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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux