From: Hannes Reinecke <hare@suse.de>
To: dm-devel@redhat.com, Frank Mayhar <fmayhar@google.com>,
Mike Snitzer <snitzer@redhat.com>
Subject: Re: RFC for multipath queue_if_no_path timeout.
Date: Fri, 27 Sep 2013 15:52:58 +0200 [thread overview]
Message-ID: <52458DBA.5090109@suse.de> (raw)
In-Reply-To: <20130927083742.GA683@agk-dp.fab.redhat.com>
On 09/27/2013 10:37 AM, Alasdair G Kergon wrote:
> But this still dodges the fundamental problem:
>
> What is the right value to use for the timeout?
> - How long should you wait for a path to (re)appear?
> - In the current model, reinstating a path is a userspace
> responsibility.
>
And with my proposed patch it would still be userspace which is
setting the timeout.
Currently, no_path_retry is not a proper measure anyway, as it's
depending on the time multipathd takes to complete a path check
round. Which depends on the number of device, the state of those etc.
> The timeout, as proposed, is being used in two conflicting ways:
> - How long to wait for path recovery when all paths went down
That would be set via the new 'no_path_timeout' feature, which would
be set instead of the (multipath-internal) no_path_retry
setting.
> - How long to wait when the system locks without enough free
> memory even to reinstate a path (because of broken userspace
> code) before having multipath fail queued I/O in a desperate
> attempt at releasing memory to assist recovery
>
Do we even handle that case currently?
Methinks this is precisely the use-case this is supposed to address.
When currently 'no_path_retry' is set _and_ we're running under a
low-mem condition there is a quite large likelyhood that the
multipath daemon will be killed by the OOM-killer or not able to
send any dm messages down to the kernel, as the latter most likely
require some memory allocations.
So in the current 'no_path_retry' scenario the maps would have been
created with 'queue_if_no_path', and the daemon would have to reset
the 'queue_if_no_path' flag if the no_path_retry value expires.
Which it might not be able to do so due to the above scenario.
So with the proposed 'no_path_timeout' we would enable the dm-mpath
module to terminate all outstanding I/O, irrespective on all
userland conditions. Which seems like an improvement to me ...
> The second case should point to a very short timeout.
> The first case probably wants a longer one.
>
> In my view the correct approach for the case Frank is discussing is to
> use a different trigger to detect the (approaching?) locking up of the
> system. E.g. should something related to the handling of an out
> of memory condition have a hook to instruct multipath to release such
> queued I/O?
>
Yeah, that was what I had planned for quite some time.
But thinking it over the no_path_timeout seems like a better
approach here.
(Plus we're hooking into the generic 'blk_timeout' mechanism, which
then would allow to blk_abort_request() to work)
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
next prev parent reply other threads:[~2013-09-27 13:52 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-26 17:14 RFC for multipath queue_if_no_path timeout Frank Mayhar
2013-09-26 17:24 ` Alasdair G Kergon
2013-09-26 17:31 ` Frank Mayhar
2013-09-26 17:38 ` Alasdair G Kergon
2013-09-26 17:47 ` Frank Mayhar
2013-09-26 17:52 ` Mike Snitzer
2013-09-26 20:36 ` [PATCH 1/1] dm mpath: Add timeout mechanism for queue_if_no_path Frank Mayhar
2013-09-26 23:22 ` RFC for multipath queue_if_no_path timeout Alasdair G Kergon
2013-09-26 23:49 ` Mike Snitzer
2013-09-27 6:07 ` Hannes Reinecke
2013-09-27 8:06 ` Hannes Reinecke
2013-09-27 8:37 ` Alasdair G Kergon
2013-09-27 13:52 ` Hannes Reinecke [this message]
2013-09-27 16:37 ` Frank Mayhar
2013-09-27 16:32 ` Frank Mayhar
2013-09-27 16:29 ` Frank Mayhar
2013-10-17 19:03 ` Frank Mayhar
2013-10-17 19:15 ` Mike Snitzer
2013-10-17 20:45 ` Frank Mayhar
2013-10-17 21:13 ` Mike Snitzer
2013-10-18 20:51 ` Frank Mayhar
2013-10-18 21:47 ` Alasdair G Kergon
2013-10-18 22:53 ` [RFC PATCH v2] dm mpath: add a " Mike Snitzer
2013-10-30 1:02 ` Mike Snitzer
2013-10-30 15:08 ` Frank Mayhar
2013-10-30 15:43 ` Mike Snitzer
2013-10-30 18:09 ` Frank Mayhar
2013-10-31 9:36 ` Junichi Nomura
2013-10-31 14:16 ` Frank Mayhar
2013-10-31 14:31 ` Alasdair G Kergon
2013-10-31 17:17 ` Frank Mayhar
2013-11-01 1:23 ` Junichi Nomura
2013-11-01 1:58 ` Junichi Nomura
2013-11-01 4:17 ` Junichi Nomura
2013-11-05 15:18 ` Frank Mayhar
2013-11-05 16:02 ` [RFC PATCH v3] " Frank Mayhar
2013-11-05 16:53 ` Mike Snitzer
2013-11-06 6:54 ` Hannes Reinecke
2013-11-06 15:43 ` Frank Mayhar
2013-11-06 19:21 ` Mike Snitzer
2013-11-07 1:03 ` Junichi Nomura
2013-10-31 14:59 ` [RFC PATCH v2] " Hannes Reinecke
2013-10-21 16:05 ` RFC for multipath " Benjamin Marzinski
2013-10-21 16:17 ` Frank Mayhar
2013-10-23 13:39 ` Benjamin Marzinski
2013-09-27 16:27 ` Frank Mayhar
2013-09-26 17:41 ` Mike Snitzer
2013-09-26 17:55 ` Frank Mayhar
2013-09-26 18:41 ` Mike Snitzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52458DBA.5090109@suse.de \
--to=hare@suse.de \
--cc=dm-devel@redhat.com \
--cc=fmayhar@google.com \
--cc=snitzer@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.