On Date: Fri, 4 Nov 2005 10:47:51 +0100 Christophe Varoqui <christophe.varoqui@xxxxxxx> wrote > On Fri, Nov 04, 2005 at 09:19:06AM +0100, Bernd Zeimetz wrote: > > Hi, > > > > > Looks good, except the call to extract_hwe_from_path in > setup_multipath > > > must be before the call to select_pgfailback. > > > > > > > We have a ton of these log messages now. > > >From the last about 2 hours: > > > > 580x multipathd: 3600601f4a20c000099dc229956b0d711: switch > to path group #1 > > 714x multipathd: 3600601f4a20c000096dc229956b0d711: switch > to path group #1 > > 714x multipathd: 3600601f2a20c0000fb13caa656b0d711: switch > to path group #1 > > 45x kernel: device-mapper: dm-emc: emc_pg_init: sending > switch-over command > > > > It happens only for these 3 of 8 luns. > > > > Kernel is 2.6.13.4, devmapper 1.01, latest multipath-tools > from git, evms > > 2.5.3 > > > > zeus-1:/# cat /etc/multipath.conf > > defaults { > > failback immediate > > } > > > > > > Since we had a lot of trouble with our CX400 (Hardware > problems, but they're > > supposed to be fixed) I'm wondering what these messages > mean, and if we still > > have hardware/software bugs somewhere. > > > Yes, the test to determine if a switch is needed is sub-optimal : > The no activated PG case (all Enabled for exampleÃ) keeps > triggering a switch. > I checked-in a patch to solve that issue. I've dealt with this problem by patching the device mapper multipath driver in the kernel. The patch below patches drivers/md/dm-mpath.c:multipath_status() to return an active state for a path group which is either the current path group or setup to be the next path group instead of just returning an active state for a path group which is currently active. *** ../base/linux-2.6.14-rc4/drivers/md/dm-mpath.c Mon Oct 10 20:19:19 2005 --- drivers/md/dm-mpath.c Thu Nov 3 04:17:48 2005 *************** *** 1158,1164 **** list_for_each_entry(pg, &m->priority_groups, list) { if (pg->bypassed) state = 'D'; /* Disabled */ ! else if (pg == m->current_pg) state = 'A'; /* Currently Active */ else state = 'E'; /* Enabled */ --- 1158,1164 ---- list_for_each_entry(pg, &m->priority_groups, list) { if (pg->bypassed) state = 'D'; /* Disabled */ ! else if ((pg == m->current_pg) || (pg == m->next_pg)) state = 'A'; /* Currently Active */ else state = 'E'; /* Enabled */ -- dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel