linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] hotplug polling, take 4
@ 2006-10-10  5:36 Tejun Heo
  2006-10-10  5:36 ` [PATCH 1/3] libata: implement hotplug by polling Tejun Heo
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Tejun Heo @ 2006-10-10  5:36 UTC (permalink / raw)
  To: jgarzik, alan, linux-ide, htejun

Hello, all.

This is the fourth take of hotplug polling patchset.  As the name
implies, this patchset implements hotplug by polling.  hp-poll is used
to

* Monitor ports EH gave up.  When EH gives up on a port, it freezes
  the port to protect the rest of the system from it.  The user used
  to have to issue manual scan to retry the port.  hp-poll can monitor
  such port and retry it when hotplug event is detected.  This is also
  used by PMP support.

* Support hotplug on controllers which can report hotplug conditions
  but cannot raise interrupt.

Changes from the last take[L] are.

* updated to the current upstream

* global hp_poll_list and hp_poll_work replaced with per-host
  hp_poll_task

This patchset is also available in the following git tree.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=hp-poll
  git://htj.dyndns.org/libata-tj hp-poll
  (web is temporarily down, but git pull works)

Thanks.

--
tejun

[L] http://article.gmane.org/gmane.linux.ide/12151



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH 0/3] hotplug polling, respin
@ 2007-04-25  6:25 Robin H. Johnson
  2007-04-25  6:28 ` [PATCH 1/3] libata: implement hotplug by polling Robin H. Johnson
  0 siblings, 1 reply; 10+ messages in thread
From: Robin H. Johnson @ 2007-04-25  6:25 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: Type: text/plain, Size: 667 bytes --]

I've been (very) slowly working on re-spinning Tejun's PMP work.

As the very first in the body of work, here is the patchset to implement
hotplug polling.

