1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys/conf
Matt Jacob e770bc6bf5 First cut at GEOM based multipath. This is an active/passive{/passive...}
arrangement that has no intrinsic internal knowledge of whether devices
it is given are truly multipath devices. As such, this is a simplistic
approach, but still a useful one.

The basic approach is to (at present- this will change soon) use camcontrol
to find likely identical devices and and label the trailing sector of the
first one. This label contains both a full UUID and a name. The name is
what is presented in /dev/multipath, but the UUID is used as a true
distinguishor at g_taste time, thus making sure we don't have chaos
on a shared SAN where everyone names their data multipath as "Fred".

The first of N identical devices (and N *may* be 1!) becomes the active
path until a BIO request is failed with EIO or ENXIO. When this occurs,
the active disk is ripped away and the next in a list is picked to
(retry and) continue with.

During g_taste events new disks that meet the match criteria for existing
multipath geoms get added to the tail end of the list.

Thus, this active/passive setup actually does work for devices which
go away and come back, as do (now) mpt(4) and isp(4) SAN based disks.

There is still a lot to do to improve this- like about 5 of the 12
recommendations I've received about it,  but it's been functional enough
for a while that it deserves a broader test base.

Reviewed by: pjd
Sponsored by: IronPort Systems
MFC: 2 months
2007-02-27 04:01:58 +00:00
..
defines
files First cut at GEOM based multipath. This is an active/passive{/passive...} 2007-02-27 04:01:58 +00:00
files.amd64 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.arm opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.i386 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.ia64 Move "device splash" back to MI NOTES and "files", it's MI. 2006-10-23 13:23:14 +00:00
files.pc98 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.powerpc Evolve the ctlreq interface added to geom_gpt into a generic 2007-02-07 18:55:31 +00:00
files.sparc64 Add front-ends for the 'lebuffer' variants found on some SBus cards. 2007-01-20 12:53:30 +00:00
files.sun4v build new mdesc file 2006-12-18 07:26:35 +00:00
kern.mk Fix module loading for sparc on machines with greater than 1GB of RAM 2006-11-26 23:16:46 +00:00
kern.post.mk now that MFS_IMAGE is in the FULLKERNEL section, use FULLKERNEL instead of 2006-12-30 20:27:24 +00:00
kern.pre.mk Fixed high resolution profiling on arches that support it (amd64 and 2006-10-26 15:16:43 +00:00
kmod_syms.awk
kmod.mk The path to the mmc/mmcbus_if.m file is wrong. Correct it by 2007-02-03 06:46:11 +00:00
ldscript.amd64
ldscript.arm Create a non-elf pure binary version of the kernel as well. 2005-11-24 02:25:49 +00:00
ldscript.i386
ldscript.ia64
ldscript.powerpc
ldscript.sparc64
Makefile.amd64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.arm Only use -mno-apcs-frame if DDB is not in the kernel, as it prevent the 2006-07-24 22:09:47 +00:00
Makefile.i386 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.ia64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.pc98 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.powerpc Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.sparc64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.sun4v placate Grim Reaper with sun4v support 2006-10-05 06:14:28 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh Pad the strings sccs[], version[], and osrelease[] up to a minimum of 2005-08-19 01:49:15 +00:00
NOTES First cut at GEOM based multipath. This is an active/passive{/passive...} 2007-02-27 04:01:58 +00:00
options Build PIM by default as part of the IPv4 multicast forwarding path. 2007-02-10 13:59:13 +00:00
options.amd64 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.arm Add two new options, FLASHADDR, which defines the address the flash is 2007-02-19 01:03:08 +00:00
options.i386 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.ia64 o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- 2006-04-24 23:31:51 +00:00
options.pc98 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.powerpc
options.sparc64 - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
options.sun4v Remove remnants from the sparc64 origin of this file and which are 2007-01-19 12:22:50 +00:00
systags.sh Use a simpler way to reach the <machine> include dir, which should 2005-12-03 21:37:54 +00:00