]> git.baikalelectronics.ru Git - kernel.git/commit
isci: workaround port task scheduler starvation issue
authorTomasz Chudy <Tomasz.Chudy@intel.com>
Fri, 25 Feb 2011 10:25:09 +0000 (02:25 -0800)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 10:55:28 +0000 (03:55 -0700)
commit6cbb0d6fd4d753fc40932ee614d0a6f9c9f5aa42
tree8b5fbdb2b6ea0e31dfcfc4c336b8bb5f4ba7d84a
parent43c29ee8a3c1e53b2dc4b6bd04597d1a4d4285aa
isci: workaround port task scheduler starvation issue

There is a condition whereby TCs (task contexts) can jump to the head of
the round robin queue causing indefinite starvation of pending tasks.
Posting a TC to a suspended RNC (remote node context) causes the
hardware to select that task first, but since the RNC is suspended the
scheduler proceeds to the next task in the expected round robin fashion,
restoring TC arbitration fairness.

Signed-off-by: Tomasz Chudy <tomasz.chudy@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/core/scic_port.h
drivers/scsi/isci/core/scic_sds_controller.c
drivers/scsi/isci/core/scic_sds_port.c
drivers/scsi/isci/core/scic_sds_port.h
drivers/scsi/isci/host.c