dm-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: dm-devel@redhat.com
Subject: Re: [PATCH 04/30] multipath: Increase dev_loss_tmo prior to fast_io_fail
Date: Mon, 22 Jul 2013 09:19:42 +0200	[thread overview]
Message-ID: <51ECDD0E.5060802@suse.de> (raw)
In-Reply-To: <20130719211719.GA2113@dhcp80-209.msp.redhat.com>

On 07/19/2013 11:17 PM, Benjamin Marzinski wrote:
> On Tue, Jul 16, 2013 at 09:12:55AM +0200, Hannes Reinecke wrote:
>> There are several constraints when setting fast_io_fail and
>> dev_loss_tmo.
>> dev_loss_tmo will be capped automatically when fast_io_fail is
>> not set. And fast_io_fail can not be raised beyond dev_loss_tmo.
>>
>> So to increase dev_loss_tmo and fast_io_fail we first need
>> to increase dev_loss_tmo to the given fast_io_fail
>> setting, then set fast_io_fail, and then set dev_loss_tmo
>> to the final setting.
> 
> This patch seems kind of convoluted to me, and even with the fix to
> temporarily set dev_loss_tmo to one greater than fast_io_fail_tmo,
> there is still a broken case
> 
> If you currently have:
> fast_io_fail_tmo off
> dev_loss_tmo <something_less_than_600>
> 
> and you want
> 
> fast_io_fail_tmo 600
> dev_loss_tmo <something_greater_than_600>
> 
> This will fail, since it will try to set dev_loss_tmo to 601 with
> fast_io_fail_tmo set to off (Granted, I doubt that 600 is a
> popular fast_io_fail_tmo value).
> 
> But in the general case, If you aren't turning off fast_io_fail_tmo and
> the current dev_loss_tmo is greater than the target fast_io_fail_tmo
> (this seems like it is the most common case), you unecessarily go through
> the work of first setting dev_loss_tmo to its current value.
> 
>         if (mpp->fast_io_fail != MP_FAST_IO_FAIL_UNSET &&
>             mpp->fast_io_fail != MP_FAST_IO_FAIL_ZERO &&
>             mpp->fast_io_fail != MP_FAST_IO_FAIL_OFF) {
>                 /* Check if we need to temporarily increase dev_loss_tmo
>  * */
>                 ret = sysfs_attr_get_value(rport_dev, "dev_loss_tmo",
>                                            value, 16);
> 
> <SNIP>
> 
>         }
>         if (strlen(value)) {
>                 ret = sysfs_attr_set_value(rport_dev, "dev_loss_tmo",
>                                            value, strlen(value));
> 
> I have a patch that solves this issue differently.  It still checks
> dev_loss_tmo, but it always sets fast_io_fail_tmo first.  If the target
> fast_io_fail_tmo is greater than or equal to the current dev_loss_tmo,
> it sets fast_io_fail_tmo to one less than the current dev_loss_tmo.
> This always works, since the lowest value possible for dev_loss_tmo is 1
> and the lowest value possible for fast_io_fail_tmo is 0. Then it sets
> dev_loss_tmo. Finally, if necessary, it sets fast_io_fail_tmo to its
> final value.
> 
Ah.

So you're doing (worst case)
-> set fast_io_fail
-> set dev_loss_tmo
-> set fast_io_fail


and I'm doing
-> set dev_loss_tmo
-> set fast_io_fail
-> set dev_loss_tmo

So the only difference here is the '+- 1' offset to fast_io_fail or
dev_loss_tmo ...

Whatever.
Waiting for your patch.

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)

  reply	other threads:[~2013-07-22  7:19 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-16  7:12 [PATCH 00/30] SLES resync, second try Hannes Reinecke
2013-07-16  7:12 ` [PATCH 01/30] multipath: bind lifetime of udev context to main thread Hannes Reinecke
2013-07-16  7:12 ` [PATCH 02/30] Document 'infinity' as possible value for dev_loss_tmo Hannes Reinecke
2013-07-16  7:12 ` [PATCH 03/30] alua: Do not add preferred path priority for active/optimized Hannes Reinecke
2013-07-16  7:12 ` [PATCH 04/30] multipath: Increase dev_loss_tmo prior to fast_io_fail Hannes Reinecke
2013-07-19 21:17   ` Benjamin Marzinski
2013-07-22  7:19     ` Hannes Reinecke [this message]
2013-07-16  7:12 ` [PATCH 05/30] libmultipath: return PATH_DOWN for quiesced paths Hannes Reinecke
2013-07-16  7:12 ` [PATCH 06/30] libmultipath: Implement PATH_TIMEOUT Hannes Reinecke
2013-07-16  7:12 ` [PATCH 07/30] Deprecate pg_timeout Hannes Reinecke
2013-07-16  7:12 ` [PATCH 08/30] kpartx: create correct symlinks for PATH_FAILED events Hannes Reinecke
2013-07-16  7:13 ` [PATCH 09/30] multipath: Deprecate 'getuid' configuration variable Hannes Reinecke
2013-07-16  7:13 ` [PATCH 10/30] kpartx: support disk with non-512B sectors Hannes Reinecke
2013-07-16  7:13 ` [PATCH 11/30] multipath: Add 'Datacore Virtual Disk' to internal hardware table Hannes Reinecke
2013-07-16  7:13 ` [PATCH 12/30] Minor fixes for priority handling Hannes Reinecke
2013-07-16  7:13 ` [PATCH 13/30] Check return value from pathinfo() Hannes Reinecke
2013-07-16  7:13 ` [PATCH 14/30] Read directly from sysfs when checking the device size Hannes Reinecke
2013-07-16  7:13 ` [PATCH 15/30] multipath.conf.annotated: Document rr_min_io_rq Hannes Reinecke
2013-07-16  7:13 ` [PATCH 16/30] Correctly print out 'max' for max_fds Hannes Reinecke
2013-07-16  7:13 ` [PATCH 17/30] Correctly set max_fds in case of failure Hannes Reinecke
2013-07-16  7:13 ` [PATCH 18/30] Update multipath.conf.defaults Hannes Reinecke
2013-07-16  7:13 ` [PATCH 19/30] Correctly set pgfailback Hannes Reinecke
2013-07-16  7:13 ` [PATCH 20/30] multipath.conf.5: clarify 'no_path_retry' default setting Hannes Reinecke
2013-07-16  7:13 ` [PATCH 21/30] multipath.conf.annotated: remove 'udev_dir' Hannes Reinecke
2013-07-16  7:13 ` [PATCH 22/30] multipath: Implement 'property' blacklist Hannes Reinecke
2014-08-21 16:37   ` Bart Van Assche
2014-08-21 19:31     ` Hannes Reinecke
2014-11-07  9:04       ` Bart Van Assche
2014-11-07  9:09         ` Hannes Reinecke
2014-11-19  5:33         ` Benjamin Marzinski
2013-07-16  7:13 ` [PATCH 23/30] Do not print error when rport is blocked Hannes Reinecke
2013-07-16  7:13 ` [PATCH 24/30] multipath: reference the udev context when starting event queue Hannes Reinecke
2013-07-16  7:13 ` [PATCH 25/30] multipathd: valgrind fixes Hannes Reinecke
2013-07-16  7:13 ` [PATCH 26/30] multipathd: increase stacksize for uevent listener Hannes Reinecke
2013-07-16  7:13 ` [PATCH 27/30] Specify checker_timeout in seconds Hannes Reinecke
2013-07-16  7:13 ` [PATCH 28/30] multipath: fix setting of fast_io_fail_tmo Hannes Reinecke
2013-07-16  7:13 ` [PATCH 29/30] multipath: reset queue_if_no_path if flush failed Hannes Reinecke
2013-07-16  7:13 ` [PATCH 30/30] libmultipath: read path state directly from sysfs Hannes Reinecke
2013-07-16 20:21 ` [PATCH 00/30] SLES resync, second try Christophe Varoqui

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=51ECDD0E.5060802@suse.de \
    --to=hare@suse.de \
    --cc=dm-devel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).