block: rate-limit the error message from failing commands
authorYi Zou <yi.zou@intel.com>
Thu, 30 Aug 2012 23:26:25 +0000 (16:26 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 30 Aug 2012 23:26:25 +0000 (16:26 -0700)
commit37d7b34f05b7bcca364bdf47d8955e766094a244
treeab1ae9d7b1f92212f7b19f819683c4d6a510d71c
parent155e36d40cf31c17f2b629fc2f2f5527e4cfc324
block: rate-limit the error message from failing commands

When performing a cable pull test w/ active stress I/O using fio over
a dual port Intel 82599 FCoE CNA, w/ 256LUNs on one port and about 32LUNs
on the other, it is observed that the system becomes not usable due to
scsi-ml being busy printing the error messages for all the failing commands.
I don't believe this problem is specific to FCoE and these commands are
anyway failing due to link being down (DID_NO_CONNECT), just rate-limit
the messages here to solve this issue.

v2->v1: use __ratelimit() as Tomas Henzl mentioned as the proper way for
rate-limit per function. However, in this case, the failed i/o gets to
blk_end_request_err() and then blk_update_request(), which also has to
be rate-limited, as added in the v2 of this patch.

v3-v2: resolved conflict to apply on current 3.6-rc3 upstream tip.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Cc: www.Open-FCoE.org <devel@open-fcoe.org>
Cc: Tomas Henzl <thenzl@redhat.com>
Cc: <linux-scsi@vger.kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c