[dm-devel] [PATCH 5/7] dm core: reject I/O violating new queue limits

Hannes Reinecke hare at suse.de
Fri Apr 24 08:59:32 UTC 2009


Hi Kiyoshi,

Kiyoshi Ueda wrote:
> This patch detects requests violating the queue limitations
> and rejects them.
> 
> The same limitation checks are done when requests are submitted
> to the queue by blk_insert_cloned_request().
> However, such violation can happen if a table is swapped and
> the queue limitations are shrunk while some requests are
> in the queue.
> 
> Since struct request is a reliable one in the block layer and
> device drivers, dispatching such requests is pretty dangerous.
> (e.g. it may cause kernel panic easily.)
> So avoid to dispatch such problematic requests in request-based dm.
> 
This patch actually triggers accidentally during a no-paths scenario;
multipathing seems to flush all device details once all paths are gone,
so it'll fall back to the system defaults.
And then this check will trigger and kill all queued I/Os. Not good.

So either we fix device-mapper to keep the device details even for
the all-paths down scenario (basically we'd have to copy the device
details into the target_io structures and use that for comparison)
or we should rather not check here.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare at suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)




More information about the dm-devel mailing list