From: Hannes Reinecke Date: Tue, 1 Oct 2013 09:49:56 +0000 (+0200) Subject: dm mpath: requeue I/O during pg_init X-Git-Tag: v3.13-rc1~97^2~29 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b63349a7a53d34ffde70cb4feec48ea9e6f5e97b;p=pandora-kernel.git dm mpath: requeue I/O during pg_init When pg_init is running no I/O can be submitted to the underlying devices, as the path priority etc might change. When using queue_io for this, requests will be piling up within multipath as the block I/O scheduler just sees a _very fast_ device. All of this queued I/O has to be resubmitted from within multipathing once pg_init is done. This approach has the problem that it's virtually impossible to abort I/O when pg_init is running, and we're adding heavy load to the devices after pg_init since all of the queued I/O needs to be resubmitted _before_ any requests can be pulled off of the request queue and normal operation continues. This patch will requeue the I/O that triggers the pg_init call, and return 'busy' when pg_init is in progress. With these changes the block I/O scheduler will stop submitting I/O during pg_init, resulting in a quicker path switch and less I/O pressure (and memory consumption) after pg_init. Signed-off-by: Hannes Reinecke [patch header edited for clarity and typos by Mike Snitzer] Signed-off-by: Mike Snitzer --- Reading git-diff-tree failed