All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Schausberger <schausberger@ips.at>
To: dm-devel@redhat.com
Subject: HDS multipathing prioritizer not doing what it should
Date: Thu, 10 May 2012 09:28:06 +0200	[thread overview]
Message-ID: <4FAB6E06.9020709@ips.at> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 2768 bytes --]

Hi all,


I think I found a bug in the HDS prioritizer module at 
http://git.kernel.org/gitweb.cgi?p=linux/storage/multipath/hare/multipath-tools.git;a=blob_plain;f=libmultipath/prioritizers/hds.c;hb=HEAD

In there the following is stated for assigning the priority:

* CONTROLLER ODD and LDEV ODD: PRIORITY 1
* CONTROLLER ODD and LDEV EVEN: PRIORITY 0
* CONTROLLER EVEN and LDEV ODD: PRIORITY 0
* CONTROLLER EVEN and LDEV EVEN: PRIORITY 1

When watching multipathing with debug output one can see that the 
controllers returned are 1 and 2:

May 08 14:44:00 | sdo: hds prio: VENDOR:  HITACHI
May 08 14:44:00 | sdo: hds prio: PRODUCT: DF600F
May 08 14:44:00 | sdo: hds prio: SERIAL:  0x0089
May 08 14:44:00 | sdo: hds prio: LDEV:    0x0004
May 08 14:44:00 | sdo: hds prio: CTRL:    1 <= This is really controller 0
May 08 14:44:00 | sdo: hds prio: PORT:    C
May 08 14:44:00 | sdo: hds prio: CTRL ODD, LDEV EVEN, PRIO 0
May 08 14:44:00 | sdo: hds prio = 0

May 08 14:44:00 | sdk: hds prio: VENDOR:  HITACHI
May 08 14:44:00 | sdk: hds prio: PRODUCT: DF600F
May 08 14:44:00 | sdk: hds prio: SERIAL:  0x0089
May 08 14:44:00 | sdk: hds prio: LDEV:    0x0004
May 08 14:44:00 | sdk: hds prio: CTRL:    2 <= This is really controller 1
May 08 14:44:00 | sdk: hds prio: PORT:    C
May 08 14:44:00 | sdk: hds prio: CTRL EVEN, LDEV EVEN, PRIO 1
May 08 14:44:00 | sdk: hds prio = 1

This looks fine, but afaik HDS starts counting controllers from 0 (so 
actually I have 0 and 1). So when assigning LUN ownership in the 
storage, a LUN with an active/passive path will actually always be 
accessed through the wrong controller. This has a huge performance 
penalty when the system is under stress, because of the additional 
overhead generated by this.

To sum this up, the priority is exactly swapped from what it should be:

Lun 0 mapped with ownership on Controller 0 (CONTROLLER EVEN and LDEV 
EVEN)will be accessed on Controller 1
Lun 1 mapped with ownership on Controller 1 (CONTROLLER ODD and LDEV 
ODD) will be accessed on Controller 0

I am not quite sure were to fix this. Looks like the code was 
contributed by Hitachi in 2006. Back then they maybe started the 
numbering of the controllers with 1. The AMS and the new HUS systems 
start at 0 though.


If you can tell me how I can help, I am glad to do so.

Thanks,
Christian

-- 
-=IPS GmbH=- <http://www.ips.at>

Mit freundlichen Grüßen / Best Regards

*Christian Schausberger, MSc*

   Systems Engineer

IPS Vertriebsgesellschaft für innovative EDV-Produkte und - Systeme GmbH
Franzosengraben 10
A-1030 Wien

T#: +43 1 796 86 86 - 57
F#: +43 1 796 86 86 - 15
M#: +43 664 88 45 46 11
@#: schausberger@ips.at <mailto:schausberger@ips.at>


[-- Attachment #1.2.1: Type: text/html, Size: 5127 bytes --]

[-- Attachment #1.2.2: Type: image/jpeg, Size: 27 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



             reply	other threads:[~2012-05-10  7:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-10  7:28 Christian Schausberger [this message]
2012-05-10 12:48 ` HDS multipathing prioritizer not doing what it should Hannes Reinecke
  -- strict thread matches above, loose matches on Subject: below --
2012-05-11  7:47 Christian Schausberger

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=4FAB6E06.9020709@ips.at \
    --to=schausberger@ips.at \
    --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 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.