OpenBSD CVS

CVS log for src/sys/scsi/mpath_sym.c


[BACK] Up to [local] / src / sys / scsi

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.28 / (download) - annotate - [select for diffs], Sat Jul 2 08:50:42 2022 UTC (23 months, 1 week ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, HEAD
Changes since 1.27: +1 -3 lines
Diff to previous 1.27 (colored)

Remove unused device poll functions.

Also remove unneeded includes of <sys/poll.h> and <sys/select.h>.

Some addenda from jsg@.

OK miod@ mpi@

Revision 1.27 / (download) - annotate - [select for diffs], Sun Oct 24 16:57:30 2021 UTC (2 years, 7 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

Constify struct cfattach.

ok visa@ a long time ago, ok krw@

Revision 1.26 / (download) - annotate - [select for diffs], Fri Mar 12 10:22:46 2021 UTC (3 years, 3 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

spelling

Revision 1.25 / (download) - annotate - [select for diffs], Tue Jun 30 18:43:37 2020 UTC (3 years, 11 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.24: +3 -3 lines
Diff to previous 1.24 (colored)

Nuke unneeded 'sa_inqbuf' member of struct scsi_attach_args. It always
points to the inquiry data contained in the struct scsi_link pointed
to by the other member, sa_sc_link.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Aug 17 15:31:41 2019 UTC (4 years, 9 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.23: +2 -3 lines
Diff to previous 1.23 (colored)

Nuke some unused variables, tweak some declarations and
variable names into a consistant idiom.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Mar 14 03:38:52 2015 UTC (9 years, 3 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.22: +1 -2 lines
Diff to previous 1.22 (colored)

Remove some includes include-what-you-use claims don't
have any direct symbols used.  Tested for indirect use by compiling
amd64/i386/sparc64 kernels.

ok tedu@ deraadt@

Revision 1.22 / (download) - annotate - [select for diffs], Sun Sep 14 14:17:26 2014 UTC (9 years, 8 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.21: +1 -2 lines
Diff to previous 1.21 (colored)

remove uneeded proc.h includes
ok mpi@ kspillner@

Revision 1.21 / (download) - annotate - [select for diffs], Fri Jan 31 02:55:46 2014 UTC (10 years, 4 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.20: +2 -1 lines
Diff to previous 1.20 (colored)

SUNW SUNWGS INT FCBPL can be considered an asym device now we can uniquely
identify them over multiple paths using their wwnn.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Jan 30 05:53:38 2014 UTC (10 years, 4 months ago) by dlg
Branch: MAIN
Changes since 1.19: +2 -1 lines
Diff to previous 1.19 (colored)

SGI branded seagate disks work fine

Revision 1.19 / (download) - annotate - [select for diffs], Fri Dec 6 21:03:02 2013 UTC (10 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.18: +1 -4 lines
Diff to previous 1.18 (colored)

Add a DVACT_WAKEUP op to the *_activate() API.  This is called after the
kernel resumes normal (non-cold, able to run processes, etc) operation.
Previously we were relying on specific DVACT_RESUME op's in drivers
creating callback/threads themselves, but that has become too common,
indicating the need for a built-in mechanism.
ok dlg kettenis, tested by a sufficient amount of people

Revision 1.18 / (download) - annotate - [select for diffs], Tue Sep 3 06:39:04 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.17: +2 -1 lines
Diff to previous 1.17 (colored)

DELL MD3060e works

Revision 1.17 / (download) - annotate - [select for diffs], Tue Aug 27 00:57:44 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16 (colored)

make path driver match routes return 8 so they will definitely be higher
than the real device drivers. ses returns 3 on some dells, which could be
confusing for autoconf if it has to decide between that and a path driver.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Aug 27 00:53:10 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.15: +3 -5 lines
Diff to previous 1.15 (colored)

get rid of the different path scheduler types, which simplifies the
code that picks the next path. we assume roundrobin within a group
of paths now. the asym sym(4) devices work around this by putting
every path in its own group.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Aug 26 12:20:12 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

implement handling of group failover.

if a controller sends sense data back, the path driver can tell
mpath that its indicating failover which kicks off an iteration
over all the groups until one says its active. if no groups claim
to be active, a timeout fires the process off again after a second.

you can start controller handover on rdac (well, an md3200i is all
i had to test with, others might need more work) and everything
keeps going. ill try to get to emc and hds working when i can poke
hardware again.

Revision 1.14 / (download) - annotate - [select for diffs], Mon Aug 26 10:50:15 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

all paths are considered active, not in some unknown state.

Revision 1.13 / (download) - annotate - [select for diffs], Mon Aug 26 10:48:58 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored)

all FUJITSU MA disks ive found seem ok with being behind mpath.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Aug 26 10:13:17 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.11: +8 -15 lines
Diff to previous 1.11 (colored)

when i first imagined how paths on mpath worked, i thought the
midlayer would be able to call things on paths to explicitely online
or offline them. turns out thats not how the Real World(tm) works,
instead its better to wait for failure and probe for the status of
paths, and pick the active group of paths from that. there's even
evidence that the mechanisms for forcing controllers into active/passive
roles from the scsi initiator are being deprecated. they expect
hosts to be able to cope with arbitrary controller role changes and
failover
accordingly.

this replaces the online and offline function pointers in the path_ops
structure with a status check function pointer. instead of returning a
state, the checker is expected to call mpath_path_status() when its
finished figuring out what the state is.

Revision 1.11 / (download) - annotate - [select for diffs], Mon Aug 26 07:38:56 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

checksense handlers in path drivers can return MPATH_SENSE_DECLINED
(who can tell ive spent time in web servers) to say they decline
interpreting the sense data, or MPATH_SENSE_FAILOVER to say the
sense data is from the controller saying its failed over.

all path drivers currently decline handling sense data.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Aug 26 07:29:45 2013 UTC (10 years, 9 months ago) by dlg
Branch: MAIN
Changes since 1.9: +4 -2 lines
Diff to previous 1.9 (colored)

introduce the idea of groups of paths. mpath had stuff to managed
devices and paths. devices are what mpath presents as targets on
its scsibus, and paths are the things attached to hardware controllers
that are available to shove io down to the actual real target. all
paths were considered usable for handling io on behalf of a device.

this adds groups in between devices and paths. only paths on the
first group in the list will now be used to handle io now.

sym devices will only have one group. asym devices will treat each
path as a different group. rdac, emc, and hds will group paths based
on which controller in the array theyre connected to.

in the future we will intercept sense data from passive controllers
and use that to start running checks to pick a new primary group
so we can handle controller failover situations.

the group id in hds(4) is currently busted, everything else should
be correct.

Revision 1.9 / (download) - annotate - [select for diffs], Mon Jun 10 03:56:43 2013 UTC (11 years ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.8: +2 -1 lines
Diff to previous 1.8 (colored)

toshiba disks in an md1220 work fine

Revision 1.8 / (download) - annotate - [select for diffs], Mon Feb 4 01:27:55 2013 UTC (11 years, 4 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.7: +4 -2 lines
Diff to previous 1.7 (colored)

some stuff i found in old storedge 3500 disk trays seem to work fine.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Mar 23 13:46:47 2012 UTC (12 years, 2 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.6: +3 -2 lines
Diff to previous 1.6 (colored)

Add an entry to the asym list for the NetBSD iSCSI target.
OK dlg@

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jul 11 01:02:48 2011 UTC (12 years, 11 months ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.5: +42 -5 lines
Diff to previous 1.5 (colored)

support "failover" style access to volumes, ie, only use one active
path when talking to an array until it goes away, then you fail
over to the next active path.

im using this to talk to ses(4) in my dell, and allows us to support
arrays that have multiple controllers but have no way of reporting
which one is active. using the MRU semantic means we can talk to
them without them flipping the active role between its controllers
all the time. claudios transtec iscsi box is like this.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Jul 3 15:47:18 2011 UTC (12 years, 11 months ago) by matthew
Branch: MAIN
Changes since 1.4: +1 -2 lines
Diff to previous 1.4 (colored)

Remove config_activate() and DVACT_ACTIVATE.  PCMCIA's the only thing
that's ever used it, and it's long since been changed to use
DVACT_{QUIESCE,SUSPEND,RESUME} instead.

ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it
up a few weeks ago

Revision 1.4 / (download) - annotate - [select for diffs], Wed Jun 15 01:51:44 2011 UTC (13 years ago) by dlg
Branch: MAIN
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored)

FUJITSU MBD drives seem ok

Revision 1.3 / (download) - annotate - [select for diffs], Thu Apr 28 10:43:36 2011 UTC (13 years, 1 month ago) by dlg
Branch: MAIN
Changes since 1.2: +1 -2 lines
Diff to previous 1.2 (colored)

clean up the path ops struct a bit. the path drivers init their xsh with
their start routines, they dont have to pass pointers to them in the
ops struct.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Apr 27 09:09:36 2011 UTC (13 years, 1 month ago) by dlg
Branch: MAIN
Changes since 1.1: +5 -5 lines
Diff to previous 1.1 (colored)

whitespace fixes.

Revision 1.1 / (download) - annotate - [select for diffs], Tue Apr 5 14:25:42 2011 UTC (13 years, 2 months ago) by dlg
Branch: MAIN

move forward with scsi multipathing.

the big change is how paths between mpath capable devices and the
kernel are managed.

originally the midlayer would steal the links to the devices and
hide them behind mpath. all the changes an adapter made to a link
(eg activate or detach), the midlayer had to test if it was an mpath
link and then call special mpath code to handle it.

the original code also assumed that all paths behaved the same, but
the reality is that different devices have different command sets
and behaviours. figuring out which behaviour to pick and prioritising
them is basically the same job autoconf does with match and attach.

rather than special casing mpath in the midlayer and reimplimenting
autoconf, this turns paths into actual device drivers with match
and attach routines. after they figure out if the path is active,
they then give it to mpath(4) to use as a backend.

i have written drivers for symmetric access devices (sym(4)) where
all paths to the same logical unit are as good as each other,
lsi/engenio arrays (rdac(4), and emc arrays (emc(4)).

the rdac and emc drivers only detect active paths at attach time,
the do not cope if the controller changes state unless you unplug
the path and plug it in again to retest the active state. they also
do not have support for directing array failover.

operating and hoplugging has been tested with mpii(4), fc and sas
mpi(4), and iscsi via vscsi (claudio did this too).

ok krw@ deraadt@

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.