The last submission of this
(http://thread.gmane.org/gmane.linux.ide/13467) already had a tentative
ACK, pending a link power-saving patchset, that I can't find more
details on.

I only have sata_nv and sata_sil24 online for testing, but it does work
fine for both of those (and Tejun had previously tested many more
controllers).

-- 
Robin Hugh Johnson
Gentoo Linux Developer & Council Member
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

[-- Attachment #2: Type: application/pgp-signature, Size: 321 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCHSET] hotplug polling, take 5
@ 2006-10-15 22:37 Tejun Heo
  2006-10-15 22:37 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
  0 siblings, 1 reply; 10+ messages in thread
From: Tejun Heo @ 2006-10-15 22:37 UTC (permalink / raw)
  To: jgarzik, alan, linux-ide, htejun

Hello, all.

This is the fifth take of hotplug polling patchset.  This take doesn't
contain any real change than rebasing over the current upstream[U].
PMP patchset will be posted soon on top of this patchset and I wanted
to avoid confusion by posting patchsets in order.

As the name implies, this patchset implements hotplug by polling.
hp-poll is used to

* Monitor ports EH gave up.  When EH gives up on a port, it freezes
  the port to protect the rest of the system from it.  The user used
  to have to issue manual scan to retry the port.  hp-poll can monitor
  such port and retry it when hotplug event is detected.  This is also
  used by PMP support.

* Support hotplug on controllers which can report hotplug conditions
  but cannot raise interrupt.

Changes from the last take[L] are.

* updated to the current upstream

This patchset is also available in the following git tree.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=hp-poll
  git://htj.dyndns.org/libata-tj hp-poll

Thanks.

--
tejun

[U] da54f5fe54c7d75e2db7d17961fb36a8c28a8501
[L] http://article.gmane.org/gmane.linux.ide/13418



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [RFT][PATCHSET] hotplug polling, take 3
@ 2006-07-17  7:00 Tejun Heo
  2006-07-17  7:00 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
  0 siblings, 1 reply; 10+ messages in thread
From: Tejun Heo @ 2006-07-17  7:00 UTC (permalink / raw)
  To: jgarzik, alan, lkml, axboe, forrest.zhao, linux-ide, htejun

Hello, all.

This is the third take of hotplug polling patchset.  As the name
implies, this patchset implements hotplug by polling.  Changes from
the last take[L] are.

* updated to accomodate earlier fixes & updates

* hp-poll is automatically disabled if the port enters any of static
  powersave mode.

* hp-poll can be manually disabled by setting
  libata.hotplug_polling_interval to zero.

This patchset is also available in the following git tree.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=hp-poll
  git://htj.dyndns.org/libata-tj hp-poll

Thanks.

--
tejun

[L] http://article.gmane.org/gmane.linux.ide/11862
[1] http://article.gmane.org/gmane.linux.ide/11966
[2] http://article.gmane.org/gmane.linux.ide/12001
[3] http://article.gmane.org/gmane.linux.ide/12002
[4] http://article.gmane.org/gmane.linux.ide/11870
[5] http://article.gmane.org/gmane.linux.ide/12138



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [RFT][PATCHSET] hotplug polling, take 2
@ 2006-07-05  6:06 Tejun Heo
  2006-07-05  6:06 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
  0 siblings, 1 reply; 10+ messages in thread
From: Tejun Heo @ 2006-07-05  6:06 UTC (permalink / raw)
  To: jgarzik, lkml, axboe, forrest.zhao, alan, linux-ide, htejun

Hello, all.

This is the second take of hotplug polling patchset.  As the name
implies, this patchset implements hotplug by polling.  Changes from
the last take[1] are.

* vt8237 randomly locks up on SCR access and hp-poll support is
  dropped.

* port/host_set-excl std callbacks are removed.

libata core layer implements hp-poll infrastructure.  It interacts
with LLDs with three callbacks - hp_poll_activate(),
hp_poll_deactivate() and hp_poll().  libata core layer is responsible
for activating and deactivating at the right time, invoking the poll
callback periodically while activated, and generate hotplug event when
poll callback indicates something has happened.

hp-poll is used for the following cases.

* To detect hotplug events on frozen ports after reset fails such that
  replacing or replugging the failing device make libata automatically
  retry the port.

* To detect hotplug events on LLDs without hotplug interrupt.

The following drivers are converted to use hp-poll on failed ports.

* ahci
* sata_nv (nf2 and ck804 only) [untested]
* sata_sil
* sata_sil24

The following drivers are converted to use hp-poll for hotplug

* sata_nv (generic) [untested]
* sata_sis [untested]
* sata_svw [untested]
* sata_uli [untested]
* sata_via [SCR access broken, not supported]
* sata_vsc [untested]

vt8237 randomly locks up on SCR access and thus support is dropped.
And all other untested drivers need testing.

This patchset is against

  upstream (2154cfa6ba560401d25f6cc083fe3fb996cbb571)
  + add-ap-pflags [2]
  + fix-ehc_i_action-setting-in-ata_eh_autopsy [3]
  + cosmetic-replace-ap_lock [4]
  + new PM patchset [5]

This patchset is also available in the following git tree.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=hp-poll
  git://htj.dyndns.org/libata-tj hp-poll

Thanks.

--
tejun

[1] http://article.gmane.org/gmane.linux.ide/11827
[2] http://article.gmane.org/gmane.linux.ide/11717
[3] http://article.gmane.org/gmane.linux.ide/11801
[4] http://article.gmane.org/gmane.linux.ide/11802
[5] http://article.gmane.org/gmane.linux.ide/11816



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [RFT][PATCHSET] hotplug polling
@ 2006-07-04 14:16 Tejun Heo
  2006-07-04 14:16 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
  0 siblings, 1 reply; 10+ messages in thread
From: Tejun Heo @ 2006-07-04 14:16 UTC (permalink / raw)
  To: jgarzik, lkml, axboe, forrest.zhao, alan, linux-ide, htejun

Hello, all.

This is the first take of hotplug polling patchset.  As the name
implies, this patchset implements hotplug by polling.

libata core layer implements hp-poll infrastructure.  It interacts
with LLDs with three callbacks - hp_poll_activate(),
hp_poll_deactivate() and hp_poll().  libata core layer is responsible
for activating and deactivating at the right time, invoking the poll
callback periodically while activated, and generate hotplug event when
poll callback indicates something has happened.

hp-poll is used for the following cases.

* To detect hotplug events on frozen ports after reset fails such that
  replacing or replugging the failing device make libata automatically
  retry the port.

* To detect hotplug events on LLDs without hotplug interrupt.

The following drivers are converted to use hp-poll on failed ports.

* ahci
* sata_nv (nf2 and ck804 only) [untested]
* sata_sil
* sata_sil24

The following drivers are converted to use hp-poll for hotplug

* sata_nv (generic) [untested]
* sata_sis [untested]
* sata_svw [untested]
* sata_uli [untested]
* sata_via
* sata_vsc [untested]

There are three variants of sata_std_poll() - regular, port-exclusive
and host_set-exclusive.  port-exclusive skips polling if command is in
progress to the port.  host_set-exclusive skips polling if one or more
commands are in progress to any port in the host_set.  This is because
some controllers lock up if SCR regs are accessed while command is in
progress.

Well, the port-exclusive case is dumb but understandable; however,
sata_via (vt8237) takes it to the next level and may lock up if any
available port in the host_set is active when a SCR reg is accessed,
so it needs host_set-exclusive version.  It took me two days of
boredom to figure out that things can be made THAT dumb.  Their new
AHCI controller also seems to require host_set-wide EH ops to recover
from errors.  Well, I guess they consider requiring host_set-wide ops
a feature or something.  :-( Note that this means that the current
libata EH may lock up the whole machine on vt8237 if EH occurs at a
bad time.

Currently, all 'untested' LLDs are using the regular version and some
of them might need to use a dumber version.  So, we need some testing
here.

This patchset is against

  upstream (2154cfa6ba560401d25f6cc083fe3fb996cbb571)
  + add-ap-pflags [1]
  + fix-ehc_i_action-setting-in-ata_eh_autopsy [2]
  + cosmetic-replace-ap_lock [3]
  + new PM patchset [4]

This patchset is also available in the following git tree.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=hp-poll
  git://htj.dyndns.org/libata-tj hp-poll

Thanks.

--
tejun

[1] http://article.gmane.org/gmane.linux.ide/11717
[2] http://article.gmane.org/gmane.linux.ide/11801
[3] http://article.gmane.org/gmane.linux.ide/11802
[4] http://article.gmane.org/gmane.linux.ide/11816



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-04-25  7:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-10  5:36 [PATCHSET] hotplug polling, take 4 Tejun Heo
2006-10-10  5:36 ` [PATCH 1/3] libata: implement hotplug by polling Tejun Heo
2006-10-10  5:36 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
2006-10-10  5:36 ` [PATCH 2/3] libata: add hp-poll support to controllers with hotplug interrutps Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2007-04-25  6:25 [PATCH 0/3] hotplug polling, respin Robin H. Johnson
2007-04-25  6:28 ` [PATCH 1/3] libata: implement hotplug by polling Robin H. Johnson
2007-04-25  7:13   ` [PATCH 2/3] libata: add hp-poll support to controllers with hotplug interrupts Robin H. Johnson
2007-04-25  7:15     ` [PATCH 3/3] libata: add hp-poll support to controllers without " Robin H. Johnson
2006-10-15 22:37 [PATCHSET] hotplug polling, take 5 Tejun Heo
2006-10-15 22:37 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
2006-07-17  7:00 [RFT][PATCHSET] hotplug polling, take 3 Tejun Heo
2006-07-17  7:00 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
2006-07-19 20:57   ` Jeff Garzik
2006-07-05  6:06 [RFT][PATCHSET] hotplug polling, take 2 Tejun Heo
2006-07-05  6:06 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo
2006-07-04 14:16 [RFT][PATCHSET] hotplug polling Tejun Heo
2006-07-04 14:16 ` [PATCH 3/3] libata: add hp-poll support to controllers without hotplug interrupts Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).