On Fri, 2025-05-09 at 15:44 +0200, Xose Vazquez Perez wrote:
> round-robin is a basic selector, and only works well under ideal
> conditions,
> 
> A nvme benchmark, round-robin vs queue-depth, shows how bad it is:
> https://marc.info/?l=linux-kernel&m=171931850925572
> https://marc.info/?l=linux-kernel&m=171931852025575
> https://github.com/johnmeneghini/iopolicy/?tab=readme-ov-file#sample-data
> https://people.redhat.com/jmeneghi/ALPSS_2023/NVMe_QD_Multipathing.pdf

All these are about native nvme multipath. None is about dm-multipath.

> The same happens for scsi.

Please support this claim with actual numbers. I'm not saying that it's
wrong (it makes sense that John's argument "the round-robin path
selector is inefficient in cases where there is a difference in latency
between paths" applies to all implementations), but you can't present
numbers for one technology and simply apply them to a different
technology without providing any evidence for the latter.

I'd accept this statement in a weaker form, like "It is reasonable to
assume that the same effects would be measured with dm-multipath over
SCSI devices, too".

> 
> Cc: Martin Wilck <mwi...@suse.com>
> Cc: Benjamin Marzinski <bmarz...@redhat.com>
> Cc: Christophe Varoqui <christophe.varo...@opensvc.com>
> Cc: DM-DEVEL ML <dm-devel@lists.linux.dev>
> Signed-off-by: Xose Vazquez Perez <xose.vazq...@gmail.com>
> ---
> Should global keywords be banned in the devices section, or deleted
> from hwtable ???
> dev_loss
> fast_io_fail
> max_sectors_kb
> ...
> 
> They interfere when two, or more, different arrays are connected to
> the same host.
> ---
>  libmultipath/hwtable.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
> index 081d119c..3ade3669 100644
> --- a/libmultipath/hwtable.c
> +++ b/libmultipath/hwtable.c
> @@ -1125,11 +1125,7 @@ static struct hwentry default_hw[] = {
>               .pgpolicy      = GROUP_BY_PRIO,
>               .pgfailback    = 30,
>               .prio_name     = PRIO_ALUA,
> -             .selector      = "round-robin 0",
> -             .rr_weight     = RR_WEIGHT_PRIO,
>               .no_path_retry = NO_PATH_RETRY_FAIL,
> -             .minio         = 1,
> -             .minio_rq      = 1,
>               .fast_io_fail  = 15,
>       },
>       /*

This code is from 55da608 ("libmultipath: update INFINIDAT builtin
config"), signed-off by arn...@infinidat.com. We usually don't change
defaults from explicit vendor recommendations without consent from the
vendor. I've added Arnon to cc, maybe he wants to comment on your
suggestion.

Regards,
Martin

Reply via email to