From owner-svn-src-projects@FreeBSD.ORG Fri Feb 4 23:57:51 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7235B106566C; Fri, 4 Feb 2011 23:57:51 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5ED9E8FC14; Fri, 4 Feb 2011 23:57:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p14NvpcL008190; Fri, 4 Feb 2011 23:57:51 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p14Nvpw3008180; Fri, 4 Feb 2011 23:57:51 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201102042357.p14Nvpw3008180@svn.freebsd.org> From: Alexander Motin Date: Fri, 4 Feb 2011 23:57:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r218307 - in projects/graid/8: . contrib/bsnmp/snmpd contrib/top contrib/xz gnu/usr.bin lib/libusb release/picobsd/floppy.tree/sbin sbin/geom/class/raid sbin/geom/class/sched sbin/geom/... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Feb 2011 23:57:51 -0000 Author: mav Date: Fri Feb 4 23:57:50 2011 New Revision: 218307 URL: http://svn.freebsd.org/changeset/base/218307 Log: MFH r216978, r216979, r216980, r216981, r216984, r217014, r217188, r217189, r217193, r216981, r216984, r217014, r217188, r217189, r217193, r217194, r217267, r217284, r217285, r217287, r217293, r217301, r217311, r217363, r217372, r217373, r217378, r217380, r217389, r217409, r217411, r217462, r217465, r217466, r217467, r217507, r217546, r217565, r217662, r217827, r217828, r217842, r217884, r217889, r217891, r217892, r217907, r217912, r217918, r217919, r217920, r217926, r217929, r217972, r217989, r217992, r217998, r217999, r218006, r218008, r218016, r218023, r218052, r218053, r218062, r218063, r218083, r218084, r218086, r218106, r218143, r218161, r218174, r218204, r218212, r218213, r218220, r218222, r218224, r218226, r218230, r218231, r218233, r218234, r218236, r218237, r218239, r218244, r218247, r218248, r218249, r218250, r218251, r218252, r218253, r218254, r218255, r218257, r218260, r218262, r218263, r218265, r218279, r218281, r218282. Added: projects/graid/8/sys/amd64/conf/CISCO - copied unchanged from r216979, projects/graid/head/sys/amd64/conf/CISCO Modified: projects/graid/8/sbin/geom/class/raid/geom_raid.c projects/graid/8/sbin/geom/class/raid/graid.8 projects/graid/8/sbin/geom/core/geom.8 projects/graid/8/sbin/geom/core/geom.c projects/graid/8/sys/cam/ata/ata_da.c projects/graid/8/sys/conf/options projects/graid/8/sys/dev/led/led.c projects/graid/8/sys/dev/led/led.h projects/graid/8/sys/geom/geom.h projects/graid/8/sys/geom/geom_dev.c projects/graid/8/sys/geom/geom_disk.c projects/graid/8/sys/geom/raid/g_raid.c projects/graid/8/sys/geom/raid/g_raid.h projects/graid/8/sys/geom/raid/g_raid_ctl.c projects/graid/8/sys/geom/raid/g_raid_md_if.m projects/graid/8/sys/geom/raid/g_raid_tr_if.m projects/graid/8/sys/geom/raid/md_intel.c projects/graid/8/sys/geom/raid/tr_raid0.c projects/graid/8/sys/geom/raid/tr_raid1.c Directory Properties: projects/graid/8/ (props changed) projects/graid/8/COPYRIGHT (props changed) projects/graid/8/Makefile (props changed) projects/graid/8/Makefile.inc1 (props changed) projects/graid/8/ObsoleteFiles.inc (props changed) projects/graid/8/UPDATING (props changed) projects/graid/8/bin/ (props changed) projects/graid/8/bin/chio/ (props changed) projects/graid/8/bin/chmod/ (props changed) projects/graid/8/bin/cp/ (props changed) projects/graid/8/bin/csh/ (props changed) projects/graid/8/bin/date/ (props changed) projects/graid/8/bin/echo/ (props changed) projects/graid/8/bin/expr/ (props changed) projects/graid/8/bin/getfacl/ (props changed) projects/graid/8/bin/kill/ (props changed) projects/graid/8/bin/ln/ (props changed) projects/graid/8/bin/ls/ (props changed) projects/graid/8/bin/mv/ (props changed) projects/graid/8/bin/pax/ (props changed) projects/graid/8/bin/pkill/ (props changed) projects/graid/8/bin/ps/ (props changed) projects/graid/8/bin/pwait/ (props changed) projects/graid/8/bin/setfacl/ (props changed) projects/graid/8/bin/sh/ (props changed) projects/graid/8/bin/sleep/ (props changed) projects/graid/8/bin/test/ (props changed) projects/graid/8/cddl/compat/opensolaris/ (props changed) projects/graid/8/cddl/contrib/opensolaris/ (props changed) projects/graid/8/cddl/lib/ (props changed) projects/graid/8/cddl/lib/libnvpair/ (props changed) projects/graid/8/cddl/lib/libzpool/ (props changed) projects/graid/8/cddl/usr.bin/ (props changed) projects/graid/8/cddl/usr.sbin/ (props changed) projects/graid/8/contrib/ (props changed) projects/graid/8/contrib/bind9/ (props changed) projects/graid/8/contrib/binutils/ (props changed) projects/graid/8/contrib/bsnmp/ (props changed) projects/graid/8/contrib/bsnmp/snmpd/bsnmpd.1 (props changed) projects/graid/8/contrib/bzip2/ (props changed) projects/graid/8/contrib/com_err/ (props changed) projects/graid/8/contrib/csup/ (props changed) projects/graid/8/contrib/ee/ (props changed) projects/graid/8/contrib/expat/ (props changed) projects/graid/8/contrib/file/ (props changed) projects/graid/8/contrib/gcc/ (props changed) projects/graid/8/contrib/gdb/ (props changed) projects/graid/8/contrib/gdtoa/ (props changed) projects/graid/8/contrib/groff/ (props changed) projects/graid/8/contrib/ipfilter/ (props changed) projects/graid/8/contrib/less/ (props changed) projects/graid/8/contrib/libpcap/ (props changed) projects/graid/8/contrib/ncurses/ (props changed) projects/graid/8/contrib/netcat/ (props changed) projects/graid/8/contrib/ntp/ (props changed) projects/graid/8/contrib/nvi/ (props changed) projects/graid/8/contrib/one-true-awk/ (props changed) projects/graid/8/contrib/openbsm/ (props changed) projects/graid/8/contrib/openpam/ (props changed) projects/graid/8/contrib/pf/ (props changed) projects/graid/8/contrib/sendmail/ (props changed) projects/graid/8/contrib/tcp_wrappers/ (props changed) projects/graid/8/contrib/tcpdump/ (props changed) projects/graid/8/contrib/tcsh/ (props changed) projects/graid/8/contrib/telnet/ (props changed) projects/graid/8/contrib/top/ (props changed) projects/graid/8/contrib/top/install-sh (props changed) projects/graid/8/contrib/traceroute/ (props changed) projects/graid/8/contrib/wpa/ (props changed) projects/graid/8/contrib/xz/ (props changed) projects/graid/8/contrib/xz/AUTHORS (props changed) projects/graid/8/contrib/xz/COPYING (props changed) projects/graid/8/contrib/xz/ChangeLog (props changed) projects/graid/8/contrib/xz/FREEBSD-Xlist (props changed) projects/graid/8/contrib/xz/FREEBSD-upgrade (props changed) projects/graid/8/contrib/xz/README (props changed) projects/graid/8/contrib/xz/THANKS (props changed) projects/graid/8/contrib/xz/TODO (props changed) projects/graid/8/contrib/xz/po/ (props changed) projects/graid/8/contrib/xz/src/ (props changed) projects/graid/8/crypto/heimdal/ (props changed) projects/graid/8/crypto/openssh/ (props changed) projects/graid/8/crypto/openssl/ (props changed) projects/graid/8/etc/ (props changed) projects/graid/8/games/factor/ (props changed) projects/graid/8/games/fortune/ (props changed) projects/graid/8/games/grdc/ (props changed) projects/graid/8/games/pom/ (props changed) projects/graid/8/gnu/lib/csu/ (props changed) projects/graid/8/gnu/lib/libgcc/ (props changed) projects/graid/8/gnu/lib/libstdc++/ (props changed) projects/graid/8/gnu/usr.bin/ (props changed) projects/graid/8/gnu/usr.bin/Makefile (props changed) projects/graid/8/gnu/usr.bin/dialog/ (props changed) projects/graid/8/gnu/usr.bin/gdb/ (props changed) projects/graid/8/gnu/usr.bin/gdb/kgdb/ (props changed) projects/graid/8/gnu/usr.bin/groff/ (props changed) projects/graid/8/gnu/usr.bin/patch/ (props changed) projects/graid/8/include/ (props changed) projects/graid/8/kerberos5/lib/libgssapi_krb5/ (props changed) projects/graid/8/kerberos5/lib/libgssapi_spnego/ (props changed) projects/graid/8/kerberos5/usr.bin/kdestroy/ (props changed) projects/graid/8/kerberos5/usr.bin/kpasswd/ (props changed) projects/graid/8/lib/ (props changed) projects/graid/8/lib/bind/ (props changed) projects/graid/8/lib/csu/ (props changed) projects/graid/8/lib/libarchive/ (props changed) projects/graid/8/lib/libbluetooth/ (props changed) projects/graid/8/lib/libc/ (props changed) projects/graid/8/lib/libc/stdtime/ (props changed) projects/graid/8/lib/libc_r/ (props changed) projects/graid/8/lib/libcam/ (props changed) projects/graid/8/lib/libcompat/ (props changed) projects/graid/8/lib/libdevinfo/ (props changed) projects/graid/8/lib/libdisk/ (props changed) projects/graid/8/lib/libedit/ (props changed) projects/graid/8/lib/libelf/ (props changed) projects/graid/8/lib/libexpat/ (props changed) projects/graid/8/lib/libfetch/ (props changed) projects/graid/8/lib/libgeom/ (props changed) projects/graid/8/lib/libgpib/ (props changed) projects/graid/8/lib/libgssapi/ (props changed) projects/graid/8/lib/libjail/ (props changed) projects/graid/8/lib/libkse/ (props changed) projects/graid/8/lib/libkvm/ (props changed) projects/graid/8/lib/liblzma/ (props changed) projects/graid/8/lib/libmagic/ (props changed) projects/graid/8/lib/libmemstat/ (props changed) projects/graid/8/lib/libpam/ (props changed) projects/graid/8/lib/libpmc/ (props changed) projects/graid/8/lib/libproc/ (props changed) projects/graid/8/lib/libradius/ (props changed) projects/graid/8/lib/librpcsec_gss/ (props changed) projects/graid/8/lib/librtld_db/ (props changed) projects/graid/8/lib/libsm/ (props changed) projects/graid/8/lib/libstand/ (props changed) projects/graid/8/lib/libtacplus/ (props changed) projects/graid/8/lib/libthr/ (props changed) projects/graid/8/lib/libthread_db/ (props changed) projects/graid/8/lib/libufs/ (props changed) projects/graid/8/lib/libugidfw/ (props changed) projects/graid/8/lib/libusb/ (props changed) projects/graid/8/lib/libusb/usb.h (props changed) projects/graid/8/lib/libusbhid/ (props changed) projects/graid/8/lib/libutil/ (props changed) projects/graid/8/lib/libz/ (props changed) projects/graid/8/lib/libz/contrib/ (props changed) projects/graid/8/lib/msun/ (props changed) projects/graid/8/libexec/ (props changed) projects/graid/8/libexec/ftpd/ (props changed) projects/graid/8/libexec/rtld-elf/ (props changed) projects/graid/8/libexec/tftpd/ (props changed) projects/graid/8/release/ (props changed) projects/graid/8/release/doc/en_US.ISO8859-1/hardware/ (props changed) projects/graid/8/release/picobsd/ (props changed) projects/graid/8/release/picobsd/floppy.tree/sbin/ (props changed) projects/graid/8/release/picobsd/floppy.tree/sbin/dhclient-script (props changed) projects/graid/8/release/picobsd/qemu/ (props changed) projects/graid/8/release/picobsd/tinyware/login/ (props changed) projects/graid/8/release/powerpc/ (props changed) projects/graid/8/sbin/ (props changed) projects/graid/8/sbin/atacontrol/ (props changed) projects/graid/8/sbin/bsdlabel/ (props changed) projects/graid/8/sbin/camcontrol/ (props changed) projects/graid/8/sbin/ddb/ (props changed) projects/graid/8/sbin/devd/ (props changed) projects/graid/8/sbin/devfs/ (props changed) projects/graid/8/sbin/dhclient/ (props changed) projects/graid/8/sbin/dump/ (props changed) projects/graid/8/sbin/dumpfs/ (props changed) projects/graid/8/sbin/fdisk/ (props changed) projects/graid/8/sbin/fsck/ (props changed) projects/graid/8/sbin/fsck_ffs/ (props changed) projects/graid/8/sbin/fsck_msdosfs/ (props changed) projects/graid/8/sbin/fsirand/ (props changed) projects/graid/8/sbin/geom/ (props changed) projects/graid/8/sbin/geom/class/multipath/ (props changed) projects/graid/8/sbin/geom/class/part/ (props changed) projects/graid/8/sbin/geom/class/sched/gsched.8 (props changed) projects/graid/8/sbin/geom/class/stripe/ (props changed) projects/graid/8/sbin/ggate/ (props changed) projects/graid/8/sbin/growfs/ (props changed) projects/graid/8/sbin/hastctl/ (props changed) projects/graid/8/sbin/hastd/ (props changed) projects/graid/8/sbin/ifconfig/ (props changed) projects/graid/8/sbin/ipfw/ (props changed) projects/graid/8/sbin/iscontrol/ (props changed) projects/graid/8/sbin/kldload/ (props changed) projects/graid/8/sbin/kldstat/ (props changed) projects/graid/8/sbin/mdconfig/ (props changed) projects/graid/8/sbin/mksnap_ffs/ (props changed) projects/graid/8/sbin/mount/ (props changed) projects/graid/8/sbin/mount_cd9660/ (props changed) projects/graid/8/sbin/mount_msdosfs/ (props changed) projects/graid/8/sbin/mount_nfs/ (props changed) projects/graid/8/sbin/natd/ (props changed) projects/graid/8/sbin/newfs/ (props changed) projects/graid/8/sbin/newfs_msdos/ (props changed) projects/graid/8/sbin/ping6/ (props changed) projects/graid/8/sbin/reboot/ (props changed) projects/graid/8/sbin/restore/ (props changed) projects/graid/8/sbin/route/ (props changed) projects/graid/8/sbin/routed/ (props changed) projects/graid/8/sbin/setkey/ (props changed) projects/graid/8/sbin/spppcontrol/ (props changed) projects/graid/8/sbin/sysctl/ (props changed) projects/graid/8/sbin/tunefs/ (props changed) projects/graid/8/sbin/umount/ (props changed) projects/graid/8/secure/ (props changed) projects/graid/8/secure/lib/libcrypto/ (props changed) projects/graid/8/secure/lib/libssl/ (props changed) projects/graid/8/secure/usr.bin/bdes/ (props changed) projects/graid/8/secure/usr.bin/openssl/ (props changed) projects/graid/8/share/dict/ (props changed) projects/graid/8/share/doc/papers/jail/ (props changed) projects/graid/8/share/doc/smm/01.setup/ (props changed) projects/graid/8/share/examples/ (props changed) projects/graid/8/share/examples/etc/ (props changed) projects/graid/8/share/examples/kld/syscall/ (props changed) projects/graid/8/share/man/ (props changed) projects/graid/8/share/man/man1/ (props changed) projects/graid/8/share/man/man3/ (props changed) projects/graid/8/share/man/man4/ (props changed) projects/graid/8/share/man/man5/ (props changed) projects/graid/8/share/man/man7/ (props changed) projects/graid/8/share/man/man8/ (props changed) projects/graid/8/share/man/man9/ (props changed) projects/graid/8/share/misc/ (props changed) projects/graid/8/share/mk/ (props changed) projects/graid/8/share/syscons/ (props changed) projects/graid/8/share/termcap/ (props changed) projects/graid/8/share/timedef/ (props changed) projects/graid/8/share/zoneinfo/ (props changed) projects/graid/8/sys/ (props changed) projects/graid/8/sys/amd64/include/xen/ (props changed) projects/graid/8/sys/cddl/contrib/opensolaris/ (props changed) projects/graid/8/sys/contrib/dev/acpica/ (props changed) projects/graid/8/sys/contrib/pf/ (props changed) projects/graid/8/tools/ (props changed) projects/graid/8/tools/build/mk/ (props changed) projects/graid/8/tools/build/options/ (props changed) projects/graid/8/tools/debugscripts/ (props changed) projects/graid/8/tools/kerneldoc/subsys/ (props changed) projects/graid/8/tools/regression/acct/ (props changed) projects/graid/8/tools/regression/acltools/ (props changed) projects/graid/8/tools/regression/aio/aiotest/ (props changed) projects/graid/8/tools/regression/bin/ (props changed) projects/graid/8/tools/regression/bin/date/ (props changed) projects/graid/8/tools/regression/bin/sh/ (props changed) projects/graid/8/tools/regression/fifo/ (props changed) projects/graid/8/tools/regression/geom/ (props changed) projects/graid/8/tools/regression/lib/libc/ (props changed) projects/graid/8/tools/regression/lib/msun/test-conj.t (props changed) projects/graid/8/tools/regression/mqueue/mqtest1/ (props changed) projects/graid/8/tools/regression/mqueue/mqtest2/ (props changed) projects/graid/8/tools/regression/mqueue/mqtest3/ (props changed) projects/graid/8/tools/regression/mqueue/mqtest4/ (props changed) projects/graid/8/tools/regression/mqueue/mqtest5/ (props changed) projects/graid/8/tools/regression/netinet/ (props changed) projects/graid/8/tools/regression/poll/ (props changed) projects/graid/8/tools/regression/posixsem/ (props changed) projects/graid/8/tools/regression/priv/ (props changed) projects/graid/8/tools/regression/sockets/unix_gc/ (props changed) projects/graid/8/tools/regression/usr.bin/ (props changed) projects/graid/8/tools/regression/usr.bin/pkill/ (props changed) projects/graid/8/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) projects/graid/8/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) projects/graid/8/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) projects/graid/8/tools/regression/usr.bin/sed/ (props changed) projects/graid/8/tools/regression/usr.bin/tr/ (props changed) projects/graid/8/tools/test/ (props changed) projects/graid/8/tools/tools/ (props changed) projects/graid/8/tools/tools/ath/ (props changed) projects/graid/8/tools/tools/ath/common/dumpregs.h (props changed) projects/graid/8/tools/tools/ath/common/dumpregs_5210.c (props changed) projects/graid/8/tools/tools/ath/common/dumpregs_5211.c (props changed) projects/graid/8/tools/tools/ath/common/dumpregs_5212.c (props changed) projects/graid/8/tools/tools/ath/common/dumpregs_5416.c (props changed) projects/graid/8/tools/tools/mctest/ (props changed) projects/graid/8/tools/tools/nanobsd/ (props changed) projects/graid/8/tools/tools/netrate/ (props changed) projects/graid/8/tools/tools/netrate/tcpp/ (props changed) projects/graid/8/tools/tools/termcap/termcap.pl (props changed) projects/graid/8/tools/tools/umastat/ (props changed) projects/graid/8/tools/tools/vimage/ (props changed) projects/graid/8/usr.bin/ (props changed) projects/graid/8/usr.bin/apply/ (props changed) projects/graid/8/usr.bin/ar/ (props changed) projects/graid/8/usr.bin/awk/ (props changed) projects/graid/8/usr.bin/biff/ (props changed) projects/graid/8/usr.bin/c89/ (props changed) projects/graid/8/usr.bin/c99/ (props changed) projects/graid/8/usr.bin/calendar/ (props changed) projects/graid/8/usr.bin/catman/ (props changed) projects/graid/8/usr.bin/chpass/Makefile (props changed) projects/graid/8/usr.bin/column/ (props changed) projects/graid/8/usr.bin/comm/ (props changed) projects/graid/8/usr.bin/cpio/ (props changed) projects/graid/8/usr.bin/csup/ (props changed) projects/graid/8/usr.bin/du/ (props changed) projects/graid/8/usr.bin/ee/ (props changed) projects/graid/8/usr.bin/enigma/ (props changed) projects/graid/8/usr.bin/fetch/ (props changed) projects/graid/8/usr.bin/find/ (props changed) projects/graid/8/usr.bin/finger/ (props changed) projects/graid/8/usr.bin/fold/ (props changed) projects/graid/8/usr.bin/fstat/ (props changed) projects/graid/8/usr.bin/gcore/ (props changed) projects/graid/8/usr.bin/getopt/ (props changed) projects/graid/8/usr.bin/gzip/ (props changed) projects/graid/8/usr.bin/hexdump/ (props changed) projects/graid/8/usr.bin/indent/ (props changed) projects/graid/8/usr.bin/jot/ (props changed) projects/graid/8/usr.bin/kdump/ (props changed) projects/graid/8/usr.bin/killall/ (props changed) projects/graid/8/usr.bin/ktrace/ (props changed) projects/graid/8/usr.bin/ldd/ (props changed) projects/graid/8/usr.bin/lex/ (props changed) projects/graid/8/usr.bin/locale/ (props changed) projects/graid/8/usr.bin/locate/ (props changed) projects/graid/8/usr.bin/lockf/ (props changed) projects/graid/8/usr.bin/look/ (props changed) projects/graid/8/usr.bin/mail/ (props changed) projects/graid/8/usr.bin/make/ (props changed) projects/graid/8/usr.bin/makewhatis/ (props changed) projects/graid/8/usr.bin/minigzip/ (props changed) projects/graid/8/usr.bin/ncal/ (props changed) projects/graid/8/usr.bin/netstat/ (props changed) projects/graid/8/usr.bin/pathchk/ (props changed) projects/graid/8/usr.bin/perror/ (props changed) projects/graid/8/usr.bin/procstat/ (props changed) projects/graid/8/usr.bin/rpcgen/ (props changed) projects/graid/8/usr.bin/ruptime/ (props changed) projects/graid/8/usr.bin/script/ (props changed) projects/graid/8/usr.bin/sed/ (props changed) projects/graid/8/usr.bin/sockstat/ (props changed) projects/graid/8/usr.bin/split/ (props changed) projects/graid/8/usr.bin/stat/ (props changed) projects/graid/8/usr.bin/systat/ (props changed) projects/graid/8/usr.bin/tar/ (props changed) projects/graid/8/usr.bin/tftp/ (props changed) projects/graid/8/usr.bin/top/ (props changed) projects/graid/8/usr.bin/touch/ (props changed) projects/graid/8/usr.bin/tr/ (props changed) projects/graid/8/usr.bin/truss/ (props changed) projects/graid/8/usr.bin/uname/ (props changed) projects/graid/8/usr.bin/unifdef/ (props changed) projects/graid/8/usr.bin/uniq/ (props changed) projects/graid/8/usr.bin/unzip/ (props changed) projects/graid/8/usr.bin/uudecode/ (props changed) projects/graid/8/usr.bin/vmstat/ (props changed) projects/graid/8/usr.bin/w/ (props changed) projects/graid/8/usr.bin/whois/ (props changed) projects/graid/8/usr.bin/xinstall/ (props changed) projects/graid/8/usr.bin/xlint/ (props changed) projects/graid/8/usr.bin/xz/ (props changed) projects/graid/8/usr.bin/yacc/ (props changed) projects/graid/8/usr.sbin/ (props changed) projects/graid/8/usr.sbin/Makefile (props changed) projects/graid/8/usr.sbin/acpi/ (props changed) projects/graid/8/usr.sbin/arp/ (props changed) projects/graid/8/usr.sbin/asf/ (props changed) projects/graid/8/usr.sbin/bluetooth/ (props changed) projects/graid/8/usr.sbin/bluetooth/bthidcontrol/ (props changed) projects/graid/8/usr.sbin/bluetooth/bthidd/ (props changed) projects/graid/8/usr.sbin/boot0cfg/ (props changed) projects/graid/8/usr.sbin/bsnmpd/ (props changed) projects/graid/8/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_processor_tbl.c (props changed) projects/graid/8/usr.sbin/burncd/ (props changed) projects/graid/8/usr.sbin/cdcontrol/ (props changed) projects/graid/8/usr.sbin/chown/ (props changed) projects/graid/8/usr.sbin/config/ (props changed) projects/graid/8/usr.sbin/config/SMM.doc/ (props changed) projects/graid/8/usr.sbin/cpucontrol/ (props changed) projects/graid/8/usr.sbin/crashinfo/ (props changed) projects/graid/8/usr.sbin/cron/ (props changed) projects/graid/8/usr.sbin/crunch/examples/ (props changed) projects/graid/8/usr.sbin/ctm/ (props changed) projects/graid/8/usr.sbin/cxgbtool/ (props changed) projects/graid/8/usr.sbin/devinfo/ (props changed) projects/graid/8/usr.sbin/diskinfo/ (props changed) projects/graid/8/usr.sbin/dumpcis/cardinfo.h (props changed) projects/graid/8/usr.sbin/dumpcis/cis.h (props changed) projects/graid/8/usr.sbin/faithd/ (props changed) projects/graid/8/usr.sbin/fdcontrol/ (props changed) projects/graid/8/usr.sbin/fdformat/ (props changed) projects/graid/8/usr.sbin/fdread/ (props changed) projects/graid/8/usr.sbin/fdwrite/ (props changed) projects/graid/8/usr.sbin/fifolog/ (props changed) projects/graid/8/usr.sbin/flowctl/ (props changed) projects/graid/8/usr.sbin/freebsd-update/ (props changed) projects/graid/8/usr.sbin/i2c/ (props changed) projects/graid/8/usr.sbin/inetd/ (props changed) projects/graid/8/usr.sbin/iostat/ (props changed) projects/graid/8/usr.sbin/jail/ (props changed) projects/graid/8/usr.sbin/jls/ (props changed) projects/graid/8/usr.sbin/lpr/ (props changed) projects/graid/8/usr.sbin/mailwrapper/ (props changed) projects/graid/8/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/graid/8/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/graid/8/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/graid/8/usr.sbin/makefs/getid.c (props changed) projects/graid/8/usr.sbin/mergemaster/ (props changed) projects/graid/8/usr.sbin/mfiutil/ (props changed) projects/graid/8/usr.sbin/mountd/ (props changed) projects/graid/8/usr.sbin/moused/ (props changed) projects/graid/8/usr.sbin/mptutil/ (props changed) projects/graid/8/usr.sbin/mtest/ (props changed) projects/graid/8/usr.sbin/mtree/ (props changed) projects/graid/8/usr.sbin/named/ (props changed) projects/graid/8/usr.sbin/ndp/ (props changed) projects/graid/8/usr.sbin/newsyslog/ (props changed) projects/graid/8/usr.sbin/nfsdumpstate/ (props changed) projects/graid/8/usr.sbin/ntp/ (props changed) projects/graid/8/usr.sbin/pciconf/ (props changed) projects/graid/8/usr.sbin/periodic/ (props changed) projects/graid/8/usr.sbin/pkg_install/ (props changed) projects/graid/8/usr.sbin/pmcannotate/ (props changed) projects/graid/8/usr.sbin/pmccontrol/ (props changed) projects/graid/8/usr.sbin/pmcstat/ (props changed) projects/graid/8/usr.sbin/powerd/ (props changed) projects/graid/8/usr.sbin/ppp/ (props changed) projects/graid/8/usr.sbin/pppctl/ (props changed) projects/graid/8/usr.sbin/pstat/ (props changed) projects/graid/8/usr.sbin/rpc.lockd/ (props changed) projects/graid/8/usr.sbin/rpc.umntall/ (props changed) projects/graid/8/usr.sbin/rtadvd/ (props changed) projects/graid/8/usr.sbin/rtsold/ (props changed) projects/graid/8/usr.sbin/sade/ (props changed) projects/graid/8/usr.sbin/service/ (props changed) projects/graid/8/usr.sbin/services_mkdb/ (props changed) projects/graid/8/usr.sbin/setfmac/ (props changed) projects/graid/8/usr.sbin/setpmac/ (props changed) projects/graid/8/usr.sbin/smbmsg/ (props changed) projects/graid/8/usr.sbin/sysinstall/ (props changed) projects/graid/8/usr.sbin/syslogd/ (props changed) projects/graid/8/usr.sbin/traceroute/ (props changed) projects/graid/8/usr.sbin/traceroute6/ (props changed) projects/graid/8/usr.sbin/uathload/ (props changed) projects/graid/8/usr.sbin/ugidfw/ (props changed) projects/graid/8/usr.sbin/uhsoctl/ (props changed) projects/graid/8/usr.sbin/usbconfig/ (props changed) projects/graid/8/usr.sbin/vidcontrol/ (props changed) projects/graid/8/usr.sbin/watchdogd/ (props changed) projects/graid/8/usr.sbin/wpa/ (props changed) projects/graid/8/usr.sbin/ypserv/ (props changed) projects/graid/8/usr.sbin/zic/ (props changed) Modified: projects/graid/8/sbin/geom/class/raid/geom_raid.c ============================================================================== --- projects/graid/8/sbin/geom/class/raid/geom_raid.c Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sbin/geom/class/raid/geom_raid.c Fri Feb 4 23:57:50 2011 (r218307) @@ -51,15 +51,40 @@ uint32_t version = G_RAID_VERSION; //static void raid_main(struct gctl_req *req, unsigned flags); struct g_command class_commands[] = { - { "label", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, - "format name level prov ..." + { "label", G_FLAG_VERBOSE, NULL, + { + { 'S', "size", G_VAL_OPTIONAL, G_TYPE_NUMBER }, + { 's', "strip", G_VAL_OPTIONAL, G_TYPE_NUMBER }, + G_OPT_SENTINEL + }, + NULL, "[-S size] [-s stripsize] format label level prov ..." + }, + { "add", G_FLAG_VERBOSE, NULL, + { + { 'S', "size", G_VAL_OPTIONAL, G_TYPE_NUMBER }, + { 's', "strip", G_VAL_OPTIONAL, G_TYPE_NUMBER }, + G_OPT_SENTINEL + }, + NULL, "[-S size] [-s stripsize] name label level" + }, + { "delete", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, + "[-v] name [label|num]" + }, + { "insert", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, + "[-v] name prov ..." + }, + { "remove", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, + "[-v] name prov ..." + }, + { "fail", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, + "[-v] name prov ..." }, { "stop", G_FLAG_VERBOSE, NULL, { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] name ..." + NULL, "[-fv] name" }, G_CMD_SENTINEL }; Modified: projects/graid/8/sbin/geom/class/raid/graid.8 ============================================================================== --- projects/graid/8/sbin/geom/class/raid/graid.8 Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sbin/geom/class/raid/graid.8 Fri Feb 4 23:57:50 2011 (r218307) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 18, 2010 +.Dd February 3, 2011 .Dt GRAID 8 .Os .Sh NAME @@ -33,65 +33,40 @@ .Sh SYNOPSIS .Nm .Cm label -.Op Fl Fhnv -.Op Fl b Ar balance -.Op Fl s Ar slice -.Ar name -.Ar prov ... -.Nm -.Cm clear -.Op Fl v +.Op Fl S Ar size +.Op Fl s Ar strip +.Ar format +.Ar label +.Ar level .Ar prov ... .Nm -.Cm configure -.Op Fl adfFhnv -.Op Fl b Ar balance -.Op Fl s Ar slice -.Ar name -.Nm -.Cm configure -.Op Fl v -.Fl p Ar priority +.Cm add +.Op Fl S Ar size +.Op Fl s Ar strip .Ar name -.Ar prov +.Ar label +.Ar level .Nm -.Cm rebuild -.Op Fl v +.Cm delete .Ar name -.Ar prov ... +.Op Ar label | Ar num .Nm .Cm insert -.Op Fl hiv -.Op Fl p Ar priority .Ar name .Ar prov ... .Nm .Cm remove -.Op Fl v -.Ar name -.Ar prov ... -.Nm -.Cm activate -.Op Fl v .Ar name .Ar prov ... .Nm -.Cm deactivate -.Op Fl v +.Cm fail .Ar name .Ar prov ... .Nm -.Cm forget -.Op Fl v -.Ar name ... -.Nm .Cm stop .Op Fl fv .Ar name ... .Nm -.Cm dump -.Ar prov ... -.Nm .Cm list .Nm .Cm status @@ -102,128 +77,93 @@ .Sh DESCRIPTION The .Nm -utility is used for software RAID configurations. -After a RAID's creation, all components are detected and configured -automatically. -All operations like failure detection, stale component detection, rebuild -of stale components, etc.\& are also done automatically. -The -.Nm -utility uses on-disk metadata to store all needed information. +utility is used to manage software RAID configurations, supported by the +GEOM RAID class. +GEOM RAID class uses on-disk metadata to provide access to software-RAID +volumes defined by different RAID BIOSes. +Depending on RAID BIOS type and it's metadata format, different subsets of +configurations and features are supported. +To allow booting from RAID volume, the metadata format should match the +RAID BIOS type and its capabilities. +To guarantee that these match, it is recommended to create volumes via the +RAID BIOS interface, while experienced users are free to do it using this +utility. .Pp The first argument to .Nm indicates an action to be performed: -.Bl -tag -width ".Cm deactivate" +.Bl -tag -width ".Cm destroy" .It Cm label -Create a mirror. -The order of components is important, because a component's priority is based on its position -(starting from 0 to 255). -The component with the biggest priority is used by the -.Cm prefer -balance algorithm -and is also used as a master component when resynchronization is needed, -e.g.\& after a power failure when the device was open for writing. -.Pp -Additional options include: -.Bl -tag -width ".Fl b Ar balance" -.It Fl b Ar balance -Specifies balance algorithm to use, one of: -.Bl -tag -width ".Cm round-robin" -.It Cm load -Read from the component with the lowest load. -This is the default balance algorithm. -.It Cm prefer -Read from the component with the biggest priority. -.It Cm round-robin -Use round-robin algorithm when choosing component to read. -.It Cm split -Split read requests, which are bigger than or equal to slice size on N pieces, -where N is the number of active components. -.El -.It Fl F -Do not synchronize after a power failure or system crash. -Assumes device is in consistent state. -.It Fl h -Hardcode providers' names in metadata. -.It Fl n -Turn off autosynchronization of stale components. -.It Fl s Ar slice -When using the -.Cm split -balance algorithm and an I/O READ request is bigger than or equal to this value, -the I/O request will be split into N pieces, where N is the number of active -components. -Defaults to 4096 bytes. -.El -.It Cm clear -Clear metadata on the given providers. -.It Cm configure -Configure the given device. +Create an array with single volume. +The +.Ar format +argument specifies the on-disk metadata format to use for this array, +such as "Intel". +The +.Ar label +argument specifies teh label of the created volume. +The +.Ar level +argument specifies the RAID level of the created volume, such as: +"RAID0", "RAID1", etc. +The subsequent list enumerates providers to use as array components. +The special name "NONE" can be used to reserve space for absent disks. +The order of components can be important, depending on specific RAID level +and metadata format. .Pp Additional options include: -.Bl -tag -width ".Fl p Ar priority" -.It Fl a -Turn on autosynchronization of stale components. -.It Fl b Ar balance -Specifies balance algorithm to use. -.It Fl d -Do not hardcode providers' names in metadata. -.It Fl f -Synchronize device after a power failure or system crash. -.It Fl F -Do not synchronize after a power failure or system crash. -Assumes device is in consistent state. -.It Fl h -Hardcode providers' names in metadata. -.It Fl n -Turn off autosynchronization of stale components. -.It Fl p Ar priority -Specifies priority for the given component -.Ar prov . -.It Fl s Ar slice -Specifies slice size for -.Cm split -balance algorithm. +.Bl -tag -width ".Fl s Ar strip" +.It Fl S Ar size +Use +.Ar size +bytes on each component for this volume. +Should be used if several volumes per array are planned, or if smaller +components going to be inserted later. +Defaults to size of the smallest component. +.It Fl s Ar strip +Specifies strip size in bytes. +Defaults to 131072. .El -.It Cm rebuild -Rebuild the given mirror components forcibly. -If autosynchronization was not turned off for the given device, this command -should be unnecessary. +.It Cm add +Create another volume on the existing array. +The +.Ar name +argument is the name of the existing array, reported by label command. +The rest of arguments are the same as for the label command. +.It Cm delete +Delete volume(s) from the existing array. +When the last volume is deleted, the array is also deleted and its metadata +erased. +The +.Ar name +argument is the name of existing array. +Optional +.Ar label +or +.Ar num +arguments allow specifying volume for deletion. .It Cm insert -Add the given component(s) to the existing mirror. -.Pp -Additional options include: -.Bl -tag -width ".Fl p Ar priority" -.It Fl h -Hardcode providers' names in metadata. -.It Fl i -Mark component(s) as inactive immediately after insertion. -.It Fl p Ar priority -Specifies priority of the given component(s). -.El +Insert specified provider(s) into specified array instead of the first missing +or failed components. +If there are no such components, mark disk(s) as spare. .It Cm remove -Remove the given component(s) from the mirror and clear metadata on it. -.It Cm activate -Activate the given component(s), which were marked as inactive before. -.It Cm deactivate -Mark the given component(s) as inactive, so it will not be automatically -connected to the mirror. -.It Cm forget -Forget about components which are not connected. -This command is useful when a disk has failed and cannot be reconnected, preventing the -.Cm remove -command from being used to remove it. +Remove the specified provider(s) from the specified array and erase metadata. +If there are spare disks present, the removed disk(s) will be replaced by +spares. +.It Cm fail +Mark the given disks(s) as failed, removing from active use unless absolutely +necessary due to exhausted redundancy. +If there are spare disks present - failed disk(s) will be replaced with one +of them. .It Cm stop -Stop the given mirror. +Stop the given array. +The metadata will not be erased. .Pp Additional options include: .Bl -tag -width ".Fl f" .It Fl f -Stop the given mirror even if it is opened. +Stop the given array even if some of its volumes are opened. .El -.It Cm dump -Dump metadata stored on the given providers. .It Cm list See .Xr geom 8 . @@ -243,16 +183,26 @@ Additional options include: .It Fl v Be more verbose. .El +.Sh SUPPORTED METADATA FORMATS +The GEOM RAID class follows a modular design, allowing different metadata +formats to be used. +Support is currently implemented for the following formats: +.Bl -tag -width "Intel" +.It Intel +The format used by Intel RAID BIOS. +Supports up to two volumes per array. +Supports configurations: RAID0 (2+ disks), RAID1 (2 disks), +RAID5 (3+ disks), RAID10 (4 disks). +.El +.Sh SUPPORTED RAID LEVELS +The GEOM RAID class follows a modular design, allowing different RAID levels +to be used. +Support for the following RAID levels is currently implemented: RAID0, RAID1. .Sh EXIT STATUS -Exit status is 0 on success, and 1 if the command fails. +Exit status is 0 on success, and non-zero if the command fails. .Sh SEE ALSO .Xr geom 4 , -.Xr dumpon 8 , .Xr geom 8 , -.Xr mount 8 , -.Xr newfs 8 , -.Xr savecore 8 , -.Xr umount 8 , .Xr vinum 8 .Sh HISTORY The @@ -261,3 +211,4 @@ utility appeared in .Fx 9.0 . .Sh AUTHORS .An Alexander Motin Aq mav@FreeBSD.org +.An M. Warner Losh Aq imp@FreeBSD.org Modified: projects/graid/8/sbin/geom/core/geom.8 ============================================================================== --- projects/graid/8/sbin/geom/core/geom.8 Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sbin/geom/core/geom.8 Fri Feb 4 23:57:50 2011 (r218307) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 5, 2008 +.Dd January 5, 2011 .Dt GEOM 8 .Os .Sh NAME @@ -37,11 +37,12 @@ .Nm .Ar class .Cm list +.Op Fl a .Op Ar name ... .Nm .Ar class .Cm status -.Op Fl s +.Op Fl ags .Op Ar name ... .Nm .Ar class @@ -69,6 +70,11 @@ List all available commands for the give Print detailed information (within the given class) about all geoms (if no additional arguments were specified) or the given geoms. This command is only available if the given class exists in the kernel. +Additional options include: +.Bl -tag -width ".Fl a" +.It Fl a +Print information for geoms without providers. +.El .It Cm status Print general information (within the given class) about all geoms (if no additional arguments were specified) or the given geoms. @@ -76,6 +82,10 @@ This command is only available if the gi .Pp Additional options include: .Bl -tag -width ".Fl s" +.It Fl a +When used with -g, print status for geoms without providers. +.It Fl g +Report statuses for geoms instead of providers. .It Fl s Produce script-friendly output. .El @@ -126,6 +136,8 @@ NOP .It PART .It +RAID +.It RAID3 .It SHSEC Modified: projects/graid/8/sbin/geom/core/geom.c ============================================================================== --- projects/graid/8/sbin/geom/core/geom.c Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sbin/geom/core/geom.c Fri Feb 4 23:57:50 2011 (r218307) @@ -76,15 +76,21 @@ static void std_unload(struct gctl_req * struct g_command std_commands[] = { { "help", 0, std_help, G_NULL_OPTS, NULL, NULL }, - { "list", 0, std_list, G_NULL_OPTS, NULL, - "[name ...]" + { "list", 0, std_list, + { + { 'a', "all", NULL, G_TYPE_BOOL }, + G_OPT_SENTINEL + }, + NULL, "[-a] [name ...]" }, { "status", 0, std_status, { + { 'a', "all", NULL, G_TYPE_BOOL }, + { 'g', "geoms", NULL, G_TYPE_BOOL }, { 's', "script", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-s] [name ...]" + NULL, "[-ags] [name ...]" }, { "load", G_FLAG_VERBOSE | G_FLAG_LOADKLD, std_load, G_NULL_OPTS, NULL, NULL }, @@ -800,7 +806,7 @@ std_list(struct gctl_req *req, unsigned struct gclass *classp; struct ggeom *gp; const char *name; - int error, i, nargs; + int all, error, i, nargs; error = geom_gettree(&mesh); if (error != 0) @@ -811,18 +817,18 @@ std_list(struct gctl_req *req, unsigned errx(EXIT_FAILURE, "Class %s not found.", gclass_name); } nargs = gctl_get_int(req, "nargs"); + all = gctl_get_int(req, "all"); if (nargs > 0) { for (i = 0; i < nargs; i++) { name = gctl_get_ascii(req, "arg%d", i); gp = find_geom(classp, name); - if (gp != NULL) - list_one_geom(gp); - else + if (gp == NULL) errx(EXIT_FAILURE, "No such geom: %s.", name); + list_one_geom(gp); } } else { LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { - if (LIST_EMPTY(&gp->lg_provider)) + if (LIST_EMPTY(&gp->lg_provider) && !all) continue; list_one_geom(gp); } @@ -841,7 +847,6 @@ std_status_available(void) static void status_update_len(struct ggeom *gp, int *name_len, int *status_len) { - struct gprovider *pp; struct gconfig *conf; int len; @@ -849,11 +854,7 @@ status_update_len(struct ggeom *gp, int assert(name_len != NULL); assert(status_len != NULL); - pp = LIST_FIRST(&gp->lg_provider); - if (pp != NULL) - len = strlen(pp->lg_name); - else - len = strlen(gp->lg_name); + len = strlen(gp->lg_name); if (*name_len < len) *name_len = len; LIST_FOREACH(conf, &gp->lg_config, lg_config) { @@ -865,25 +866,67 @@ status_update_len(struct ggeom *gp, int } } +static void +status_update_len_prs(struct ggeom *gp, int *name_len, int *status_len) +{ + struct gprovider *pp; + struct gconfig *conf; + int len, glen; + + assert(gp != NULL); + assert(name_len != NULL); + assert(status_len != NULL); + + glen = 0; + LIST_FOREACH(conf, &gp->lg_config, lg_config) { + if (strcasecmp(conf->lg_name, "state") == 0) { + glen = strlen(conf->lg_val); + break; + } + } + LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { + len = strlen(pp->lg_name); + if (*name_len < len) + *name_len = len; + len = glen; + LIST_FOREACH(conf, &pp->lg_config, lg_config) { + if (strcasecmp(conf->lg_name, "state") == 0) { + len = strlen(conf->lg_val); + break; + } + } + if (*status_len < len) + *status_len = len; + } +} + static char * status_one_consumer(struct gconsumer *cp) { static char buf[256]; struct gprovider *pp; struct gconfig *conf; + const char *state, *syncr; pp = cp->lg_provider; if (pp == NULL) return (NULL); + state = NULL; + syncr = NULL; LIST_FOREACH(conf, &cp->lg_config, lg_config) { + if (strcasecmp(conf->lg_name, "state") == 0) + state = conf->lg_val; if (strcasecmp(conf->lg_name, "synchronized") == 0) - break; + syncr = conf->lg_val; } - if (conf == NULL) + if (state == NULL && syncr == NULL) snprintf(buf, sizeof(buf), "%s", pp->lg_name); - else { + else if (state != NULL && syncr != NULL) { + snprintf(buf, sizeof(buf), "%s (%s, %s)", pp->lg_name, + state, syncr); + } else { snprintf(buf, sizeof(buf), "%s (%s)", pp->lg_name, - conf->lg_val); + state ? state : syncr); } return (buf); } @@ -891,25 +934,19 @@ status_one_consumer(struct gconsumer *cp static void status_one_geom(struct ggeom *gp, int script, int name_len, int status_len) { - struct gprovider *pp; struct gconsumer *cp; struct gconfig *conf; const char *name, *status, *component; int gotone; - pp = LIST_FIRST(&gp->lg_provider); - if (pp != NULL) - name = pp->lg_name; - else - name = gp->lg_name; + name = gp->lg_name; + status = "N/A"; LIST_FOREACH(conf, &gp->lg_config, lg_config) { - if (strcasecmp(conf->lg_name, "state") == 0) + if (strcasecmp(conf->lg_name, "state") == 0) { + status = conf->lg_val; break; + } } - if (conf == NULL) - status = "N/A"; - else - status = conf->lg_val; gotone = 0; LIST_FOREACH(cp, &gp->lg_consumer, lg_consumer) { component = status_one_consumer(cp); @@ -928,6 +965,48 @@ status_one_geom(struct ggeom *gp, int sc } static void +status_one_geom_prs(struct ggeom *gp, int script, int name_len, int status_len) +{ + struct gprovider *pp; + struct gconsumer *cp; + struct gconfig *conf; + const char *name, *status, *component; + int gotone; + + LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { + name = pp->lg_name; + status = "N/A"; + LIST_FOREACH(conf, &gp->lg_config, lg_config) { + if (strcasecmp(conf->lg_name, "state") == 0) { + status = conf->lg_val; + break; + } + } + LIST_FOREACH(conf, &pp->lg_config, lg_config) { + if (strcasecmp(conf->lg_name, "state") == 0) { + status = conf->lg_val; + break; + } + } + gotone = 0; + LIST_FOREACH(cp, &gp->lg_consumer, lg_consumer) { + component = status_one_consumer(cp); + if (component == NULL) + continue; + gotone = 1; + printf("%*s %*s %s\n", name_len, name, + status_len, status, component); + if (!script) + name = status = ""; + } + if (!gotone) { + printf("%*s %*s %s\n", name_len, name, + status_len, status, "N/A"); + } + } +} + +static void std_status(struct gctl_req *req, unsigned flags __unused) { struct gmesh mesh; @@ -935,7 +1014,7 @@ std_status(struct gctl_req *req, unsigne struct ggeom *gp; const char *name; int name_len, status_len; - int error, i, n, nargs, script; + int all, error, geoms, i, n, nargs, script; error = geom_gettree(&mesh); if (error != 0) @@ -944,28 +1023,45 @@ std_status(struct gctl_req *req, unsigne if (classp == NULL) errx(EXIT_FAILURE, "Class %s not found.", gclass_name); nargs = gctl_get_int(req, "nargs"); + all = gctl_get_int(req, "all"); + geoms = gctl_get_int(req, "geoms"); script = gctl_get_int(req, "script"); - name_len = strlen("Name"); - status_len = strlen("Status"); + if (script) { + name_len = 0; + status_len = 0; + } else { + name_len = strlen("Name"); + status_len = strlen("Status"); + } if (nargs > 0) { for (i = 0, n = 0; i < nargs; i++) { name = gctl_get_ascii(req, "arg%d", i); gp = find_geom(classp, name); if (gp == NULL) errx(EXIT_FAILURE, "No such geom: %s.", name); - else { - status_update_len(gp, &name_len, &status_len); - n++; + if (geoms) { + status_update_len(gp, + &name_len, &status_len); + } else { + status_update_len_prs(gp, + &name_len, &status_len); } + n++; } if (n == 0) goto end; } else { n = 0; LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { - if (LIST_EMPTY(&gp->lg_provider)) + if (LIST_EMPTY(&gp->lg_provider) && !all) continue; - status_update_len(gp, &name_len, &status_len); + if (geoms) { + status_update_len(gp, + &name_len, &status_len); + } else { + status_update_len_prs(gp, + &name_len, &status_len); + } n++; } if (n == 0) @@ -979,16 +1075,27 @@ std_status(struct gctl_req *req, unsigne for (i = 0; i < nargs; i++) { name = gctl_get_ascii(req, "arg%d", i); gp = find_geom(classp, name); - if (gp != NULL) { + if (gp == NULL) + continue; + if (geoms) { status_one_geom(gp, script, name_len, status_len); + } else { + status_one_geom_prs(gp, script, name_len, + status_len); } } } else { LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { - if (LIST_EMPTY(&gp->lg_provider)) + if (LIST_EMPTY(&gp->lg_provider) && !all) continue; - status_one_geom(gp, script, name_len, status_len); + if (geoms) { + status_one_geom(gp, script, name_len, + status_len); + } else { + status_one_geom_prs(gp, script, name_len, + status_len); + } } } end: Copied: projects/graid/8/sys/amd64/conf/CISCO (from r216979, projects/graid/head/sys/amd64/conf/CISCO) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/graid/8/sys/amd64/conf/CISCO Fri Feb 4 23:57:50 2011 (r218307, copy of r216979, projects/graid/head/sys/amd64/conf/CISCO) @@ -0,0 +1,7 @@ +# Generic, tweaked for Cisco. +include "GENERIC" +ident CISCO_CAM +options ATA_CAM +options ADA_TEST_FAILURE +makeoptions MODULES_OVERRIDE="geom" + Modified: projects/graid/8/sys/cam/ata/ata_da.c ============================================================================== --- projects/graid/8/sys/cam/ata/ata_da.c Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sys/cam/ata/ata_da.c Fri Feb 4 23:57:50 2011 (r218307) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_ada.h" + #include #ifdef _KERNEL @@ -125,11 +127,19 @@ struct ada_softc { int outstanding_cmds; int trim_max_ranges; int trim_running; +#ifdef ADA_TEST_FAILURE + int force_read_error; + int force_write_error; + int periodic_read_error; + int periodic_read_count; +#endif struct disk_params params; struct disk *disk; struct task sysctl_task; +#ifdef ADA_TEST_FAILURE struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; +#endif struct callout sendordered_c; struct trim_request trim_req; }; @@ -156,7 +166,12 @@ static dumper_t adadump; static periph_init_t adainit; static void adaasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg); +#ifdef ADA_TEST_FAILURE static void adasysctlinit(void *context, int pending); +static int adaforcereaderrsysctl(SYSCTL_HANDLER_ARGS); +static int adaforcewriteerrsysctl(SYSCTL_HANDLER_ARGS); +static int adaperiodicreaderrsysctl(SYSCTL_HANDLER_ARGS); +#endif static periph_ctor_t adaregister; static periph_dtor_t adacleanup; static periph_start_t adastart; @@ -549,6 +564,7 @@ adacleanup(struct cam_periph *periph) xpt_print(periph->path, "removing device entry\n"); cam_periph_unlock(periph); +#ifdef ADA_TEST_FAILURE /* * If we can't free the sysctl tree, oh well... */ @@ -556,6 +572,7 @@ adacleanup(struct cam_periph *periph) && sysctl_ctx_free(&softc->sysctl_ctx) != 0) { xpt_print(periph->path, "can't remove sysctl context\n"); } +#endif disk_destroy(softc->disk); callout_drain(&softc->sendordered_c); @@ -606,6 +623,7 @@ adaasync(void *callback_arg, u_int32_t c } } +#ifdef ADA_TEST_FAILURE static void adasysctlinit(void *context, int pending) { @@ -632,9 +650,66 @@ adasysctlinit(void *context, int pending return; } + /* + * Add a 'door bell' sysctl which allows one to set it from userland + * and cause something bad to happen. For the moment, we only allow + * whacking the next read or write. + */ + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "force_read_error", CTLTYPE_INT | CTLFLAG_RW, + &softc->force_read_error, 0, adaforcereaderrsysctl, "I", + "Force a read error for the next N reads."); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "force_write_error", CTLTYPE_INT | CTLFLAG_RW, + &softc->force_write_error, 0, adaforcewriteerrsysctl, "I", + "Force a write error for the next N writes."); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "periodic_read_error", CTLTYPE_INT | CTLFLAG_RW, + &softc->periodic_read_error, 0, adaperiodicreaderrsysctl, "I", + "Force a read error every N reads (don't set too low)."); cam_periph_release(periph); } +static int +adaforcereaderrsysctl(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = *(int *)arg1; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + *(int *)arg1 = value; + return (0); +} + +static int +adaforcewriteerrsysctl(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = *(int *)arg1; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + *(int *)arg1 = value; + return (0); +} + +static int +adaperiodicreaderrsysctl(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = *(int *)arg1; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + *(int *)arg1 = value; + return (0); +} +#endif + static cam_status adaregister(struct cam_periph *periph, void *arg) { @@ -712,7 +787,9 @@ adaregister(struct cam_periph *periph, v cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); +#ifdef ADA_TEST_FAILURE TASK_INIT(&softc->sysctl_task, 0, adasysctlinit, periph); +#endif /* * Register this media as a disk @@ -774,6 +851,14 @@ adaregister(struct cam_periph *periph, v dp->secsize, dp->heads, dp->secs_per_track, dp->cylinders); xpt_announce_periph(periph, announce_buf); +#ifdef ADA_TEST_FAILURE + /* + * Create our sysctl variables, now that we know + * we have successfully attached. + * XXX: da code does a cam_periph_acquire(periph) here -- why?. + */ + taskqueue_enqueue(taskqueue_thread, &softc->sysctl_task); +#endif /* * Add async callbacks for bus reset and * bus device reset calls. I don't bother @@ -896,7 +981,45 @@ adastart(struct cam_periph *periph, unio { uint64_t lba = bp->bio_pblkno; uint16_t count = bp->bio_bcount / softc->params.secsize; +#ifdef ADA_TEST_FAILURE + int fail = 0; + /* + * Support the failure ioctls. If the command is a + * read, and there are pending forced read errors, or + * if a write and pending write errors, then fail this + * operation with EIO. This is useful for testing + * purposes. Also, support having every Nth read fail. + * + * This is a rather blunt tool. + */ + if (bp->bio_cmd == BIO_READ) { + if (softc->force_read_error) { + softc->force_read_error--; + fail = 1; + } + if (softc->periodic_read_error > 0) { + if (++softc->periodic_read_count >= + softc->periodic_read_error) { + softc->periodic_read_count = 0; + fail = 1; + } + } + } else { + if (softc->force_write_error) { + softc->force_write_error--; + fail = 1; + } + } + if (fail) { + bp->bio_error = EIO; + bp->bio_flags |= BIO_ERROR; + biodone(bp); + xpt_release_ccb(start_ccb); + adaschedule(periph); + return; + } +#endif cam_fill_ataio(ataio, ada_retry_count, adadone, Modified: projects/graid/8/sys/conf/options ============================================================================== --- projects/graid/8/sys/conf/options Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sys/conf/options Fri Feb 4 23:57:50 2011 (r218307) @@ -305,6 +305,9 @@ SCSI_DELAY opt_scsi.h SCSI_NO_SENSE_STRINGS opt_scsi.h SCSI_NO_OP_STRINGS opt_scsi.h +# Options used only in cam/ata/ata_da.c +ADA_TEST_FAILURE opt_ada.h + # Options used only in cam/scsi/scsi_cd.c CHANGER_MIN_BUSY_SECONDS opt_cd.h CHANGER_MAX_BUSY_SECONDS opt_cd.h Modified: projects/graid/8/sys/dev/led/led.c ============================================================================== --- projects/graid/8/sys/dev/led/led.c Fri Feb 4 22:47:55 2011 (r218306) +++ projects/graid/8/sys/dev/led/led.c Fri Feb 4 23:57:50 2011 (r218307) @@ -26,6 +26,7 @@ __FBSDID("$FreeBSD$"); struct ledsc { LIST_ENTRY(ledsc) list; + char *name; void *private; int unit; led_t *func; @@ -83,71 +84,43 @@ led_timeout(void *p) } static int -led_state(struct cdev *dev, struct sbuf *sb, int state) +led_state(struct ledsc *sc, struct sbuf **sb, int state) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***