]> 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)
commitbd91dbe00e4587ab14273dc6d87fe1ac2aad79cf
tree8b5fbdb2b6ea0e31dfcfc4c336b8bb5f4ba7d84a
parent27c01013cbfa4580f358c04785a6f23973488e7c
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