[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