From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 08:02:38 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E8B0106566B for ; Sun, 31 May 2009 08:02:38 +0000 (UTC) (envelope-from mike@reifenberger.com) Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9]) by mx1.freebsd.org (Postfix) with ESMTP id D4EEB8FC17 for ; Sun, 31 May 2009 08:02:37 +0000 (UTC) (envelope-from mike@reifenberger.com) Received: from mail01.m-online.net (mail.m-online.net [192.168.3.149]) by mail-out.m-online.net (Postfix) with ESMTP id F2A3A1C15399; Sun, 31 May 2009 09:45:31 +0200 (CEST) Received: from localhost (dynscan2.mnet-online.de [192.168.1.215]) by mail.m-online.net (Postfix) with ESMTP id DC838907F8; Sun, 31 May 2009 09:45:31 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.3.149]) by localhost (dynscan2.mnet-online.de [192.168.1.215]) (amavisd-new, port 10024) with ESMTP id znLbGQFxtH+c; Sun, 31 May 2009 09:45:30 +0200 (CEST) Received: from mail.reifenberger.com (ppp-93-104-105-97.dynamic.mnet-online.de [93.104.105.97]) by mail.mnet-online.de (Postfix) with ESMTP; Sun, 31 May 2009 09:45:30 +0200 (CEST) Received: by mail.reifenberger.com (Postfix, from userid 1001) id 66FE740119; Sun, 31 May 2009 09:45:30 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.reifenberger.com (Postfix) with ESMTP id 5F24E40116; Sun, 31 May 2009 09:45:30 +0200 (CEST) Date: Sun, 31 May 2009 09:45:30 +0200 (CEST) From: Michael Reifenberger To: xorquewasp@googlemail.com In-Reply-To: <20090530213643.GA1478@logik.internal.network> Message-ID: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090530213643.GA1478@logik.internal.network> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, Mike Meyer Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 08:02:38 -0000 On Sat, 30 May 2009, xorquewasp@googlemail.com wrote: ... > I'll definitely be looking at ZFS. Thanks for the info. > > I've never been dead set on any option in particular, it's just that I > wasn't aware of anything that would do what I wanted that wasn't just > simple RAID0 and manual backups. > Just for the record: ZFS is the only FreeBSD filesystem which ensures your data integrity. I've had dozends of silent block corruptions on SAMSUNG HD103UJ drives. Thanks to 'zfs scrub' I was able to recognize and repair the corruptions. Traditional RAID's only work if the whole drive fails. Bye/2 --- Michael Reifenberger Michael@Reifenberger.com http://www.Reifenberger.com From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 12:34:31 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66D60106566C for ; Sun, 31 May 2009 12:34:31 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id CC3858FC15 for ; Sun, 31 May 2009 12:34:30 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so3783584ewy.43 for ; Sun, 31 May 2009 05:34:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=GY/q0CXKC47ReG4WnFDg5wtsJ6xXxjY23tChBXuBkcw=; b=F7kHn6zXYmLCM0s3nryvF/nzqcE5l38xwrz3oH1IU5bJrzygy/RiAfX8EFbtaPP5jG bphB5cA1AnXFhWPHYVUY3JlfuH+Puvdh0nLRc4C0QuA2ehpq02gE3VLt5iXWRJ4WxNar tB2jBkGE1t8ULYIkXu9u/K3b8rkT2oQrpIe+k= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=UL68GGXgFVbx8qJJoT3nmXYLRf+c2cSDr5OB3SjBXXrhAhBD5GSyiZEIzlW+cjzN23 aNR2XRHgPRSz4kXO1IWYpdmcMUaWYhIgeGdqONX8PQHzhNFYKVFspx9E5IGBsYuzeQwG 0oYjnko+bQvpST82wrDWridtra5RUiHENXCZ8= Received: by 10.210.62.3 with SMTP id k3mr1653241eba.38.1243772007393; Sun, 31 May 2009 05:13:27 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm5176133ewy.8.2009.05.31.05.13.25 (version=SSLv3 cipher=RC4-MD5); Sun, 31 May 2009 05:13:26 -0700 (PDT) From: krad To: "'Mike Meyer'" , References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> Date: Sun, 31 May 2009 13:13:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <20090530162744.5d77e9d1@bhuda.mired.org> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcnhZXuyzxjaQcFyTa+/ZQw20y06LwAf36Ag X-Mailman-Approved-At: Sun, 31 May 2009 14:55:50 +0000 Cc: freebsd-hackers@freebsd.org Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 12:34:31 -0000 Please don't whack gstripe and zfs together. It should work but is ugly and you might run into issues. Getting out of them will be harder than a pure zfs solution ZFS does support striping by default across vdevs Eg Zpool create data da1 Zpool add data da2 Would create a striped data set across da1 and da2 Zpool create data mirror da1 da2 Zpool add data mirror da3 da4 This would create a raid 10 across all drives Zpool create data raidz2 da1 da2 da3 da5 Zpool add data raidz2 da6 da7 da8 da9 Would create a raid 60 If you replace the add keyword with attach, mirroring is performed rather than striping Just for fun here is one of the configs off one of our sun x4500 at work, its opensolaris not freebsd, but it is zfs. One whoping big array of ~ 28 TB zpool create -O compression=lzjb -O atime=off data raidz2 c3t0d0 c4t0d0 c8t0d0 c10t0d0 c11t0d0 c3t1d0 c4t1d0 c8t1d0 c9t1d0 c10t1d0 c11t1d0 raidz2 c3t2d0 c4t2d0 c8t2d0 c9t2d0 c11t2d0 c3t3d0 c4t3d0 c8t3d0 c9t3d0 c10t3d0 c11t3d0 raidz2 c3t4d0 c4t4d0 c8t4d0 c10t4d0 c11t4d0 c3t5d0 c4t5d0 c8t5d0 c9t5d0 c10t5d0 c11t5d0 raidz2 c3t6d0 c4t6d0 c8t6d0 c9t6d0 c10t6d0 c11t6d0 c3t7d0 c4t7d0 c9t7d0 c10t7d0 c11t7d0 spare c10t2d0 c8t7d0 $ zpool status pool: archive-2 state: ONLINE status: The pool is formatted using an older on-disk format. The pool can still be used, but some features are unavailable. action: Upgrade the pool using 'zpool upgrade'. Once this is done, the pool will no longer be accessible on older software versions. scrub: scrub completed after 11h9m with 0 errors on Sun May 31 01:09:22 2009 config: NAME STATE READ WRITE CKSUM archive-2 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 c8t0d0 ONLINE 0 0 0 c10t0d0 ONLINE 0 0 0 c11t0d0 ONLINE 0 0 0 c3t1d0 ONLINE 0 0 0 c4t1d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 c9t1d0 ONLINE 0 0 0 c10t1d0 ONLINE 0 0 0 c11t1d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c3t2d0 ONLINE 0 0 0 c4t2d0 ONLINE 0 0 0 c8t2d0 ONLINE 0 0 0 c9t2d0 ONLINE 0 0 0 c11t2d0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0 c8t3d0 ONLINE 0 0 0 c9t3d0 ONLINE 0 0 0 c10t3d0 ONLINE 0 0 0 c11t3d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c3t4d0 ONLINE 0 0 0 c4t4d0 ONLINE 0 0 0 c8t4d0 ONLINE 0 0 0 c10t4d0 ONLINE 0 0 0 c11t4d0 ONLINE 0 0 0 c3t5d0 ONLINE 0 0 0 c4t5d0 ONLINE 0 0 0 c8t5d0 ONLINE 0 0 0 c9t5d0 ONLINE 0 0 0 c10t5d0 ONLINE 0 0 0 c11t5d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c3t6d0 ONLINE 0 0 0 c4t6d0 ONLINE 0 0 0 c8t6d0 ONLINE 0 0 0 c9t6d0 ONLINE 0 0 0 c10t6d0 ONLINE 0 0 0 c11t6d0 ONLINE 0 0 0 c3t7d0 ONLINE 0 0 0 c4t7d0 ONLINE 0 0 0 c9t7d0 ONLINE 0 0 0 c10t7d0 ONLINE 0 0 0 c11t7d0 ONLINE 0 0 0 spares c10t2d0 AVAIL c8t7d0 AVAIL errors: No known data errors ZFS also check sums all data blocks written to the drive so data integrity is guaranteed. If you are paranoid you can also set it to keep multiple copies of each file. This will eat up loads of disk space so its best to use it sparingly one the most important stuff. You can only do it on a fs basis but this inst a big deal with zfs Zfs create data/important_stuff Zfs set copies=3 data/important_stuff You can also do compression as well, the big example above has this. In the near future encryption and deduping are also getting integrated into zfs. This is probably happening in the next few months on opensolaris, but if you want those features in freebsd I guess it will take at least 6 months after that. With regards to your backup I suggest you definitely look at doing regular fs snapshots. To be real safe, id install the tb drive (probably worth getting another as well as they are cheap) into another machine, and have it in another room, or building if possible. Replicate you data using incremental zfs sends, as this is the most efficient way. You can easily push it through ssh for security as well. Rsync will work fine but you will loose all you zfs fs settings with it as it works at the user level not the fs level. Hope this helps, im really looking forward to zfs maturing on bsd and having pure zfs systems 8) -----Original Message----- From: owner-freebsd-hackers@freebsd.org [mailto:owner-freebsd-hackers@freebsd.org] On Behalf Of Mike Meyer Sent: 30 May 2009 21:28 To: xorquewasp@googlemail.com Cc: freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? On Sat, 30 May 2009 20:18:40 +0100 xorquewasp@googlemail.com wrote: > > If you're running a 7.X 64-bit system with a couple of GIG of ram, > > expect it to be in service for years without having to reformat the > > disks, and can afford another drive, I'd recommend going to raidz on a > > three-drive system. That will give you close to the size/performance > > of your RAID0 system, but let you lose a disk without losing data. The > > best you can do with zfs on two disks is a mirror, which means write > > throughput will suffer. > > Certainly a lot to think about. > > The system has 12gb currently, with room to upgrade. I currently have > two 500gb drives and one 1tb drive. I wanted the setup to be essentially > two drives striped, backed up onto one larger one nightly. I wanted the > large backup drive to be as "isolated" as possible, eg, in the event of > some catastrophic hardware failure, I can remove it and place it in > another machine without a lot of stressful configuration to recover the > data (not possible with a RAID configuration involving all three drives, > as far as I'm aware). The last bit is wrong. Moving a zfs pool between two systems is pretty straightforward. The configuration information is on the drives; you just do "zpool import " after plugging them in, and if the mount point exists, it'll mount it. If the system crashed with the zfs pool active, you might have to do -f to force an import. Geom is pretty much the same way, except you can configure it to not write the config data to disk, thus forcing you to do it manually (what you expect). I'm not sure geom is as smart if the drives change names, though. RAID support and volume management has come a long way from the days of ccd and vinum. zfs in particular is a major advance. If you aren't aware of it's advantages, take the time to read the zfs & zpool man pages, at the very least, before committing to geom (not that geom isn't pretty slick in and of itself, but zfs solves a more pressing problem). Hmm. Come to think of it, you ought to be able to use gstrip to stripe your disks, then put a zpool on that, which should get you the advantages of zfs with a striped disk. But that does seem odd to me. http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 20:14:52 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33C4F106564A for ; Sun, 31 May 2009 20:14:52 +0000 (UTC) (envelope-from xorquewasp@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id AE9428FC0A for ; Sun, 31 May 2009 20:14:51 +0000 (UTC) (envelope-from xorquewasp@googlemail.com) Received: by ewy8 with SMTP id 8so3946102ewy.43 for ; Sun, 31 May 2009 13:14:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:cc :subject:message-id:references:mime-version:content-type :content-disposition:in-reply-to; bh=NBkXWJ4kjrCkT4oMMWAwm+vtGOoEHvVMpI9YrdRO8Pc=; b=YJSuXMuyQy2lf4mBBJClzt0OHmUI7gmUaoCBEibq8EWIVJf4V0nvgen8FAvkIsAKk1 L3iJiwFFjc0WCHkfpa//tuTYt14yryBMPZojQIJV7CCHkzRb9egggE/fwpc3O9l/NW2z jEELWPhCqS0yWV53V56mmeAMX5DRIvSEIQ1K4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to; b=kEYysBy59qlUL8lmuuLyVcA75kmSV4flGFNlHRC5BCK0HCOochyR/DZEHkjy3uVwC5 1naZnAhLHX05snwMnpuvLVa+oU0jr1CeYqPE7C1X1Gcqo9X3cddsLyNZ6gRTaMl8qf7U 63szUiPpdB2t3nfaLSkwsMQzA3xayWhoCvqBM= Received: by 10.210.143.9 with SMTP id q9mr213149ebd.33.1243800890716; Sun, 31 May 2009 13:14:50 -0700 (PDT) Received: from logik.internal.network (81-86-41-187.dsl.pipex.com [81.86.41.187]) by mx.google.com with ESMTPS id 26sm6117221ewy.83.2009.05.31.13.14.49 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 May 2009 13:14:50 -0700 (PDT) Received: by logik.internal.network (Postfix, from userid 11001) id EABE85D59; Sun, 31 May 2009 20:14:45 +0000 (UTC) Date: Sun, 31 May 2009 21:14:45 +0100 From: xorquewasp@googlemail.com To: krad Message-ID: <20090531201445.GA82420@logik.internal.network> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Cc: freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 20:14:52 -0000 On 2009-05-31 13:13:24, krad wrote: > Please don't whack gstripe and zfs together. It should work but is ugly and > you might run into issues. Getting out of them will be harder than a pure > zfs solution Yeah, will be using pure ZFS having read everything I can find on it so far. I was skeptical of ZFS at first as it appeared to have come out of nowhere but it seems it's older (and more mature) than I thought. > ZFS does support striping by default across vdevs > > Eg > > Zpool create data da1 > Zpool add data da2 > > Would create a striped data set across da1 and da2 What kind of performance gain can I expect from this? I'm purely thinking about performance now - the integrity checking stuff of ZFS is a pleasant extra. > Just for fun here is one of the configs off one of our sun x4500 at work, > its opensolaris not freebsd, but it is zfs. One whoping big array of ~ 28 TB Impressive! > Hope this helps, im really looking forward to zfs maturing on bsd and having > pure zfs systems 8) Absolutely. xw From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 20:34:40 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 805A51065670 for ; Sun, 31 May 2009 20:34:40 +0000 (UTC) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: from mired.org (two.mired.org [74.143.213.43]) by mx1.freebsd.org (Postfix) with ESMTP id 2994B8FC18 for ; Sun, 31 May 2009 20:34:39 +0000 (UTC) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: (qmail 10545 invoked by uid 1001); 31 May 2009 16:33:06 -0400 Received: from bhuda.mired.org (localhost.localdomain [127.0.0.1]) by bhuda (tmda-ofmipd) with ESMTP; Sun, 31 May 2009 16:33:05 -0400 Date: Sun, 31 May 2009 16:33:05 -0400 To: krad Message-ID: <20090531163305.6c7d0cd5@bhuda.mired.org> In-Reply-To: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> Organization: Meyer Consulting X-Mailer: Claws Mail 3.7.1 (GTK+ 2.14.7; amd64-portbld-freebsd7.1) Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAG1BMVEXguIzRkGnhyaz069mXhW0WHRnbrnR9WCQ6LB0CchNMAAACSUlEQVQ4jV2TQW7jMAxFGaPQOgQEdZaGMsgBrAvUA03dCxj1Uu4U2gfwQD7AGNax51NK07RcxXz6/CSl0Ij450vkPG1jzpIZM1UwDCl/xB14TWnNX8A00Qj5a0mnVFVbVUz4MeErea2HikSRqZzY894zwg9p2+/AtO8LzxFED+tNAUFeU29iFOLRxlZAcdo9A8wi8ZBMV4BKPde82Oxrvs6BTkulQIClte0DLFzzsKk9j1MBex8iUaP00Bd78S/muyFScrTXz6zLkEUxJp+SabQfNOs4f4Jpx5qSZ/304PWwlEWP1cOn/mJQR7EOD+uKhjcBLziuL7xoY5Xm+VFAUSw/LwwwsHEHxihpwV4EJH0xXRkbw1PkRw+X4pEuSJwBggqk+HEYKkiL5/74/nQkogigzQsAFrakxZyfw3wMIEEZPv4AWMfxwqE5GNxGaERjmH+PG8AE0L4/w9g0lsp1raLYAN5azQa+AOoO9NwcpFkTrG2VKNMNEL5UKUUAw34tha0z7onUG0oBoNtczE04GwFE3wCHc0ChezAJ6A1WMV81AtY7wDAJSlXwV+4cwBvsOsrQMRawfQEBz0deEZ7WNpV2szckIKo5VpDHDSDvF1GItwqqAlG01Hh50BGtVhuUkjkasg/14bYFGCgWg1fSWHvmOoJck2xdp9ZvZBHzDVTzX23TkrOn7qe5U2COEw5D4Vx3qEQpFY2Z/3QFnJxzp7YCmSMG19nOUoe869zZfOQb5ywQuWu0yCn5+8gxZz+BE7vG3j4/wbf4D/sXN9Wug1s7AAAAAElFTkSuQmCC Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Mike Meyer Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 20:34:40 -0000 On Sun, 31 May 2009 13:13:24 +0100 krad wrote: > Please don't whack gstripe and zfs together. It should work but is ugly and > you might run into issues. Getting out of them will be harder than a pure > zfs solution Yeah, I sorta suspected that might be the case. > ZFS does support striping by default across vdevs This isn't documented - at least not in my copies of the manual page. Not being able to find that was the only reason to even consider mixing technologies like that. Thanks, http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 21:57:37 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8656D106564A for ; Sun, 31 May 2009 21:57:37 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 93BCC8FC14 for ; Sun, 31 May 2009 21:57:36 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n4VLvRRg026599; Sun, 31 May 2009 23:57:27 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n4VLvR6D026596; Sun, 31 May 2009 23:57:27 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Sun, 31 May 2009 23:57:27 +0200 (CEST) From: Wojciech Puchar To: xorquewasp@googlemail.com In-Reply-To: <20090531201445.GA82420@logik.internal.network> Message-ID: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, krad Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 21:57:37 -0000 >> Would create a striped data set across da1 and da2 > > What kind of performance gain can I expect from this? I'm purely thinking > about performance now - the integrity checking stuff of ZFS is a pleasant > extra. with stripping - as much as with gstripe, ZFS do roughly the same. with RAID-z - faster transfer, rougly same IOps as single disk. After i read ZFS papers i know that RAID-z is actually more like RAID-3 not RAID-5. From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 22:04:26 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF897106564A for ; Sun, 31 May 2009 22:04:26 +0000 (UTC) (envelope-from eitanadlerlist@gmail.com) Received: from mail-qy0-f173.google.com (mail-qy0-f173.google.com [209.85.221.173]) by mx1.freebsd.org (Postfix) with ESMTP id 82B668FC08 for ; Sun, 31 May 2009 22:04:26 +0000 (UTC) (envelope-from eitanadlerlist@gmail.com) Received: by qyk3 with SMTP id 3so10450133qyk.3 for ; Sun, 31 May 2009 15:04:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:x-enigmail-version:openpgp :content-type:content-transfer-encoding; bh=vKz32dfGpBPVPYNp9FSuPxoc1haHSuWFpGnYHq+zAVU=; b=nv4x2vWBtRvUyVc6pZBkHYm1z9AZHHxt6QQvKZtQQjy6nZTpgnEkPA/3gBA59fb4f7 /3kEFXScYfOa4mm4ts0EXxKhzRz+o/7du1hEu081d8ibD7Gv2Cu79ndqS+klrCd6xKjB rVZBtQ1/tPmUZh8A++8sFRcjX8JEEufRFCxW8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :x-enigmail-version:openpgp:content-type:content-transfer-encoding; b=OcYrXLSqeC0TdvEUuHGIsjBQHtvDb8bxOGA6gqAs1nLloZwXW6W0l/d02qVq62OCPO P+MxG9p8C6JjZncdfpCCsYCAcHKCi8yWlrC8t992I6ZSJjLxPGC9NgfHA1R/ldPMLiWI 4tujvX9nHfDB2Z7Tc/v/fYAGsTww4WmIw4hiU= Received: by 10.224.89.76 with SMTP id d12mr4861412qam.382.1243805597153; Sun, 31 May 2009 14:33:17 -0700 (PDT) Received: from aargh.lan (ool-182fcc8b.dyn.optonline.net [24.47.204.139]) by mx.google.com with ESMTPS id 8sm2358743qwj.11.2009.05.31.14.33.16 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 31 May 2009 14:33:16 -0700 (PDT) Message-ID: <4A22F7CD.2070500@gmail.com> Date: Sun, 31 May 2009 17:34:05 -0400 From: Eitan Adler User-Agent: Mozilla (X11; U; FreeBSD i386; en-US; ) Gecko Thunderbird Mnenhy/0.7.6.666 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org X-Enigmail-Version: 0.95.7 OpenPGP: id=E9C2CCD1; url=pgp.mit.edu Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: pkg_info segfault Revision: 193189 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 22:04:27 -0000 pkg_info --IwantAcookie Segmentation fault: 11 (core dumped) on FreeBSD 7.2-STABLE i386 From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 22:32:52 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 375951065673 for ; Sun, 31 May 2009 22:32:52 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id E50918FC16 for ; Sun, 31 May 2009 22:32:51 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1MAtaC-0003Xq-DY for freebsd-hackers@freebsd.org; Sun, 31 May 2009 22:32:48 +0000 Received: from 200.41.broadband11.iol.cz ([90.178.41.200]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 May 2009 22:32:48 +0000 Received: from gamato by 200.41.broadband11.iol.cz with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 May 2009 22:32:48 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-hackers@freebsd.org From: martinko Date: Mon, 01 Jun 2009 00:32:37 +0200 Lines: 19 Message-ID: References: <20090208073927.77e2c829@bhuda.mired.org> <200902081252.n18CqhZf016155@lurza.secnetix.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 200.41.broadband11.iol.cz User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.18) Gecko/20081125 SeaMonkey/1.1.13 In-Reply-To: <200902081252.n18CqhZf016155@lurza.secnetix.de> Sender: news Cc: freebsd-current@freebsd.org Subject: Re: CFT: Graphics support for /boot/loader X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 22:32:52 -0000 Oliver Fromme wrote: > Mike Meyer wrote: > > I'm curious - is there a reason that the numbers from the old screen > > have turned into function keys on this one? > > No. That screen shot is an old one. In the current code, > the number keys are used as usual, no function keys. > > In fact, it is not possible to use function keys from the > FORTH code without resorting to dirty hacks. That's what I was thinking about -- whether one could use plain number keys along with function keys and also wanted to ask you to align them with the original text boot menu -- I'm too used to #4 being single user mode. ;-) Cheers and thanks for great work! Martin From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 22:00:39 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 860461065674 for ; Sun, 31 May 2009 22:00:39 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.24]) by mx1.freebsd.org (Postfix) with ESMTP id F2CC18FC17 for ; Sun, 31 May 2009 22:00:38 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ey-out-2122.google.com with SMTP id 22so298591eye.7 for ; Sun, 31 May 2009 15:00:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=g6l+EMQod5Psj0rQq5vTNxNAu8PgWMM6W1BRqT54N80=; b=ht+GuHCD66qvoNYqQ8NByshBTNQL8LvXayCrX6Utx0hZsjgPy1fuMoCsCttmAsEDFZ Xk7Zt7/6he3thGpTbZH5qxsZgTMN8EfihTgqoZ1lWTWSR7XqcE3zVWwRPShfcZOyEdDj 1CUrJtlYG5/ONZaCCC7bBgtJ0qHfLp+VKJOf4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=T8RXtQM8rVhw24D3ON9KHUWSw5iPFlpn+ldHIGfc6c8CGJ6Dp/JhF32P2/hYxUvmk5 oNA/xyBXu5CDqA8mUWjjtokHtqq/ebTszD8v2WXtzUYid87Uf68+K3QHrNIAqv5wYaOo pKCBb5fLR5nAFc/+KUqaL1x5W1lpeZFxGi4cE= Received: by 10.210.37.16 with SMTP id k16mr3197309ebk.34.1243807237763; Sun, 31 May 2009 15:00:37 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6047473ewy.8.2009.05.31.15.00.36 (version=SSLv3 cipher=RC4-MD5); Sun, 31 May 2009 15:00:37 -0700 (PDT) From: krad To: "'Mike Meyer'" , "'krad'" References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org> <20090531163305.6c7d0cd5@bhuda.mired.org> Date: Sun, 31 May 2009 23:00:35 +0100 Message-ID: <8FFF597348E24C8085BEDE423DC4A6A3@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <20090531163305.6c7d0cd5@bhuda.mired.org> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcniLzlVOqhVVIEzR9qfA1jI7uVXPgACvXSA X-Mailman-Approved-At: Sun, 31 May 2009 23:23:41 +0000 Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 22:00:40 -0000 Yep it probably isn't clear enough, it does mention stuff about spreading it across vdevs, but doesn't say striped. But that's sun for you. The man page should probably be bsdified more as its more or less pulled from solaris. Note the devices don't look anything like bsd ones (c0t0d0) -----Original Message----- From: Mike Meyer [mailto:mwm@mired.org] Sent: 31 May 2009 21:33 To: krad Cc: 'Mike Meyer'; xorquewasp@googlemail.com; freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? On Sun, 31 May 2009 13:13:24 +0100 krad wrote: > Please don't whack gstripe and zfs together. It should work but is ugly and > you might run into issues. Getting out of them will be harder than a pure > zfs solution Yeah, I sorta suspected that might be the case. > ZFS does support striping by default across vdevs This isn't documented - at least not in my copies of the manual page. Not being able to find that was the only reason to even consider mixing technologies like that. Thanks, http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 23:55:59 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E749106566B for ; Sun, 31 May 2009 23:55:59 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 6E2FE8FC2D for ; Sun, 31 May 2009 23:55:58 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n4VNtrf3027124; Mon, 1 Jun 2009 01:55:54 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n4VNtrsC027121; Mon, 1 Jun 2009 01:55:53 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 01:55:53 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> Message-ID: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 23:55:59 -0000 > should really use raidz2 in zfs (or some double parity raid on other > systems) if you are worried about data integrity. The reason being the odds > of the crc checking not detecting an error are much more likely these days. > The extra layer of parity pushes these odds into being much bigger you are right with capacity but not performance. once again - RAIDz is more like RAID-3 not RAID-5, RAIDz2 is somehow like RAID3 with double parity disk. you will get IOps from RAIDz/RAIDz2 set not much more than from single drive, even on reads. But if it's used for mostly linear reading big files you are right. From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 23:59:46 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B7E09106564A for ; Sun, 31 May 2009 23:59:46 +0000 (UTC) (envelope-from xorquewasp@googlemail.com) Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.26]) by mx1.freebsd.org (Postfix) with ESMTP id 3D2B28FC2C for ; Sun, 31 May 2009 23:59:45 +0000 (UTC) (envelope-from xorquewasp@googlemail.com) Received: by ey-out-2122.google.com with SMTP id 22so306388eye.7 for ; Sun, 31 May 2009 16:59:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to; bh=9p/7t3jIymlL7d3LgfVYjVgclG1GxaIrImSnoVKxD3Y=; b=fZVZFnpvL0O1LDZ+XTVGjOY/ZcJDcL4F6XP7NVGuxO+l4MPeYS/jtKqU52daU6lm78 rJSo4h95MAYW8y4gT4Dmkm9z7D+wTLGPq/rUrPo0ubQNQlc5S7XMB7fbpFR7TdHUOBbU zZSCGuzUztBQVGQwJVY4yROrYm3DDWJVsdzUA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=date:from:to:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to; b=FYqVldQ8kCoqzFyhV8vV1Z0NxM1z41mK9t8K92gggIQtoSEaB5rp+WoPs8+omMpEMv nqats2+WSOkkMVhemAZSPu5lFFdBwItR57EINI0IDPzhHWPX82wjCWBegyaFjbAIy8hJ 7gYMZbIXa5mcg/yvloVzdhxqaVU+o5XrmGjiM= Received: by 10.210.11.13 with SMTP id 13mr3273618ebk.64.1243814384978; Sun, 31 May 2009 16:59:44 -0700 (PDT) Received: from logik.internal.network (81-86-41-187.dsl.pipex.com [81.86.41.187]) by mx.google.com with ESMTPS id 10sm6099632ewy.108.2009.05.31.16.59.44 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 May 2009 16:59:44 -0700 (PDT) Received: by logik.internal.network (Postfix, from userid 11001) id 2208B5D59; Sun, 31 May 2009 23:59:43 +0000 (UTC) Date: Mon, 1 Jun 2009 00:59:43 +0100 From: xorquewasp@googlemail.com To: freebsd-hackers@freebsd.org Message-ID: <20090531235943.GA77374@logik.internal.network> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 23:59:47 -0000 There is one last thing I'd like clarified. From the zpool manpage: In order to take advantage of these features, a pool must make use of some form of redundancy, using either mirrored or raidz groups. While ZFS supports running in a non-redundant configuration, where each root vdev is simply a disk or file, this is strongly discouraged. A single case of bit corruption can render some or all of your data unavailable. Is this supposed to mean: "ZFS is more fragile than most. If you don't use redundancy, one case of bit corruption will destroy the filesystem" Or: "Hard disks explode often. Use redundancy." From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 00:15:51 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BEA65106564A for ; Mon, 1 Jun 2009 00:15:51 +0000 (UTC) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: from mired.org (two.mired.org [74.143.213.43]) by mx1.freebsd.org (Postfix) with ESMTP id 66B348FC08 for ; Mon, 1 Jun 2009 00:15:51 +0000 (UTC) (envelope-from mwm-keyword-freebsdhackers2.e313df@mired.org) Received: (qmail 13459 invoked by uid 1001); 31 May 2009 20:14:09 -0400 Received: from bhuda.mired.org (localhost.localdomain [127.0.0.1]) by bhuda (tmda-ofmipd) with ESMTP; Sun, 31 May 2009 20:14:09 -0400 Date: Sun, 31 May 2009 20:14:08 -0400 To: xorquewasp@googlemail.com Message-ID: <20090531201408.45dd4334@bhuda.mired.org> In-Reply-To: <20090531235943.GA77374@logik.internal.network> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> Organization: Meyer Consulting X-Mailer: Claws Mail 3.7.1 (GTK+ 2.14.7; amd64-portbld-freebsd7.1) Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAG1BMVEXguIzRkGnhyaz069mXhW0WHRnbrnR9WCQ6LB0CchNMAAACSUlEQVQ4jV2TQW7jMAxFGaPQOgQEdZaGMsgBrAvUA03dCxj1Uu4U2gfwQD7AGNax51NK07RcxXz6/CSl0Ij450vkPG1jzpIZM1UwDCl/xB14TWnNX8A00Qj5a0mnVFVbVUz4MeErea2HikSRqZzY894zwg9p2+/AtO8LzxFED+tNAUFeU29iFOLRxlZAcdo9A8wi8ZBMV4BKPde82Oxrvs6BTkulQIClte0DLFzzsKk9j1MBex8iUaP00Bd78S/muyFScrTXz6zLkEUxJp+SabQfNOs4f4Jpx5qSZ/304PWwlEWP1cOn/mJQR7EOD+uKhjcBLziuL7xoY5Xm+VFAUSw/LwwwsHEHxihpwV4EJH0xXRkbw1PkRw+X4pEuSJwBggqk+HEYKkiL5/74/nQkogigzQsAFrakxZyfw3wMIEEZPv4AWMfxwqE5GNxGaERjmH+PG8AE0L4/w9g0lsp1raLYAN5azQa+AOoO9NwcpFkTrG2VKNMNEL5UKUUAw34tha0z7onUG0oBoNtczE04GwFE3wCHc0ChezAJ6A1WMV81AtY7wDAJSlXwV+4cwBvsOsrQMRawfQEBz0deEZ7WNpV2szckIKo5VpDHDSDvF1GItwqqAlG01Hh50BGtVhuUkjkasg/14bYFGCgWg1fSWHvmOoJck2xdp9ZvZBHzDVTzX23TkrOn7qe5U2COEw5D4Vx3qEQpFY2Z/3QFnJxzp7YCmSMG19nOUoe869zZfOQb5ywQuWu0yCn5+8gxZz+BE7vG3j4/wbf4D/sXN9Wug1s7AAAAAElFTkSuQmCC Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Mike Meyer Cc: freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 00:15:52 -0000 On Mon, 1 Jun 2009 00:59:43 +0100 xorquewasp@googlemail.com wrote: > There is one last thing I'd like clarified. From the zpool > manpage: > > In order to take advantage of these features, a pool must make use of > some form of redundancy, using either mirrored or raidz groups. While > ZFS supports running in a non-redundant configuration, where each root > vdev is simply a disk or file, this is strongly discouraged. A single > case of bit corruption can render some or all of your data unavailable. > > Is this supposed to mean: > > "ZFS is more fragile than most. If you don't use redundancy, one > case of bit corruption will destroy the filesystem" > > Or: > > "Hard disks explode often. Use redundancy." How about (from an old disk recover paper): Disks, unlike software, sometimes fail. Using redundancy can help you prevent this from resulting in data loss. That said, there aren't many file systems that can recover from data errors in the underlying storage. ZFS appropriately configured is one. I don't believe the default config is appropriate, though. You need both checksum on and copies > 1 on, and the latter isn't the default. It's probably better to let zpool provide the redundancy via a mirror or raid configuration than to let zfs do it anyway. http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 22:13:23 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 982671065673 for ; Sun, 31 May 2009 22:13:23 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.25]) by mx1.freebsd.org (Postfix) with ESMTP id 1653B8FC2E for ; Sun, 31 May 2009 22:13:22 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ey-out-2122.google.com with SMTP id 22so299495eye.7 for ; Sun, 31 May 2009 15:13:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=AT/bcruC/6/+J2ppumS9emcaTlYGPL8+0NnLQ04bpGI=; b=YD8cgmXf5G3Lr2t7Q7VuKJ2r4IB0eVsEBfMFYPPPoV2vaW47Xm4vSlqAywnBij8kU5 gVayrT2Wpra2MLdNT3Jx8Uf8IvYWeRtLuu9JODtFAWV6qKvnce+fKRYsQucwyLrifzMh SMyZ17MGn6Z7rHhSv3ekUqSesptF4Ya0oh4f0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=hGvLJSAnIkbLMpPMusI6l1YmgSriyN3t3kdITpg2kRkruKyai1v4YcT7+pEsxxk0gV Rb4DWqemWHZk8k9iykz8Vh+FYh9xWkgRV6ymSE53izflvMjBiT1d1D3xtVKpXCJoqYqU vBm/z330IGH5Qs3/VsLAhlipd1tIoKjVcdU9E= Received: by 10.210.88.7 with SMTP id l7mr5567728ebb.74.1243808002121; Sun, 31 May 2009 15:13:22 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6047998ewy.104.2009.05.31.15.13.21 (version=SSLv3 cipher=RC4-MD5); Sun, 31 May 2009 15:13:21 -0700 (PDT) From: krad To: "'Wojciech Puchar'" , References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> Date: Sun, 31 May 2009 23:13:19 +0100 Message-ID: <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcniOtBzjr39Q7HmRUe7nxzsAsJm2QAAXP/g X-Mailman-Approved-At: Mon, 01 Jun 2009 00:17:37 +0000 Cc: freebsd-hackers@freebsd.org, 'krad' Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 22:13:23 -0000 Yep, its also worth noting that with the capacities of drives these days you should really use raidz2 in zfs (or some double parity raid on other systems) if you are worried about data integrity. The reason being the odds of the crc checking not detecting an error are much more likely these days. The extra layer of parity pushes these odds into being much bigger -----Original Message----- From: Wojciech Puchar [mailto:wojtek@wojtek.tensor.gdynia.pl] Sent: 31 May 2009 22:57 To: xorquewasp@googlemail.com Cc: krad; freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? >> Would create a striped data set across da1 and da2 > > What kind of performance gain can I expect from this? I'm purely thinking > about performance now - the integrity checking stuff of ZFS is a pleasant > extra. with stripping - as much as with gstripe, ZFS do roughly the same. with RAID-z - faster transfer, rougly same IOps as single disk. After i read ZFS papers i know that RAID-z is actually more like RAID-3 not RAID-5. From owner-freebsd-hackers@FreeBSD.ORG Sun May 31 22:36:16 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66C20106571F for ; Sun, 31 May 2009 22:36:16 +0000 (UTC) (envelope-from kalinoj1@iem.pw.edu.pl) Received: from volt.iem.pw.edu.pl (volt.iem.pw.edu.pl [194.29.146.3]) by mx1.freebsd.org (Postfix) with ESMTP id 290938FC18 for ; Sun, 31 May 2009 22:36:16 +0000 (UTC) (envelope-from kalinoj1@iem.pw.edu.pl) Received: from [192.168.1.183] (chello089079156006.chello.pl [89.79.156.6]) (Authenticated sender: kalinoj1) by volt.iem.pw.edu.pl (Postfix) with ESMTPSA id 06210A6663B for ; Mon, 1 Jun 2009 00:17:45 +0200 (CEST) Message-ID: <4A230199.6090107@iem.pw.edu.pl> Date: Mon, 01 Jun 2009 00:15:53 +0200 From: Jedrzej Kalinowski User-Agent: Thunderbird 2.0.0.21 (X11/20090524) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Virus-Scanned: clamav-milter devel-r5066-exp at volt.iem.pw.edu.pl X-Virus-Status: Clean X-Mailman-Approved-At: Mon, 01 Jun 2009 00:17:53 +0000 Subject: Getting rid of pxeboot loader requests for .gz an .bz2 files X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2009 22:36:17 -0000 Hello, I've got a FreeBSD CURRENT diskless boot set up. In the logs of tftpd-hpa I can see that every and each file from boot.4th to kernel modules is tried to be fetched in compressed format (.gz, .bz2) before it is loaded in its pure form by the pxe-enabled loader. So the sequence is: file.gz->file.bz2->file. I don't have compressed versions of these files in my environment, so I would like to get rid of these requests. Just to make my boot lighter - thus faster. I'm looking for some hints on how to do it in the sources and I only found it on lines 88 - 93 of /usr/src/sys/boot/i386/loader/conf.c, namely: #ifdef LOADER_GZIP_SUPPORT &gzipfs_fsops, #endif #ifdef LOADER_BZIP2_SUPPORT &bzipfs_fsops, #endif Is it the correct idea to: make -C /usr/src/sys/boot -DLOADER_NO_GZIP_SUPPORT -DLOADER_NO_BZIP2_SUPPORT .... ? Or is it the other place I should look for? Thank you -- JÄ™drzej Kalinowski From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 00:26:35 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B969B106566B for ; Mon, 1 Jun 2009 00:26:35 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id D341E8FC15 for ; Mon, 1 Jun 2009 00:26:34 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n510QUCU027339; Mon, 1 Jun 2009 02:26:30 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n510QTtj027336; Mon, 1 Jun 2009 02:26:29 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 02:26:29 +0200 (CEST) From: Wojciech Puchar To: Mike Meyer In-Reply-To: <20090531201408.45dd4334@bhuda.mired.org> Message-ID: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> <20090531201408.45dd4334@bhuda.mired.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 00:26:36 -0000 > Disks, unlike software, sometimes fail. Using redundancy can help modern SATA drives fail VERY often. about 30% of drives i bought recently failed in less than a year. > both checksum on and copies > 1 on, and the latter isn't the > default. It's probably better to let zpool provide the redundancy via > a mirror or raid configuration than to let zfs do it anyway. ZFS copies are far from what i consider useful. for example you set copies=2. You write a file, and get 2 copies. Then one disk with one copy fails, then you put another, do resilver but ZFS DOES NOT rebuild second copy. You need to write a program that will just rewrite all files to make this. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 00:30:32 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32FA7106566C for ; Mon, 1 Jun 2009 00:30:32 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id CFB228FC14 for ; Mon, 1 Jun 2009 00:30:30 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n510UQNE027376; Mon, 1 Jun 2009 02:30:26 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n510UQZk027373; Mon, 1 Jun 2009 02:30:26 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 02:30:26 +0200 (CEST) From: Wojciech Puchar To: Jedrzej Kalinowski In-Reply-To: <4A230199.6090107@iem.pw.edu.pl> Message-ID: References: <4A230199.6090107@iem.pw.edu.pl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Cc: freebsd-hackers@freebsd.org Subject: Re: Getting rid of pxeboot loader requests for .gz an .bz2 files X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 00:30:35 -0000 > #ifdef LOADER_BZIP2_SUPPORT > &bzipfs_fsops, > #endif > > Is it the correct idea to: > make -C /usr/src/sys/boot -DLOADER_NO_GZIP_SUPPORT > -DLOADER_NO_BZIP2_SUPPORT .... ? > yes, but then you will not get any compression support, like compressed ramdisk image. but it's probably OK for you. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 00:31:13 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41B73106566C for ; Mon, 1 Jun 2009 00:31:13 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id D5AB38FC14 for ; Mon, 1 Jun 2009 00:31:11 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n510V75J027402; Mon, 1 Jun 2009 02:31:07 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n510V7od027399; Mon, 1 Jun 2009 02:31:07 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 02:31:07 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: <8FFF597348E24C8085BEDE423DC4A6A3@uk.tiscali.intl> Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org> <20090531163305.6c7d0cd5@bhuda.mired.org> <8FFF597348E24C8085BEDE423DC4A6A3@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: 'Mike Meyer' , freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 00:31:13 -0000 > Yep it probably isn't clear enough, it does mention stuff about spreading it > across vdevs, but doesn't say striped. isn't spreading and stripping actually the same? From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 01:04:56 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9E761065670 for ; Mon, 1 Jun 2009 01:04:56 +0000 (UTC) (envelope-from onemda@gmail.com) Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com [209.85.218.213]) by mx1.freebsd.org (Postfix) with ESMTP id 774868FC25 for ; Mon, 1 Jun 2009 01:04:56 +0000 (UTC) (envelope-from onemda@gmail.com) Received: by bwz9 with SMTP id 9so7358066bwz.43 for ; Sun, 31 May 2009 18:04:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=UaUNriLHFq77l2iuNisGK6gUWNsEZMN6RiJFyh786nU=; b=LJARFz0y4P7TvpElXfe7Fi/SCll3mWWTQLdTRFMDKrRgVPwoK5PG5Drl/Ky0mM98Un 3EDuJ9rX256m83o0F9nDh07WkLeCjA0qAfQ/pv9y4Ue0m0pISUNEx1B1mQqygtCjKiNa c+SktIxmrAGUxcJkDv2EPnxkSfvPYXNBAtgxM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=B9utfTTwzqMG4ydFM51P6cEyx3+mpLVJzml2qQw1ZoCQ0E48btAXSLrXcvSxhup0da U04S8YgwqRe9YQA+68cvpduTgKJE7K9sv8cNF8dKKFjwybQRFSsGCm1Ye6vMSrxGf5w4 Sk9HUduWFEzkfZ5bbaDv7rWyzE/NH25dO0sTI= MIME-Version: 1.0 Received: by 10.204.100.10 with SMTP id w10mr5057342bkn.211.1243817021542; Sun, 31 May 2009 17:43:41 -0700 (PDT) In-Reply-To: <4A230199.6090107@iem.pw.edu.pl> References: <4A230199.6090107@iem.pw.edu.pl> Date: Mon, 1 Jun 2009 00:43:41 +0000 Message-ID: <3a142e750905311743g100eecc8h749d184fc740cf90@mail.gmail.com> From: "Paul B. Mahol" To: Jedrzej Kalinowski Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Getting rid of pxeboot loader requests for .gz an .bz2 files X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 01:04:57 -0000 On 5/31/09, Jedrzej Kalinowski wrote: > Hello, > > I've got a FreeBSD CURRENT diskless boot set up. > > In the logs of tftpd-hpa I can see that every and each file from > boot.4th to kernel modules is tried to be fetched in compressed format > (.gz, .bz2) before it is loaded in its pure form by the pxe-enabled loader. > > So the sequence is: file.gz->file.bz2->file. > > I don't have compressed versions of these files in my environment, so I > would like to get rid of these requests. Just to make my boot lighter - > thus faster. > > I'm looking for some hints on how to do it in the sources and I only > found it on lines 88 - 93 of /usr/src/sys/boot/i386/loader/conf.c, namely: > > #ifdef LOADER_GZIP_SUPPORT > &gzipfs_fsops, > #endif > #ifdef LOADER_BZIP2_SUPPORT > &bzipfs_fsops, > #endif > > Is it the correct idea to: > make -C /usr/src/sys/boot -DLOADER_NO_GZIP_SUPPORT > -DLOADER_NO_BZIP2_SUPPORT .... ? > > Or is it the other place I should look for? /etc/make.conf ? -- Paul From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 02:44:28 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD036106566C for ; Mon, 1 Jun 2009 02:44:28 +0000 (UTC) (envelope-from fjwcash@gmail.com) Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.29]) by mx1.freebsd.org (Postfix) with ESMTP id 7FC538FC0A for ; Mon, 1 Jun 2009 02:44:28 +0000 (UTC) (envelope-from fjwcash@gmail.com) Received: by yx-out-2324.google.com with SMTP id 8so3789863yxb.13 for ; Sun, 31 May 2009 19:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=vH1dZvtqZZNDXWKCKLMfT/dspX2heCzPWrEbvGutqOo=; b=wThNGNjbykUIxO8yMa53H/CNpXSgRpeNoJjPAkPvWmJh2SqBmp89HxU8ukiALA72J8 PYjik3xNW5zNsP6OcOOW57s5IdMvwWBsnPuwopxcX8MGK8Vdyx3RjfaGEdqsVHtiq44p 32rUfGFzptCKd3CamApXF5rRzFbiacVcmMRnw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=tPVkTFvzHYkUi+ve1UvFlXXqFWTJwXpwBik+5oue4gVx8wFW7N+jsJ3w/TIAYKde44 I4Y/2k83rd0dr5ic4fgRxuVJG5bgBP3lllsZEgZmdzbB3s/5InEX4oM3mB0ijncFeyto 3U0Bup9U3/CxmREFRFeHu/sXcFniq9MTE1leI= MIME-Version: 1.0 Received: by 10.151.72.2 with SMTP id z2mr10677028ybk.15.1243822446881; Sun, 31 May 2009 19:14:06 -0700 (PDT) In-Reply-To: <20090531235943.GA77374@logik.internal.network> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> Date: Sun, 31 May 2009 19:14:06 -0700 Message-ID: From: Freddie Cash To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 02:44:29 -0000 On Sun, May 31, 2009 at 4:59 PM, wrote: > There is one last thing I'd like clarified. From the zpool > manpage: > > =C2=A0In order =C2=A0to take advantage of these features, a pool must mak= e use of > =C2=A0some form of redundancy, using either mirrored or raidz =C2=A0group= s. =C2=A0While > =C2=A0ZFS =C2=A0supports running in a non-redundant configuration, where = each root > =C2=A0vdev is simply a disk or file, this is strongly discouraged. =C2=A0= A =C2=A0single > =C2=A0case of bit corruption can render some or all of your data unavaila= ble. > > Is this supposed to mean: > > =C2=A0"ZFS is more fragile than most. If you don't use redundancy, one > =C2=A0 case of bit corruption will destroy the filesystem" > > Or: > > =C2=A0"Hard disks explode often. Use redundancy." Unless you specify mirror or raidz on the create/add line, zfs (in essence) creates a RAID0 stripe of all the vdevs. Hence, if a single drive dies, the whole thing dies. Just like in a normal hardware/software RAID0 array. Nothing special or new here. Just like "normal" RAID, unless you add redundancy (RAID1/5/6) to a stripe set, losing a single disk means losing the whole array. --=20 Freddie Cash fjwcash@gmail.com From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 06:21:13 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54B34106566B for ; Mon, 1 Jun 2009 06:21:13 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from mx44.mail.ru (mx44.mail.ru [94.100.176.58]) by mx1.freebsd.org (Postfix) with ESMTP id D20A98FC24 for ; Mon, 1 Jun 2009 06:21:12 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from f230.mail.ru (f230.mail.ru [194.186.55.141]) by mx44.mail.ru (mPOP.Fallback_MX) with ESMTP id 8DB8438000DCF for ; Mon, 1 Jun 2009 10:05:48 +0400 (MSD) Received: from mail by f230.mail.ru with local id 1MB0eY-0005z1-00 for freebsd-hackers@freebsd.org; Mon, 01 Jun 2009 10:05:46 +0400 Received: from [78.29.2.32] by win.mail.ru with HTTP; Mon, 01 Jun 2009 10:05:46 +0400 From: Asmodean Dark To: freebsd-hackers@freebsd.org Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: 78.29.10.8 via proxy [78.29.2.32] Date: Mon, 01 Jun 2009 10:05:46 +0400 X-Mru-Data: 1031:1:1:141:141:0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: X-Spam: Not detected X-Mras: Ok Subject: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Asmodean Dark List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 06:21:13 -0000 Hello, We have cluster of FreeBSD VPN servers with running mpd3.18 and sometimes it crash: # uname -a FreeBSD vpn 7.1-STABLE FreeBSD 7.1-STABLE #13: Wed Mar 18 14:53:13 YEKT 2009 root@vpn:/usr/src/sys/i386/compile/kconf i386 # dmesg Fatal trap 12: page fault while in kernel mode cpuid = 1; apic id = 01 fault virtual address = 0x8 fault code = supervisor read, page not present instruction pointer = 0x20:0x806dcb88 stack pointer = 0x28:0xe70775c4 frame pointer = 0x28:0xe70775e8 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 22 (em0 taskq) trap number = 12 (kgdb) bt #0 0x8063d6b0 in doadump () #1 0x8063dc44 in boot () #2 0x8063e0ca in panic () #3 0x807dab3d in trap_fatal () #4 0x807daeba in trap_pfault () #5 0x807db7bd in trap () #6 0x807c2a3b in calltrap () #7 0x806dcb88 in rn_match () #8 0x806ddc8a in rn_lookup () #9 0x8070e460 in ipfw_chk (args=0xe70175fc) at ../../../netinet/ip_fw2.c:1894 #10 0x80710c3d in ipfw_check_in (arg=0x0, m0=0xe7017700, ifp=0x91c5a800, dir=1, inp=0x0) at ../../../netinet/ip_fw_pfil.c:125 #11 0x806dc20f in pfil_run_hooks () #12 0x80713984 in ip_input (m=0x91954c00) at ../../../netinet/ip_input.c:416 #13 0x806ec0d9 in ng_iface_rcvdata () #14 0x806e9570 in ng_apply_item () #15 0x806e8569 in ng_snd_item () #16 0x806e9570 in ng_apply_item () #17 0x806e8569 in ng_snd_item () #18 0x806e9570 in ng_apply_item () #19 0x806e8569 in ng_snd_item () #20 0x806f16a7 in ng_ppp_proto_recv () #21 0x806f3ed2 in ng_ppp_rcvdata () #22 0x806e9570 in ng_apply_item () #23 0x806e8569 in ng_snd_item () #24 0x806e9570 in ng_apply_item () #25 0x806e8569 in ng_snd_item () #26 0x806ee3c3 in ng_ksocket_incoming2 () #27 0x806e969d in ng_apply_item () #28 0x806ea8aa in ngintr () #29 0x806dab72 in swi_net () #30 0x8061e265 in ithread_loop () #31 0x8061adf5 in fork_exit () #32 0x807c2ab0 in fork_trampoline () What can I do with it? Are additional info needed? Thanks. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 09:03:00 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51499106566B for ; Mon, 1 Jun 2009 09:03:00 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 3A7C78FC16 for ; Mon, 1 Jun 2009 09:02:58 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n5192pnj029920; Mon, 1 Jun 2009 11:02:51 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n5192pr8029917; Mon, 1 Jun 2009 11:02:51 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 11:02:51 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: <45F774FB6EDB488099ADF76790ABBD65@uk.tiscali.intl> Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org> <20090531163305.6c7d0cd5@bhuda.mired.org> <8FFF597348E24C8085BEDE423DC4A6A3@uk.tiscali.intl> <45F774FB6EDB488099ADF76790ABBD65@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: 'Mike Meyer' , freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 09:03:00 -0000 > In the case of zfs yes, but not always. Eg you could have a concatenated > volume. Where you only start writing to the second disk when the 1st is > full. i don't know how ZFS exactly allocates space, but i use gconcat with UFS and it isn't true. UFS do "jump" between zones (called cyllinder group) when files are written to prevent unevenly filling them, so every zone always has some space to allocate. The effect is that both drives gets quite evenly filled From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 09:05:04 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 86BD1106564A for ; Mon, 1 Jun 2009 09:05:04 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id AC0B28FC08 for ; Mon, 1 Jun 2009 09:05:02 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n5194v4G029933; Mon, 1 Jun 2009 11:04:57 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n5194vfR029930; Mon, 1 Jun 2009 11:04:57 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 11:04:57 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 09:05:04 -0000 > You shouldn't need to alter the copies attribute to recover from disk > failures as the normal raid should take care of that. What the copies is I don't think we understand each other. I say that when i want 2 copies, ZFS should rebuild second copy if it's gone and i run resilver. it does not, what doesn't make sense for me. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 08:32:16 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 703DF1065675 for ; Mon, 1 Jun 2009 08:32:16 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id C99D68FC1E for ; Mon, 1 Jun 2009 08:32:10 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so4183798ewy.43 for ; Mon, 01 Jun 2009 01:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=LrevFt41X3lTBp00j+yIPU44tpI7yKNADmPYUeviyl0=; b=caRBgM4eLezIl2zLAM56bj6xAW01NBijFXjvkvK8+VBqwoH0lwS/IFLZq1L2K+nlmz T7eXoGEAgBoxlcfj7Gf3Vx1qoUcZnHvuaXq5r1wrWeSaN513AsgWdA5+FGVAOcl+ARF6 mfXCXrhkFl8FpCB7Y5SV4w+qYOycnVdgBUaMk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=YWpXqr2WxkXTkDoBuXA0HSaVPfLkWhZOG+fZOICgqmudB2zzwtSO/gaQO+XvdOXCj0 0BKMMWo/CZMLMYyb12Rx6JSVGJL2xiHkJhtPtwiuJfHRgVowy/FCyagJTO6HNNpEFBBp 9G21/Nrc5O9verv79tCos67fGzM40Cf7s5C/I= Received: by 10.210.16.11 with SMTP id 11mr2561634ebp.87.1243845129922; Mon, 01 Jun 2009 01:32:09 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6600778ewy.56.2009.06.01.01.32.09 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 01:32:09 -0700 (PDT) From: krad To: , References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> Date: Mon, 1 Jun 2009 09:32:09 +0100 Message-ID: <3346D963EE2E4D28AE89CB71C2F92939@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <20090531235943.GA77374@logik.internal.network> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcniS+nR4L5WeuIeQ4ywxE/MVb7YzQARmMJg X-Mailman-Approved-At: Mon, 01 Jun 2009 11:24:22 +0000 Cc: Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 08:32:19 -0000 Zfs has been designed for highly scalable redundant disk pools therefore using it on a single drive kind of goes against it ethos. Remember a lot of the blurb in the man page was written by sun and therefore is written with corporates in mind, therefore the cost with of the data vs an extra drive being so large why wouldn't you make it redundant. Having said that sata drives are cheap these days so you would have to be on the tightest of budgets not to do a mirror. Having said all this we quite often us zfs on a single drive, well sort of. The sun clusters have external storage for the shared file systems. These are usually a bunch of drives, raid 5, 10 or whatever. Then export a single lun, which is presented to the various nodes. There is a zpool created on this LUN. So to all intents and purposes zfs thinks its on a single drive (the redundancy provided by the external array). This is common practice and we see no issues with it. -----Original Message----- From: owner-freebsd-hackers@freebsd.org [mailto:owner-freebsd-hackers@freebsd.org] On Behalf Of xorquewasp@googlemail.com Sent: 01 June 2009 01:00 To: freebsd-hackers@freebsd.org Subject: Re: Request for opinions - gvinum or ccd? There is one last thing I'd like clarified. From the zpool manpage: In order to take advantage of these features, a pool must make use of some form of redundancy, using either mirrored or raidz groups. While ZFS supports running in a non-redundant configuration, where each root vdev is simply a disk or file, this is strongly discouraged. A single case of bit corruption can render some or all of your data unavailable. Is this supposed to mean: "ZFS is more fragile than most. If you don't use redundancy, one case of bit corruption will destroy the filesystem" Or: "Hard disks explode often. Use redundancy." _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 08:36:14 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEE161065672 for ; Mon, 1 Jun 2009 08:36:14 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.26]) by mx1.freebsd.org (Postfix) with ESMTP id 6ED868FC1C for ; Mon, 1 Jun 2009 08:36:14 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ey-out-2122.google.com with SMTP id 22so339218eye.7 for ; Mon, 01 Jun 2009 01:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=Wbz8/WpiYBAFgOCmOpWcVsUaLvq/MUA59xkfgcnMgiQ=; b=I5dDsDf5Mtnk4NKX5tRgAzFPwhWdjr/qxTQ8ZuxQFSCSvd8i7iS2T+rAZF6Xn3MAuk Qxy0StLpgYNCFEHPEQpm9ofSh8A7AZkWSlHl1ajbptpCLSTBrLN6Aawkgo4Cf5T47QmC h0n7W5tGXlOhp7+hbA4+rtpfmnoz3JmMNDINQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=fDdBEr+yRrMOEPyuirnq6etdCG9Lxz6nMd581gfxf79yN7oBAZLQXeImwAO7GA7xiO ezh704/DbJF9EwYgQA3t3Pn7uaw5OBguY4qq/VypNd5RikpSNU9yB0wbXSdz6W+MwUF6 Q3vZv6fluaHwCz3m1lBi/lLjxJR+9laKZm+ng= Received: by 10.210.33.3 with SMTP id g3mr6047319ebg.65.1243845373278; Mon, 01 Jun 2009 01:36:13 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6615505ewy.8.2009.06.01.01.36.12 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 01:36:12 -0700 (PDT) From: krad To: "'Wojciech Puchar'" , "'krad'" References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org> <20090531163305.6c7d0cd5@bhuda.mired.org> <8FFF597348E24C8085BEDE423DC4A6A3@uk.tiscali.intl> Date: Mon, 1 Jun 2009 09:36:12 +0100 Message-ID: <45F774FB6EDB488099ADF76790ABBD65@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcniUEWd95hOcYkkQTKLAEUlyYVzzQAQ4VjQ X-Mailman-Approved-At: Mon, 01 Jun 2009 11:24:33 +0000 Cc: 'Mike Meyer' , freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 08:36:15 -0000 In the case of zfs yes, but not always. Eg you could have a concatenated volume. Where you only start writing to the second disk when the 1st is full. -----Original Message----- From: Wojciech Puchar [mailto:wojtek@wojtek.tensor.gdynia.pl] Sent: 01 June 2009 01:31 To: krad Cc: 'Mike Meyer'; freebsd-hackers@freebsd.org; 'Mike Meyer'; xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? > Yep it probably isn't clear enough, it does mention stuff about spreading it > across vdevs, but doesn't say striped. isn't spreading and stripping actually the same? From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 08:42:27 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21BF5106564A for ; Mon, 1 Jun 2009 08:42:27 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id 917BA8FC15 for ; Mon, 1 Jun 2009 08:42:26 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so4189274ewy.43 for ; Mon, 01 Jun 2009 01:42:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=VEAU/9OgFXNunA2aJEs/Vr36xKZE5N6I7AeXbXUTzuY=; b=Sp8B6heOQQ1IS97Slzn1I9axI+oAt1jDm8h2q7+TtVp5zeJNqtdlxrlb28/D2ZXipS 7JgxCCTkrpuLPYNA8qgmilFrl5YNBux6fbPtnNDJajb2gVhyjb04+BZqnsUCojfsWj0s tSoz7TjDGYl5isQAiMZY3OUeZSG8M4WO9LtfY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=HaVrx0IFaudeyWzzYInhCE3ftOD2hQtb4AAkiEncKn0tulTrv0AGnT/6K7Bqn4Ws7s p8duT+Kl7wqnh2uBBvloI0lO27gHrGdp3F6XySH8gsp/qROUAav+4Jejfpy5Ut1d4M+y lJVFmhVLPZ+nBuudekIbfC5MgCIQPApma8gE0= Received: by 10.210.105.8 with SMTP id d8mr2870708ebc.77.1243845745273; Mon, 01 Jun 2009 01:42:25 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6611364ewy.104.2009.06.01.01.42.24 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 01:42:24 -0700 (PDT) From: krad To: "'Wojciech Puchar'" , "'Mike Meyer'" References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> Date: Mon, 1 Jun 2009 09:42:24 +0100 Message-ID: <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcniT6s9VrLTtiuvSbuSBty7iKcBIQARF3Cg X-Mailman-Approved-At: Mon, 01 Jun 2009 11:24:46 +0000 Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 08:42:27 -0000 You shouldn't need to alter the copies attribute to recover from disk failures as the normal raid should take care of that. What the copies is useful for is when you get undetected write errors on the drive due to crc collisions or the drive simply being rubbish Zfs will intelligently assign the copies across multiple drives if possible, so if you had 3 vdevs and copies set to three, One copy should end up on each vdev. Note this isn't the same as mirroring, as each vdev could be a raidz2 group. With copies=1 you would get a 3rd of the file on each. With copies 3 you would get a full version of each. This is obviously very costly on drive space though. It is tunable per file system though so you don't have to enable it for the whole pool just the bits you want. -----Original Message----- From: owner-freebsd-hackers@freebsd.org [mailto:owner-freebsd-hackers@freebsd.org] On Behalf Of Wojciech Puchar Sent: 01 June 2009 01:26 To: Mike Meyer Cc: freebsd-hackers@freebsd.org; xorquewasp@googlemail.com Subject: Re: Request for opinions - gvinum or ccd? > Disks, unlike software, sometimes fail. Using redundancy can help modern SATA drives fail VERY often. about 30% of drives i bought recently failed in less than a year. > both checksum on and copies > 1 on, and the latter isn't the > default. It's probably better to let zpool provide the redundancy via > a mirror or raid configuration than to let zfs do it anyway. ZFS copies are far from what i consider useful. for example you set copies=2. You write a file, and get 2 copies. Then one disk with one copy fails, then you put another, do resilver but ZFS DOES NOT rebuild second copy. You need to write a program that will just rewrite all files to make this. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 12:50:16 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29B611065672 for ; Mon, 1 Jun 2009 12:50:16 +0000 (UTC) (envelope-from tevans.uk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id 9FE048FC26 for ; Mon, 1 Jun 2009 12:50:15 +0000 (UTC) (envelope-from tevans.uk@googlemail.com) Received: by ewy8 with SMTP id 8so4322339ewy.43 for ; Mon, 01 Jun 2009 05:50:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:cc :in-reply-to:references:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; bh=5CGAq8gDYKvy09xYrYiIU7nkkgOCaeBsS25D/kWUMWo=; b=o7J4gCFXqHiIewGulwYzbQCNyIQ+jR9y4Saso9t2uop+LfNaHdVh+MGoIjRSpnUqGt y9hIJMvILmfdkYaLKzo3HfTOzl4j/ORj4lMwtUD4lz9H0o6pGy0JjLDqiNaUl1wM/CF1 rv0TZvB6qfciVhSiBQgx2SoFG74DZ62BWWiDw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=VCvF8AlHyF8qAkg4HfJht0mRUqTAgJw0GUQOafRggPy+MUxGj3speztKkogO7GscHS peGQQmqTuvYFsS4pGgIPoGoDDp35vFfnqaskno5YRZlY4QDk0vrWzVep71fH12SAVGyT LnnIdIh37zA1ZIGAG85hVKplESKF6xWB3yQnQ= Received: by 10.210.13.17 with SMTP id 17mr6378806ebm.59.1243860614639; Mon, 01 Jun 2009 05:50:14 -0700 (PDT) Received: from ?127.0.0.1? (87-194-39-182.bethere.co.uk [87.194.39.182]) by mx.google.com with ESMTPS id 23sm1273810eya.49.2009.06.01.05.50.13 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 05:50:13 -0700 (PDT) From: Tom Evans To: krad In-Reply-To: <3346D963EE2E4D28AE89CB71C2F92939@uk.tiscali.intl> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> <3346D963EE2E4D28AE89CB71C2F92939@uk.tiscali.intl> Content-Type: text/plain Date: Mon, 01 Jun 2009 13:50:12 +0100 Message-Id: <1243860612.9871.68.camel@strangepork.london.mintel.ad> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 12:50:16 -0000 On Mon, 2009-06-01 at 09:32 +0100, krad wrote: > Zfs has been designed for highly scalable redundant disk pools therefore > using it on a single drive kind of goes against it ethos. Remember a lot of > the blurb in the man page was written by sun and therefore is written with > corporates in mind, therefore the cost with of the data vs an extra drive > being so large why wouldn't you make it redundant. > > Having said that sata drives are cheap these days so you would have to be on > the tightest of budgets not to do a mirror. > > Having said all this we quite often us zfs on a single drive, well sort of. > The sun clusters have external storage for the shared file systems. These > are usually a bunch of drives, raid 5, 10 or whatever. Then export a single > lun, which is presented to the various nodes. There is a zpool created on > this LUN. So to all intents and purposes zfs thinks its on a single drive > (the redundancy provided by the external array). This is common practice and > we see no issues with it. By doing this surely you lose a lot of the self healing that ZFS offers? For instance, if the underlying vdev is just a raid5, then a disk failure combined with an undetected checksum error on a different disk would lead you to lose all your data. Or am I missing something? (PS, top posting is bad) Tom From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 12:19:57 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 777C4106566C for ; Mon, 1 Jun 2009 12:19:57 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id EB6938FC14 for ; Mon, 1 Jun 2009 12:19:56 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so4303942ewy.43 for ; Mon, 01 Jun 2009 05:19:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=ilhk9GB0RtqepHCimX4qA7CSrJ1E+EvtbaEspyPlU9k=; b=DFHgqWXRHVngzV9dEPyfbfTsOo1YxURqp1tc8y0wntf3gxG/OKM1lxBnLU2Fzw8Muh WGmwB2DIbTiJX897YT4jX/BJCxRezRVtzGOSkRv5Qmo+YMSVCvwT1TcaNat3RfdBcm6m oqz0wg+xa8H1OApw51+j815BvDwPKntHCqdtk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=X9ftRhIZLHaUzGoIxK1BvlLMu70nh/U1l4HQ57a19TGHuY1gzrHxpamM20N2zN672S w9/8GqkwXuHUoAXajUn0D+CIAD4STfQPJ0M5PC7vhia109Kso3py7PLZjybF22+KUD63 5sKA+R4SxXL9V9i3wUJ8M+VOUMSu3oMeqelVY= Received: by 10.210.131.6 with SMTP id e6mr3927776ebd.81.1243858795847; Mon, 01 Jun 2009 05:19:55 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm6947954ewy.32.2009.06.01.05.19.55 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 05:19:55 -0700 (PDT) From: krad To: "'Wojciech Puchar'" , "'krad'" References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> Date: Mon, 1 Jun 2009 13:19:54 +0100 Message-ID: <3ED3189838484C8FBDECE5478A0DDFF4@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcnimA5TGTgMqrM0S+WAuk0AOmAcJQAGsYng X-Mailman-Approved-At: Mon, 01 Jun 2009 13:24:05 +0000 Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 12:19:57 -0000 Its all done on write, so if you update the file it will have multiple copies again This explains it quite well http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection -----Original Message----- From: Wojciech Puchar [mailto:wojtek@wojtek.tensor.gdynia.pl] Sent: 01 June 2009 10:05 To: krad Cc: 'Mike Meyer'; freebsd-hackers@freebsd.org; xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? > You shouldn't need to alter the copies attribute to recover from disk > failures as the normal raid should take care of that. What the copies is I don't think we understand each other. I say that when i want 2 copies, ZFS should rebuild second copy if it's gone and i run resilver. it does not, what doesn't make sense for me. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 13:19:53 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2FA47106564A for ; Mon, 1 Jun 2009 13:19:53 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id A25DE8FC26 for ; Mon, 1 Jun 2009 13:19:52 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so4341858ewy.43 for ; Mon, 01 Jun 2009 06:19:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=SkE8t34XmH3jpYjotPKYMY8n7oUYjPRN2iyTOk89bxg=; b=w5xg6LnRj/5Kdyuh3/JntMXi0MaepEXpQ7seFUCqF0IFOUMdZdwcOV2OFkwOFRld04 i9a0nHqrcluVzzRQvCEejzlvvJagYMoEnpCo46Y61AwFzLYAb7x0K/08aFo/YrM1YYOV 1Y40r80PSRS0xcpZcULZyRdGX7pGy0asW+rKE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=yBreGJuyDn7ok1YfrnhyXwQymL/ocqKTO/DcDge8KMGbbLEwA3UqSIY0yweJNjtmO+ E12WogK02pCwn86uKQXZA96e/XWpkb3IOrBmPeMFkQBeuQWpIJe5u0XGAaTaCp8AdyVI l8fALF1WF+sx87WvxdSe6bg5j8Fkpq4EoKAvw= Received: by 10.210.57.12 with SMTP id f12mr6172326eba.46.1243862391539; Mon, 01 Jun 2009 06:19:51 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm7047579ewy.56.2009.06.01.06.19.50 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 06:19:51 -0700 (PDT) From: krad To: "'Tom Evans'" , "'krad'" References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> <3346D963EE2E4D28AE89CB71C2F92939@uk.tiscali.intl> <1243860612.9871.68.camel@strangepork.london.mintel.ad> Date: Mon, 1 Jun 2009 14:19:50 +0100 Message-ID: <20754E8E3F5940E0875AD0BC76A78BAB@uk.tiscali.intl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <1243860612.9871.68.camel@strangepork.london.mintel.ad> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: Acnit4Lphf0Wb+xbQpu5en6RrgTu0wAAp9Pg X-Mailman-Approved-At: Mon, 01 Jun 2009 13:59:48 +0000 Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 13:19:53 -0000 no you would only loose the data for that block. Zfs also checksums meta data, but by default keeps multiple copies of it so that's fairly resilient. If you had the copies set to > 1 then you wouldn't loose the block either, unless you were real unlucky. It's just about pushing the odds back further and further. If you are super paranoid by all means put in 48 drive, group them into 5 x 8 drive raidz2 vdevs, have a bunch of hot spares, and enable copies=5 for blocks and metadata, then duplicate the system and put the other box on another continent and zfs send all you updates every 15 mins via a private deadicated. This will all prove very resilient, but you will get very little % storage from your drives, and have quite a large bandwidth bill 8) Oh and don't forget the scrub you disk regularly. BTW that would rebuild any missing copies as well (eg if you increase the number of copies after data is stored on the fs) -----Original Message----- From: Tom Evans [mailto:tevans.uk@googlemail.com] Sent: 01 June 2009 13:50 To: krad Cc: xorquewasp@googlemail.com; freebsd-hackers@freebsd.org Subject: RE: Request for opinions - gvinum or ccd? On Mon, 2009-06-01 at 09:32 +0100, krad wrote: > Zfs has been designed for highly scalable redundant disk pools therefore > using it on a single drive kind of goes against it ethos. Remember a lot of > the blurb in the man page was written by sun and therefore is written with > corporates in mind, therefore the cost with of the data vs an extra drive > being so large why wouldn't you make it redundant. > > Having said that sata drives are cheap these days so you would have to be on > the tightest of budgets not to do a mirror. > > Having said all this we quite often us zfs on a single drive, well sort of. > The sun clusters have external storage for the shared file systems. These > are usually a bunch of drives, raid 5, 10 or whatever. Then export a single > lun, which is presented to the various nodes. There is a zpool created on > this LUN. So to all intents and purposes zfs thinks its on a single drive > (the redundancy provided by the external array). This is common practice and > we see no issues with it. By doing this surely you lose a lot of the self healing that ZFS offers? For instance, if the underlying vdev is just a raid5, then a disk failure combined with an undetected checksum error on a different disk would lead you to lose all your data. Or am I missing something? (PS, top posting is bad) Tom From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 14:15:49 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9712B1065680 for ; Mon, 1 Jun 2009 14:15:49 +0000 (UTC) (envelope-from tevans.uk@googlemail.com) Received: from mail-ew0-f212.google.com (mail-ew0-f212.google.com [209.85.219.212]) by mx1.freebsd.org (Postfix) with ESMTP id 132F68FC12 for ; Mon, 1 Jun 2009 14:15:48 +0000 (UTC) (envelope-from tevans.uk@googlemail.com) Received: by ewy8 with SMTP id 8so4383247ewy.43 for ; Mon, 01 Jun 2009 07:15:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:cc :in-reply-to:references:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; bh=BKNoYOaCrkiiOAArDOkBXbL2YgpANgm8YMnw7FHA10M=; b=HTr69orpQMbMDy7Snadrv2aIe5zuynmhWVOB3Hr/Nn3+xprKhm7ZixKhyNcPPw41tj PQ00T+FVg/Y7TFKKQ+4VvML4xCcLn0ddD7sNZQYkm+yRtBFxzi932sm5SCylJnyQHTMF V2bbhf1MleN5eK2HeUfxcuCzVqzI/Ba576QCI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=Tx26jsfrRn2eY/CLnt74fTvpU/OCNS/iBowGktEXRk5KnV4WBtn1WCs0U51spxKt3R R50H3w70zPPIhwhivDK4hfTOpiURgvEJ9lp4Pv01k9DljtxyeSYYH57gyZR5VghdAbvi abS+42Eb5heCgQO5iSRD0i3hP/NViscp/E+0U= Received: by 10.210.27.14 with SMTP id a14mr921483eba.9.1243865744741; Mon, 01 Jun 2009 07:15:44 -0700 (PDT) Received: from ?127.0.0.1? (87-194-39-182.bethere.co.uk [87.194.39.182]) by mx.google.com with ESMTPS id 7sm1252459eyg.47.2009.06.01.07.15.43 (version=SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 07:15:44 -0700 (PDT) From: Tom Evans To: krad In-Reply-To: <20754E8E3F5940E0875AD0BC76A78BAB@uk.tiscali.intl> References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> <20090531201445.GA82420@logik.internal.network> <0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl> <20090531235943.GA77374@logik.internal.network> <3346D963EE2E4D28AE89CB71C2F92939@uk.tiscali.intl> <1243860612.9871.68.camel@strangepork.london.mintel.ad> <20754E8E3F5940E0875AD0BC76A78BAB@uk.tiscali.intl> Content-Type: text/plain Date: Mon, 01 Jun 2009 15:15:43 +0100 Message-Id: <1243865743.9871.75.camel@strangepork.london.mintel.ad> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 14:15:50 -0000 On Mon, 2009-06-01 at 14:19 +0100, krad wrote: > no you would only loose the data for that block. Zfs also checksums meta > data, but by default keeps multiple copies of it so that's fairly resilient. > If you had the copies set to > 1 then you wouldn't loose the block either, > unless you were real unlucky. > > It's just about pushing the odds back further and further. If you are super > paranoid by all means put in 48 drive, group them into 5 x 8 drive raidz2 > vdevs, have a bunch of hot spares, and enable copies=5 for blocks and > metadata, then duplicate the system and put the other box on another > continent and zfs send all you updates every 15 mins via a private > deadicated. This will all prove very resilient, but you will get very little > % storage from your drives, and have quite a large bandwidth bill 8) > > Oh and don't forget the scrub you disk regularly. BTW that would rebuild any > missing copies as well (eg if you increase the number of copies after data > is stored on the fs) > Well, no you wouldn't, because ZFS would never get to try to recover that error. Since that one block is bad, and you lost a disk, your underlying RAID-5 would not be able to recoverable, and you just lost the entire contents of the RAID-5. ZFS wouldn't be able to recover anything from it. The only time ZFS could recover from this scenario is if you scrubbed before you had your disk failure. Hard to predict disk failures.. What I'm trying to say (badly) is that this is redundancy that ZFS knows nothing about, so it cannot recover from it in the same manner that a 5 disk raidz can. If this happened to a 5 disk raid-z, you would lose just the corrupted block, rather than all your data. PS, top posting is still bad. Thanks for making me cut the context out of all these emails. Cheers Tom From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 15:50:01 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D71810657C4 for ; Mon, 1 Jun 2009 15:50:01 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id A137C8FC1D for ; Mon, 1 Jun 2009 15:50:00 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n51FnsCr031662; Mon, 1 Jun 2009 17:49:54 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n51FnqoH031659; Mon, 1 Jun 2009 17:49:53 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Mon, 1 Jun 2009 17:49:52 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: <3ED3189838484C8FBDECE5478A0DDFF4@uk.tiscali.intl> Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> <3ED3189838484C8FBDECE5478A0DDFF4@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 15:50:02 -0000 > Its all done on write, so if you update the file it will have multiple > copies again what is exactly what i said in the beginning. From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 20:28:24 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 993F110656BF for ; Mon, 1 Jun 2009 20:28:24 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (brucec-1-pt.tunnel.tserv4.nyc4.ipv6.he.net [IPv6:2001:470:1f06:c09::2]) by mx1.freebsd.org (Postfix) with ESMTP id 5520B8FC22 for ; Mon, 1 Jun 2009 20:28:24 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (localhost [127.0.0.1]) by muon.cran.org.uk (Postfix) with ESMTP id 2901619235; Mon, 1 Jun 2009 20:28:23 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on muon X-Spam-Level: X-Spam-Status: No, score=-2.6 required=8.0 tests=AWL,BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 Received: from gluon.draftnet (unknown [IPv6:2a01:348:10f:0:240:f4ff:fe57:9871]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by muon.cran.org.uk (Postfix) with ESMTPSA; Mon, 1 Jun 2009 20:28:23 +0000 (GMT) Date: Mon, 1 Jun 2009 21:28:19 +0100 From: Bruce Cran To: Eitan Adler Message-ID: <20090601212819.7fa6598e@gluon.draftnet> In-Reply-To: <4A22F7CD.2070500@gmail.com> References: <4A22F7CD.2070500@gmail.com> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.16.1; i386-portbld-freebsd7.2) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/BgQzk8W+yfZojiEAKH8FaXk" Cc: freebsd-hackers@freebsd.org Subject: Re: pkg_info segfault Revision: 193189 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 20:28:25 -0000 --MP_/BgQzk8W+yfZojiEAKH8FaXk Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sun, 31 May 2009 17:34:05 -0400 Eitan Adler wrote: > pkg_info --IwantAcookie > Segmentation fault: 11 (core dumped) > on FreeBSD 7.2-STABLE i386 getopt_long expects the array of options to be NULL-terminated, so it's walking off the end. -- Bruce Cran --MP_/BgQzk8W+yfZojiEAKH8FaXk Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=main.c.diff --- /usr/src/usr.sbin/pkg_install/info/main.c 2008-06-10 10:55:25.000000000 +0100 +++ main.c 2009-06-01 21:25:37.000000000 +0100 @@ -58,6 +58,7 @@ { "verbose", no_argument, NULL, 'v' }, { "version", no_argument, NULL, 'P' }, { "which", required_argument, NULL, 'W' }, + { NULL, 0, NULL, 0 }, }; int --MP_/BgQzk8W+yfZojiEAKH8FaXk-- From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 20:30:29 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 563F31065674 for ; Mon, 1 Jun 2009 20:30:29 +0000 (UTC) (envelope-from glen.j.barber@gmail.com) Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com [209.85.218.213]) by mx1.freebsd.org (Postfix) with ESMTP id D50FC8FC1A for ; Mon, 1 Jun 2009 20:30:28 +0000 (UTC) (envelope-from glen.j.barber@gmail.com) Received: by bwz9 with SMTP id 9so7894914bwz.43 for ; Mon, 01 Jun 2009 13:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=K40w5BwmamG5ncizuW0KqKPbZx5e5wzDxAg6UA7QkHU=; b=ozC2GZ3zei82iydK2vTa4oVfXfJweLvBKx4SDcxCudrE/Wx70xR1sU9v3MYtCuvy8j OrhF0btIBYdNEAuyw1vRt2tvswRde4120Z9v9gOBV5CDwtoxKRVRXdzi/Jfadm1QqnJ3 YMmKdMn4jlwmpaRDMY4UOKHOOKqGFCIytE0/0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=bI/xSoOdfxlJBkmOzFlEtKwomEBXpKnF83WIypXh6dZJ+xPRCf5qjpUnnbLeThANCU Omtr4cumLNBfmPWgrMm3aHUEvypwajFZy0nKfF7ztF7hkC+J5wx3fngWX3vv5methT+p iDcYSD+PhXOOres80IoS4uu0SBHTrPDmq65us= MIME-Version: 1.0 Received: by 10.204.65.17 with SMTP id g17mr5961730bki.193.1243888226786; Mon, 01 Jun 2009 13:30:26 -0700 (PDT) In-Reply-To: <20090601212819.7fa6598e@gluon.draftnet> References: <4A22F7CD.2070500@gmail.com> <20090601212819.7fa6598e@gluon.draftnet> Date: Mon, 1 Jun 2009 16:30:26 -0400 Message-ID: <4ad871310906011330l5a374b27gb4527006c1c47cfa@mail.gmail.com> From: Glen Barber To: Bruce Cran , Eitan Adler Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: pkg_info segfault Revision: 193189 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 20:30:29 -0000 On Mon, Jun 1, 2009 at 4:28 PM, Bruce Cran wrote: > On Sun, 31 May 2009 17:34:05 -0400 > Eitan Adler wrote: > >> pkg_info --IwantAcookie >> Segmentation fault: 11 (core dumped) >> on FreeBSD 7.2-STABLE i386 > > getopt_long expects the array of options to be NULL-terminated, so it's > walking off the end. > Hi guys, There was a PR submitted (about pkg_add) already about this, with a patch. I am unsure if the patch was looked at yet. -- Glen Barber FreeBSD Tutorials: http://www.dev-urandom.com From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 20:33:43 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94CB41065670 for ; Mon, 1 Jun 2009 20:33:43 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.159]) by mx1.freebsd.org (Postfix) with ESMTP id 1AAF48FC17 for ; Mon, 1 Jun 2009 20:33:42 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: by fg-out-1718.google.com with SMTP id e12so558589fga.12 for ; Mon, 01 Jun 2009 13:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:to:cc:subject:references :organization:from:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=KXsIpRxNg0jxjunboT1BkdfbPtZ+FSVI4+Q0SoTETDM=; b=MpbdD/oXXXqPlbZjydP2LLDJohFt8JRIoGGhwOf73DSmjgIUJs6a53IiY5UeqlAZTO TBzJLiO1H5EWUjZDvzTezUMg/891DONKmKi+snvW9zG/6p92X0glAeAoldBWo96o5HQ4 Zy9jaaAO5mVFH71a+jeJA+hT98jTZvBUZM4dk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=to:cc:subject:references:organization:from:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=bvhQkGwLTnrDhnQw5Is2afLCo1+qBnrec/YRF8BCyWrCkS3F/Zn9htBayrKgILDbyA dYgfC1wGpKy+SadPQISAeT6sz4fzUZRgGRh0CLvoBJCrI4WHnunGqtq47V9ZFkEOejjf lOAdpFb7/G//JMwdSrFmiVCLEaGz6QYdJ01Xc= Received: by 10.86.81.15 with SMTP id e15mr7060431fgb.35.1243888422181; Mon, 01 Jun 2009 13:33:42 -0700 (PDT) Received: from localhost ([95.69.172.207]) by mx.google.com with ESMTPS id l19sm9812680fgb.22.2009.06.01.13.33.40 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 01 Jun 2009 13:33:41 -0700 (PDT) To: Asmodean Dark References: Organization: TOA Ukraine From: Mikolaj Golub Date: Mon, 01 Jun 2009 23:33:38 +0300 In-Reply-To: (Asmodean Dark's message of "Mon\, 01 Jun 2009 10\:05\:46 +0400") Message-ID: <86oct7r8wt.fsf@kopusha.onet> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-hackers@freebsd.org Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 20:33:43 -0000 On Mon, 01 Jun 2009 10:05:46 +0400 Asmodean Dark wrote: AD> Hello, AD> We have cluster of FreeBSD VPN servers with running mpd3.18 and sometimes it crash: Do you really need a such outdated version of mpd while mpd5 is available in ports? AD> # uname -a AD> FreeBSD vpn 7.1-STABLE FreeBSD 7.1-STABLE #13: Wed Mar 18 14:53:13 YEKT 2009 root@vpn:/usr/src/sys/i386/compile/kconf i386 AD> # dmesg AD> Fatal trap 12: page fault while in kernel mode AD> cpuid = 1; apic id = 01 AD> fault virtual address = 0x8 AD> fault code = supervisor read, page not present AD> instruction pointer = 0x20:0x806dcb88 AD> stack pointer = 0x28:0xe70775c4 AD> frame pointer = 0x28:0xe70775e8 AD> code segment = base 0x0, limit 0xfffff, type 0x1b AD> = DPL 0, pres 1, def32 1, gran 1 AD> processor eflags = interrupt enabled, resume, IOPL = 0 AD> current process = 22 (em0 taskq) AD> trap number = 12 AD> (kgdb) bt AD> #0 0x8063d6b0 in doadump () AD> #1 0x8063dc44 in boot () AD> #2 0x8063e0ca in panic () AD> #3 0x807dab3d in trap_fatal () AD> #4 0x807daeba in trap_pfault () AD> #5 0x807db7bd in trap () AD> #6 0x807c2a3b in calltrap () AD> #7 0x806dcb88 in rn_match () AD> #8 0x806ddc8a in rn_lookup () AD> #9 0x8070e460 in ipfw_chk (args=0xe70175fc) at ../../../netinet/ip_fw2.c:1894 AD> #10 0x80710c3d in ipfw_check_in (arg=0x0, m0=0xe7017700, ifp=0x91c5a800, dir=1, inp=0x0) at ../../../netinet/ip_fw_pfil.c:125 AD> #11 0x806dc20f in pfil_run_hooks () AD> #12 0x80713984 in ip_input (m=0x91954c00) at ../../../netinet/ip_input.c:416 AD> #13 0x806ec0d9 in ng_iface_rcvdata () AD> #14 0x806e9570 in ng_apply_item () AD> #15 0x806e8569 in ng_snd_item () AD> #16 0x806e9570 in ng_apply_item () AD> #17 0x806e8569 in ng_snd_item () AD> #18 0x806e9570 in ng_apply_item () AD> #19 0x806e8569 in ng_snd_item () AD> #20 0x806f16a7 in ng_ppp_proto_recv () AD> #21 0x806f3ed2 in ng_ppp_rcvdata () AD> #22 0x806e9570 in ng_apply_item () AD> #23 0x806e8569 in ng_snd_item () AD> #24 0x806e9570 in ng_apply_item () AD> #25 0x806e8569 in ng_snd_item () AD> #26 0x806ee3c3 in ng_ksocket_incoming2 () AD> #27 0x806e969d in ng_apply_item () AD> #28 0x806ea8aa in ngintr () AD> #29 0x806dab72 in swi_net () AD> #30 0x8061e265 in ithread_loop () AD> #31 0x8061adf5 in fork_exit () AD> #32 0x807c2ab0 in fork_trampoline () It looks like the kernel crashed when ipfw was looking for the packet's src/dst in a table. The table might have been corrupted (being modified?) at that time. Do you have some automatic blocker or some other script that periodically add/remove IPs in a ipfw table? AD> What can I do with it? Are additional info needed? It is a bit strange for me that in the bt output the file source information is displayed only for several functions. Do you have the kernel and all modules built with the debugging symbols? If you don't I would recommend to rebuild the kernel so I would be able to provide bt (from the next crash :-) with all necessary info available. Do the bt output for other crashes looks the same? -- Mikolaj Golub From owner-freebsd-hackers@FreeBSD.ORG Mon Jun 1 21:04:57 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D56D5106568C for ; Mon, 1 Jun 2009 21:04:57 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (brucec-1-pt.tunnel.tserv4.nyc4.ipv6.he.net [IPv6:2001:470:1f06:c09::2]) by mx1.freebsd.org (Postfix) with ESMTP id 912F58FC1D for ; Mon, 1 Jun 2009 21:04:57 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (localhost [127.0.0.1]) by muon.cran.org.uk (Postfix) with ESMTP id 95C0419235; Mon, 1 Jun 2009 21:04:56 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on muon X-Spam-Level: X-Spam-Status: No, score=-2.6 required=8.0 tests=AWL,BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 Received: from gluon.draftnet (unknown [IPv6:2a01:348:10f:0:240:f4ff:fe57:9871]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by muon.cran.org.uk (Postfix) with ESMTPSA; Mon, 1 Jun 2009 21:04:56 +0000 (GMT) Date: Mon, 1 Jun 2009 22:04:53 +0100 From: Bruce Cran To: Glen Barber Message-ID: <20090601220453.7613cd80@gluon.draftnet> In-Reply-To: <4ad871310906011330l5a374b27gb4527006c1c47cfa@mail.gmail.com> References: <4A22F7CD.2070500@gmail.com> <20090601212819.7fa6598e@gluon.draftnet> <4ad871310906011330l5a374b27gb4527006c1c47cfa@mail.gmail.com> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.16.1; i386-portbld-freebsd7.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, Eitan Adler Subject: Re: pkg_info segfault Revision: 193189 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2009 21:04:59 -0000 On Mon, 1 Jun 2009 16:30:26 -0400 Glen Barber wrote: > On Mon, Jun 1, 2009 at 4:28 PM, Bruce Cran wrote: > > On Sun, 31 May 2009 17:34:05 -0400 > > Eitan Adler wrote: > > > >> pkg_info --IwantAcookie > >> Segmentation fault: 11 (core dumped) > >> on FreeBSD 7.2-STABLE i386 > > > > getopt_long expects the array of options to be NULL-terminated, so > > it's walking off the end. > > > > Hi guys, > > There was a PR submitted (about pkg_add) already about this, with a > patch. I am unsure if the patch was looked at yet. > The PR is bin/133473 (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/133473) and contains the same patch for pkg_info. -- Bruce Cran From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 03:14:27 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75504106564A for ; Tue, 2 Jun 2009 03:14:27 +0000 (UTC) (envelope-from jchambers@ucla.edu) Received: from out-56.smtp.ucla.edu (smtp-11.smtp.ucla.edu [IPv6:2607:f010:3fe:102:101c:23ff:febf:cfa7]) by mx1.freebsd.org (Postfix) with ESMTP id 5837E8FC13 for ; Tue, 2 Jun 2009 03:14:27 +0000 (UTC) (envelope-from jchambers@ucla.edu) Received: from mail.ucla.edu (mail.ucla.edu [169.232.48.151]) by smtp-11.smtp.ucla.edu (8.14.3/8.14.3) with ESMTP id n523EFJC010540 for ; Mon, 1 Jun 2009 20:14:15 -0700 Received: from computer-2.local ([149.142.36.207]) (authenticated bits=0) by mail.ucla.edu (8.14.3/8.14.3) with ESMTP id n523EEPY019444 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Mon, 1 Jun 2009 20:14:15 -0700 Message-ID: <4A249906.8050802@ucla.edu> Date: Mon, 01 Jun 2009 20:14:14 -0700 From: Jason Chambers Organization: UCLA User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Probable-Spam: no X-Scanned-By: smtp.ucla.edu on 169.232.46.244 Subject: Monitoring throughput of PCIe lanes X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 03:14:27 -0000 Hello all, I'm wondering if there is currently a way to monitor the throughput of a PCIe lane or group of lanes associated with a device ? I've done a little exploring of the source and man pages but have yet to find anything that seems to relate in an obvious form. I wonder if netgraph could somehow be used for this ? Thanks, --Jason From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 04:31:09 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65045106566C for ; Tue, 2 Jun 2009 04:31:09 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outN.internet-mail-service.net (outn.internet-mail-service.net [216.240.47.237]) by mx1.freebsd.org (Postfix) with ESMTP id 4DB978FC0A for ; Tue, 2 Jun 2009 04:31:09 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 39DF3322D9; Mon, 1 Jun 2009 21:31:09 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id AB8672D600F; Mon, 1 Jun 2009 21:31:08 -0700 (PDT) Message-ID: <4A24AB0C.70506@elischer.org> Date: Mon, 01 Jun 2009 21:31:08 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: Jason Chambers References: <4A249906.8050802@ucla.edu> In-Reply-To: <4A249906.8050802@ucla.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Monitoring throughput of PCIe lanes X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 04:31:09 -0000 Jason Chambers wrote: > Hello all, > > I'm wondering if there is currently a way to monitor the throughput of a > PCIe lane or group of lanes associated with a device ? > > I've done a little exploring of the source and man pages but have yet to > find anything that seems to relate in an obvious form. > > I wonder if netgraph could somehow be used for this ? > > > Thanks, > > --Jason > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" unfortunatly PCIe traffic occurs at a level below that at which the OS can really monitor. there would have to be some hardware support I think. THEORETICALLY you could get every device driver to report back how much traffic it has sent to each device and you could aggregate that by bus bt it would be a lot of work and overhead ad wouldn't really be agood measure of burst throughput... From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 05:44:52 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE0761065679 for ; Tue, 2 Jun 2009 05:44:52 +0000 (UTC) (envelope-from dan@dan.emsphone.com) Received: from email1.allantgroup.com (email1.emsphone.com [199.67.51.115]) by mx1.freebsd.org (Postfix) with ESMTP id 4CC3D8FC20 for ; Tue, 2 Jun 2009 05:44:52 +0000 (UTC) (envelope-from dan@dan.emsphone.com) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by email1.allantgroup.com (8.14.0/8.14.0) with ESMTP id n525SBYR092438 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 2 Jun 2009 00:28:11 -0500 (CDT) (envelope-from dan@dan.emsphone.com) Received: from dan.emsphone.com (smmsp@localhost [127.0.0.1]) by dan.emsphone.com (8.14.3/8.14.3) with ESMTP id n525SBwc039194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 2 Jun 2009 00:28:11 -0500 (CDT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.14.3/8.14.3/Submit) id n525S9hh039193; Tue, 2 Jun 2009 00:28:09 -0500 (CDT) (envelope-from dan) Date: Tue, 2 Jun 2009 00:28:09 -0500 From: Dan Nelson To: Julian Elischer Message-ID: <20090602052809.GF90077@dan.emsphone.com> References: <4A249906.8050802@ucla.edu> <4A24AB0C.70506@elischer.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A24AB0C.70506@elischer.org> X-OS: FreeBSD 7.2-STABLE User-Agent: Mutt/1.5.19 (2009-01-05) X-Virus-Scanned: ClamAV version 0.94.1, clamav-milter version 0.94.1 on email1.allantgroup.com X-Virus-Status: Clean X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 (email1.allantgroup.com [199.67.51.78]); Tue, 02 Jun 2009 00:28:11 -0500 (CDT) X-Scanned-By: MIMEDefang 2.45 Cc: Jason Chambers , freebsd-hackers@freebsd.org Subject: Re: Monitoring throughput of PCIe lanes X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 05:44:53 -0000 In the last episode (Jun 01), Julian Elischer said: > Jason Chambers wrote: > > I'm wondering if there is currently a way to monitor the throughput of a > > PCIe lane or group of lanes associated with a device ? > > > > I've done a little exploring of the source and man pages but have yet to > > find anything that seems to relate in an obvious form. > > unfortunatly PCIe traffic occurs at a level below that at which the OS can > really monitor. > > there would have to be some hardware support I think. Solaris has a busstat command that can print a huge number of low-level counters, including PCI DMA counts. If it's supported under OpenSolaris it should be easy to check and see whether it's dependant on Sun hardware or works with any PC (just boot it up and run busstat -l). -- Dan Nelson dnelson@allantgroup.com From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 06:36:34 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0015D1065673 for ; Tue, 2 Jun 2009 06:36:33 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from f47.mail.ru (f47.mail.ru [194.67.57.54]) by mx1.freebsd.org (Postfix) with ESMTP id B09238FC20 for ; Tue, 2 Jun 2009 06:36:33 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from mail by f47.mail.ru with local id 1MBNbs-0005NL-00; Tue, 02 Jun 2009 10:36:32 +0400 Received: from [78.29.2.27] by win.mail.ru with HTTP; Tue, 02 Jun 2009 10:36:32 +0400 From: Asmodean Dark To: Mikolaj Golub Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: 78.29.10.8 via proxy [78.29.2.27] Date: Tue, 02 Jun 2009 10:36:32 +0400 References: <86oct7r8wt.fsf@kopusha.onet> In-Reply-To: <86oct7r8wt.fsf@kopusha.onet> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: X-Spam: Not detected X-Mras: Ok Cc: freebsd-hackers@freebsd.org Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Asmodean Dark List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 06:36:34 -0000 >> Do you really need a such outdated version of mpd while mpd5 is available in ports? Yes, we need mpd3 because there are many our custom patches for it (some RADIUS functions, bugfixes etc). >> Do you have some automatic blocker or some other script that periodically add/remove IPs in a ipfw table? Yes. For some our users we use ipfw-based rules (SMTP port blocking, enabling transparent proxy and other). Mpd ifaceup script contain something like this: if [ "$FilterId" = "no_transparent" ]; then $IPFW table 3 add $IP fi And, in ipfw.rules: add allow tcp from table(3) to any dst-port 80 in recv ng* Why table can be corrupted? ipfw check added address, isn`t it? >> Do the bt output for other crashes looks the same? It`s a first dump obtained. There is some problems in receiving it, because all servers is network-booted (via PXE) and have no usable dump devices :) This dump obtained with USB flash device connected to server. Also, crashes is not often. Thank you From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 07:46:27 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B41EE106564A for ; Tue, 2 Jun 2009 07:46:27 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.157]) by mx1.freebsd.org (Postfix) with ESMTP id 3B3E28FC08 for ; Tue, 2 Jun 2009 07:46:26 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: by fg-out-1718.google.com with SMTP id e12so634549fga.12 for ; Tue, 02 Jun 2009 00:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:to:cc:subject:references :organization:from:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=eiD/VVAvurjdwfNZEBOTh63pXeeNblQA2GqZ81nFoq8=; b=hqpNysdqh2o2nhCI2f4VBu20C0wav1q5tL7pZ/RqkPuDkA4af+xZm8Ki/0LKaJvrqT gmUHrTegJtpYZeTCt7s/kuSS+DX/gPeN9QiEC7e2r/T8ncfiQYbLuvqqgv3k2G2QedNT RAbE4L+AawqAVef6HS56cKK39uDqRZfUfSBTo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=to:cc:subject:references:organization:from:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=rbSxr5YTP342d1oxkaWprsdL1D52alGOiLIDaDj5gProzYlyjbCspNomlSfCDIeGnW 4UuHuUQ8IDlXr2HbeoQxVb9WvCZkwlwMItvS/oKjZCWbdA7zf4eb7J9+25nSV8ujEKBc 0cYkNusE3oYcCeIxuGtNwoa6L2LN3XI03X6A4= Received: by 10.86.68.1 with SMTP id q1mr7714734fga.10.1243928786118; Tue, 02 Jun 2009 00:46:26 -0700 (PDT) Received: from localhost (ms.singlescrowd.net [80.85.90.67]) by mx.google.com with ESMTPS id d4sm13216348fga.19.2009.06.02.00.46.25 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 02 Jun 2009 00:46:25 -0700 (PDT) To: Asmodean Dark References: <86oct7r8wt.fsf@kopusha.onet> Organization: TOA Ukraine From: Mikolaj Golub Date: Tue, 02 Jun 2009 10:46:23 +0300 In-Reply-To: (Asmodean Dark's message of "Tue\, 02 Jun 2009 10\:36\:32 +0400") Message-ID: <813aajkrhs.fsf@zhuzha.ua1> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-hackers@freebsd.org, Mikolaj Golub Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 07:46:28 -0000 On Tue, 02 Jun 2009 10:36:32 +0400 Asmodean Dark wrote: >>> Do you really need a such outdated version of mpd while mpd5 is available in ports? > Yes, we need mpd3 because there are many our custom patches for it (some RADIUS functions, bugfixes etc). > >>> Do you have some automatic blocker or some other script that periodically add/remove IPs in a ipfw table? > Yes. For some our users we use ipfw-based rules (SMTP port blocking, enabling transparent proxy and other). Mpd ifaceup script contain something like this: > if [ "$FilterId" = "no_transparent" ]; then > $IPFW table 3 add $IP > fi > > And, in ipfw.rules: > add allow tcp from table(3) to any dst-port 80 in recv ng* > > Why table can be corrupted? ipfw check added address, isn`t it? It might be that when ipfw was looking for IP in the table it was being modified by ifaceup script at that time. ipfw has lock protection so this thing should not have happened but... Could you run something like this? ps -auxl -M /path/to/vmcore -N /path/to/kernel.symbols We could look if at the moment of the crash some process was running that was adding/removing ipfw table. Other good and simple thing is to run crashinfo(8) utility and provide its output. If it runs flawlessly it should contain ps output too among other useful information. >>> Do the bt output for other crashes looks the same? > It`s a first dump obtained. There is some problems in receiving it, because all servers is network-booted (via PXE) and have no usable dump devices :) This dump obtained with USB flash device connected to server. Also, crashes is not often. So we could try to get as much info from this dump as we can :-). Could you post here the whole output of kgdb from its start, not only bt (I mean things like "Reading symbols from..." and the command line itself)? Also you can try in kgdb session: fr 9 list p *cmd p cmd->arg1 p a -- Mikolaj Golub From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 09:41:44 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D47CE106566C for ; Tue, 2 Jun 2009 09:41:44 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from f241.mail.ru (f241.mail.ru [194.186.55.247]) by mx1.freebsd.org (Postfix) with ESMTP id 021A18FC0C for ; Tue, 2 Jun 2009 09:41:42 +0000 (UTC) (envelope-from asmodean@list.ru) Received: from mail by f241.mail.ru with local id 1MBQV2-0000al-00; Tue, 02 Jun 2009 13:41:40 +0400 Received: from [78.29.2.32] by win.mail.ru with HTTP; Tue, 02 Jun 2009 13:41:40 +0400 From: Asmodean Dark To: Mikolaj Golub Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: 78.29.10.8 via proxy [78.29.2.32] Date: Tue, 02 Jun 2009 13:41:40 +0400 References: <813aajkrhs.fsf@zhuzha.ua1> In-Reply-To: <813aajkrhs.fsf@zhuzha.ua1> Content-Type: multipart/mixed; boundary="----1NdBnQhI-0NIkMSEFxuW3MCry:1243935700" Message-Id: X-Spam: Not detected X-Mras: Ok Cc: freebsd-hackers@freebsd.org Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Asmodean Dark List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 09:41:45 -0000 ------1NdBnQhI-0NIkMSEFxuW3MCry:1243935700 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit I`ve attached the requested information. I hope this helps. -----Original Message----- From: Mikolaj Golub To: Asmodean Dark Date: Tue, 02 Jun 2009 10:46:23 +0300 Subject: Re: 7.1-STABLE crash On Tue, 02 Jun 2009 10:36:32 +0400 Asmodean Dark wrote: >>> Do you really need a such outdated version of mpd while mpd5 is available in ports? > Yes, we need mpd3 because there are many our custom patches for it (some RADIUS functions, bugfixes etc). > >>> Do you have some automatic blocker or some other script that periodically add/remove IPs in a ipfw table? > Yes. For some our users we use ipfw-based rules (SMTP port blocking, enabling transparent proxy and other). Mpd ifaceup script contain something like this: > if [ "$FilterId" = "no_transparent" ]; then > $IPFW table 3 add $IP > fi > > And, in ipfw.rules: > add allow tcp from table(3) to any dst-port 80 in recv ng* > > Why table can be corrupted? ipfw check added address, isn`t it? It might be that when ipfw was looking for IP in the table it was being modified by ifaceup script at that time. ipfw has lock protection so this thing should not have happened but... Could you run something like this? ps -auxl -M /path/to/vmcore -N /path/to/kernel.symbols We could look if at the moment of the crash some process was running that was adding/removing ipfw table. Other good and simple thing is to run crashinfo(8) utility and provide its output. If it runs flawlessly it should contain ps output too among other useful information. >>> Do the bt output for other crashes looks the same? > It`s a first dump obtained. There is some problems in receiving it, because all servers is network-booted (via PXE) and have no usable dump devices This dump obtained with USB flash device connected to server. Also, crashes is not often. So we could try to get as much info from this dump as we can . Could you post here the whole output of kgdb from its start, not only bt (I mean things like "Reading symbols from..." and the command line itself)? Also you can try in kgdb session: fr 9 list p *cmd p cmd->arg1 p a ------1NdBnQhI-0NIkMSEFxuW3MCry:1243935700 Content-Type: application/octet-stream; name="crashinfo.tar.bz2" Content-Disposition: attachment; filename="crashinfo.tar.bz2" Content-Transfer-Encoding: base64 QlpoOTFBWSZTWe1unYAEp5//kP///+B6////////+v////QEAAAIYkhfAH0aHo9dsADOt5AAAAAA AAAAAAAAAAAhAAGdUkMArzkwLKktyD4AAAAAAAAAAAAfQAAAAAAA++C8Jfcd3R9BvGcq7hmrTEvc 7eercvcHiwAB5XABR0vYMUdA72evW+wANCgAAAAAqQoAKAVQKFFABQAVAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAACAAAAAAdAAOJJ0ADz6ugCgAPbAGh wAAAAAAAAAAAAAAAAAAAB5gJwAigAAC3TnLA0Za0ULrnBWlbWYXsAYAAAAAAE+2Arj0AAAC3ewND 5A+AAAAB9h5QeABn0PSpX2+uAAAoAEB8t90BJ61pW9upV1Wpts0WmiDdxjmsWLVsNNmMKdxlBjc7 fLA6CbRPn27x25y5wcADa9e5l2ATTDilCR5ABrIA08gDVZjADmyQVmYoDk0CrwAoADnAAD0KSegE 7jg6gV4wce9MYYMADHpfT3ffJooDkAGW2AJcjESpmwAAATjBoPXIdASeg0KzYBJyAaT28u+fY6+0 sqgu+rYzYGABPeM8AAeQAKChyzMKEXNgoVZgaAlzZEpLJ06FMjSjFhKK5GiLly8vntCkHoK++xvH u+AD6AAD33s3ydffAAAAA58HwAPmfW95DIHIASDIuYAa0AdSAF0wA52BRmwD15AHdvIAC26DIGva PRHdwcACzsgZDkyAyAHOwAZUAcnQAAbbNiQOQDWQDXIAaxepTsKva8iICABd225ADkASBRkFBQdB WbAOQ0rEGTkobLAAcgBVx51SlQBoK4BqGwYAG5cnoKPI0DIAcgCQ5C5gCQDXJlRmwHIBu4zOodAe qVfPdHcAAAFB73llwAAAAPbweABfLuQu1DkAkAaHIBjMAcgVIAydBoKBIDkAs3KrwAAAbRV49IgQ AGdyAcvVHi5YUUA3m5AoA8bczrtWAB6JAJADyAkeQ4gCQAB6vnh0q+U2y+sWjjdFAAMAAANsAAAP qID0IHQp8q6r1AAAA+M6qjTJCB9BRgAB33bb6XsqgGW23vXB8hb7qHyy1rYh8AAAAHQAAAAGcrp6 vXjwPoLPgCAFUAA4O5qDIVXFS7Jrttg5VAaFgBkRz31zqw9zq43Q0B92vbUpLbaAAANQH19HkAeh l7zwAAAAAAAAAAAAAAAAAAAAAAAAAAdKAAAAAAANT0TTJkEkEAggmhCaaYqbRMR6jEAGgAAADTIG Kp+mnpmqSFCRNJ6aJlBqMyaAgBpphMgyMmTAAEAyZGETZqEJEIRNAkyYjU8pppkaDQ0BoGgAAAAA ACKftqqUkJtBKeo2o0GjIGjIDIBoADIAA0AANAANP1JIhARRqYgibUBoYjQeo0NAAAADAJpkABoE mpCBNAgCBMJoAmmmmgmRpiEyNMjQjBDKZpppPQ01H/8/+fqPXy//0IZEhPvviSWPzVCH5PsoIf+g mWeWX5fv/N+Ge02KAIbAwhJANGQDZJJ/851JIEMMhA2QkMkhCfoSBLM2YQgcThChImgISSBChhaS GlgWPCi5QJJISwMIABIshCCklkgWZJISABUSARjC0KhUtaoSEgEliQEIAUhCSAUMJGRJJIQgRYEh FhAhzAJ//dwZ6Q7A/4hgDAGh+pnFDla1FdO3stxhqbqAiyRYoxkUVYopTKIwyzJMsuMMy25DFUiC 4VSUiiOwcQsAIIWlyVCpBQBEK/o/9A/H/if/fZqKXv/ztj/lVz/t3lNs1rL/2wa5Yyo/+apv2d38 Dw7315GnAp1Gw8/P/5q1zyz/6t7Y6FqyrDWtJH7L84Rmj6GMD+uPShINtZVv/AYwl1X/+MMon+ro uVX+f7Mqc9odrTAUPAPZWX/Tt48uznf2e3b08ite9xa/Zb9//PHH/h/f5/7Pn4e739MufI8z337N f/3P4/J5Y7d6/462915//b9ePfXs7cacPkOnmQh/4MIHqs4mjt7qrw3xesZNr7Ww3zMXsXbF6vbL LLCqios0z+jS6hjRmLWu2vYov3mfm1PzyOwyJ05jQlDm997EzwXSKaIUqJd/wqzCGvLF7z0XPlDx xz48dTXGXiVitf7jgDDiwrnh1t1ymtX8eXH41kyErtoyIf95tOoQsBU72cE+bvvWPA+HOxjc3Jrl 1yOyBDxQgEOvuqvOgrzt3/d+Wsv5VL1/GoFZzc3lTX8dcJrly3t73L1uKqtlojrkZa2TJ0ohIaMC rVqyb7NIrA1ZIA8VLWBBHugQkEEg+9wg+10GDqprmN85jGMu+DdpZOMkOAAjTwvB5ua/Na9VqtV6 rWteiKLFgCIdtUHBhowDRUKQJJwZrrUJwQLsKcmTjtR4/sDmk7Uh7cDyqfRXmP/77q+X3/8IKRhb z4EtIwZ2IVBuMokSeO4EAKLRng5JYERiCRggJDSrtiFVCmHtmWvdj1Hq9ff7bd1Uq090MkPXWZii 6TLLg4YXmyZ65WUt8PPLiJMvRV/9ZoYlwffaz4VUnIUYGohzQUFBuf4FsaXt9Fc7zB160EgCrIBS UwhTTKZBZTKRZZIEJL52L4w5YmC6WZaGUfnt2G/e/Kk0wepp0uy1utgOfhr3zI0ym0Srfc+rh/lc r0g/Ar1suTn+EslFP316+yg7enl5D5SuloWVRtW9rIS2ZqvJanYyxXT6Mse++VjPbw4CJfIw0Ho4 fR0LFzt7px7dbk0v9fhPERM/8u3ufGH+tzcfTg4IuCoX40w54mgPf8y/L+KC49H6nwjTur5yAztf 4Sv0qelEN+GRIFEbluZkW6hfcWfEZUKstOjKyz+Lx1F1vc33Duq5hiYd2CqcB1L3U3VJd7W9/ZAO H7+w+wVC3OmK149ehau0mfzd976FSAEA57ttZbyQ8Mdtqk859/jPt997ypzN2VdPbfTesSMEQRBE EQRBEEQRH8iVidufrtRaCokRIiREiJESIkRIiREiXolCREiJESIkRIiREiJESIkRIiREiJESIkRI iREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkR IiREiJESIkRIiREn1VRESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJES IkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJE SIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJ ESIkRIiREiJESIkRIiREiJESIkRJVUREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJKqiIkRIiR EiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJGqJQkRI iRqiUJESIkRIiREiJESIkRIiREiJESIkaolCREiJESIkRIiRElVRESIkRIiREiJESIkRIiREiJES IkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJE SIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiSqoiJESIkRIiREiJESIkRIiREiJESIkRIiREi JESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiRE iJESIkRIiREiJESIkf1UShIiREiJG1EoSIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJE SIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRJVUREiJESIkRIiREiJESIkRIiREiJESIkRIiREi JESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiRE iJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREjVEoSIkRIi REiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRI iREiJESVVERIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIk RIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESI kRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJES IkRIiREiJESIkRIiRqiUJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJ ESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREi JESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiRE iJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiR EiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIi REiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiREiJESIkRIiRElVRESIkR IiREiJGJiJnV7wWy2vZG2zUu71dMSEmbyy7cJurJrK1YzWStZDNZWSW7dk1UmVN8Z3nXDpwnnpuk 3Ou+bztLmxdS43rrrnGdx2yv/NNkROeO+TU5ltIyrtrEGlDoN+S/j4Bft/j9dV+3+b+X+OQ76T4h zr3Pp8qqqrzqrVVVSdW77Xyc33PrdT5vdb838bFuK8XiNh4vF48azy+7T3h8PR+MPyJIosqSST4R AIE+VkIpJIEPSwgAQZzqEkgSSAcDyon6EgH1MLsA+sOaVUaGVQ1btobyuRfbfCWMA0qoALIKERgK oRGCwWQWQWQWQVZBZBZBZBZBZBZBZBZBZBVkFkFkFkFkFkFkFkFkFkFWQWQWQWQWQWQWQWQWQWQV ZBZBZBZBZBZBZBZBZBZBVIKEgskIoEWQUgpABSSAsAFJISoSAECQF+6iEKkgsZnUhACBIH8owI/y 1AgSBfh2+ompCB830/pfY//lvr1+/t/W/oei+znMHT8HLv2McsZOfvwa181p91yuP5tDXr8n/fbT 03/xZN8WcbwoAAAAH+0WtYDCRAUp0XG5vbLuuWrM//SLAFxUZVMC4rN7Gne9NWcZsuAgINnAvMzU aKx606i42k7c/ugrcT3va9znLp5FExUhM4TH9YwLxD5zpETDu7rWh4oUkuNfpFnmFwRm7cRkydlv 1e69TF4j+6RuXPK+GRkpL4uBT21sZd7w1ZyWAD4vGkCOky8xjD+I+GXJKIBRk4JyVI862XvUBcxE aNnqd5KMlisai/6LmuJy1m1Kyvmtl+jXihKV8cszEiLm8W3utou83Cvm3JA1q9Lm8qMtfiytb31+ bfE58xRFzDIYSmCOskikBNZoilVc1jQM4SEP0q4y0VF5/cWD3utrBTawRFD0ujCcp93fF0vetZmr Et7WJS8qFt+LtFes1eg4xIphdy+2lUvGDfD7UEY3HvlPZIaKTZGXKnbCMWYtfxI2y2lTrLDJw/Gs 1Wf2a5XeNH7gh6RFWREBERIoCnd2/8p8A55z/nP+flt+zOtZ+j5ZCtezpRJIT0MhALJOxACmSB58 2seFYSRcqp8agujJMISS7I1e2mTna7J4oFkzSa62thhDNIUl7NsrXhTppnYztU1TFi1WHMyveaph MxkpFmiAWSSmZXLWNUil8VmzVwzNIGTIGaEl2EWSBSXpq1a2kCEwwIKSBhM2XZKQM2TCU4tQWbts 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 JJJJJJJI+c3cnLvggkAkkkkhJJJJAAABLd7xUYRZ3MnNMSf2iNOcLVxf92ZmOdf7tSHnmOERMhvg TIoe4ebqbWVUxdeWTETHuIjceB8+38nJz4v+dPV5V+1tZkvhsV77Kh11uzq3/Dvv13N11y39F+ub 5ScT2tCKsI8xLJGI0CdapWKda5ssnpaNarhVhtH62hHntumJ7y3/VVBmSIPF6ZNjAg9qpS+dU+s+ kDf5DywdOvbb0W3yyv9nAfy9//xxDga+grpxty9RX6nlfKt5nzVbNwDRtvIza3d724ex758xEf6g W/FrDf4AFsS+0zxm3zcPEcxGQQhdtbsLf+rb+huP4MzGsflNvvN1jiQGSQovLrxkjucX/W0uRYYc 9rfe+NRhe6vZFGeue/IimW0Z5Xd75uVVziIerrU+Ezqd13nPetGje/UVLzXOcjQd777U1rtfPLJB 276sK2QqCM3ZN2QveoXEmjJLCYkGFmSWfpZ93X9H1z6scydWG9cVSyW3tY4jQGC1wbEL5QkKEqnt AaWwSosZIKCZ4sjaHcyM7i/ZfM0rFbd3DLgamKzvrlnrrvuGzwUiCSIrBRgMVSKMiA897+6XhNoQ sJasl87s2vlrZcrLLZISP5ku7cJA8burbZbnvb+/zc1KpL5UhsRUrJ2WzJkpbJIWA77WijpQUl6a pCqaKpoXkw153M16/uVrX3Xrda1+t6u799/Xe96AAAAAASSSSQAAAkkfkk6Ad6AAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAB3ve973ve973ve973vegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3ve973ve973 ve973vegAAHe973ve970AAAAAAPO973ve973ve973ve973ve973ve9AAAO973ve973ve973ve973 ve973ve973ve973ve973ve973ve973ve973vfO973ve970AAAAAAPO973ve973ve973ve973ve97 3vezMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyAAAd73 ve973ve973ve973ve973ve973ve973szMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM1vi1bhcSr3fTZ 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 JJJIEkkkgSSSSPOebEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkj7z32SSSBJJJIEkkkgSSSSBJJJI EkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgS SSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkgSSSSBJJJIEkkkj+Ie+ySS QJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJH p77JJJAkkkkCSSSQJJJJHp77JJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCS SSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkenvskkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkC SSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJ JJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJHp77 JJJAkkkkCSSSR6e+ySSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSR6e+ySSQJJJJAkk kkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSR6e+ySSQJJJJHp77JJJAkkkkCSSS QJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJHp77JJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSS SR6e+ySSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCS SSQJJJJAkkkkCSSSR6e+ySSR6e+ySSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJ JAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkenvskkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJ JJAkkkkCSSSQJJJJAkkkkenvskkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQJ JJJAkkkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkenvskkkCSSSQJJJJAkkkkCSSSQJJJJAkkkkCSSSQ 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 sriqjni+WKcziYEnImfkBYsUY/f7aqSSSSYkkK479P83Z6ef8gAABplaqrbIDV8Cwg0f0Mp+Ayf+ HDXK3KISimqpvsewhhCES5QhTGWsmHO79tanYtkKFN4ictuImdXOs691NvodMsWba1cTnpTw2tu5 zMCSEuyTNgECmBoJzqhM6JLoFMAIethJJM0IHBkCmBZphhIQDUAAAqpIYrLz2tc2q99HFtrUYrLb hjXGuptFCF0AhqkgGEkAshJMkJJkkFJCBokJDNCSc+UCS//0SH/2SSBBnHltjnbnfhva3J5889r4 p0tlnjPljaBJfW+me2ABZOGQFRE059OrAWWcbVUkaRIydyRz3F+EQ43fpS7CplzqYo4nf/HT/FP3 JFgEiDXr5lTKmqGi0tYaq1VTa023nWsOEzm0xMTcTHTE7bF1Xk1qVt1ssxnLO28Z1dKrUw7S3MXj ETszFxdstpirrbKl27optJrRVWi6rqeNVOHTGOaxOxeZds3mGjspbki1mzNrhedUzbczEqHkzTmr dWieW5TnOeXCzhrXNaVXWdpMTdsXNZtSusjZ0G1zE3brJbtu1VKtplVubq5jdbmVU2tZx1TO3W2t t1ubc0vNN1EtVpN1ilrTnPJ3bFazbZWp4dTttbzONNjOq3NXXNuyrZ4ebM67XnOzLqbdNuXbeNNd bnaWdq2cO1m3Opbctc3MNtnMtLW3O1uuUm4O1Mdp26aKtbO3cRdazzAWrRjJd2cVNw5gzN41rOWJ ytabeUx1s3nbwWra6zOTax5bGN5tLV128lmHJHWLVddMM7lM10Nba22zht01scnOqcdUXN40Ls3b ku01uzzHna1a3LrTtzmZTeZbzPKO1s7eXauMrW6rnNeXbmdpMzWnmbNuyqy3LVdjq3du3Nxnbc5u blc3btnUZ23ZMXZQ0205xjcVtXW8Ortt11EWTC7ZaNG26st3bps1vz979pJ+pnXPxvfXXs111111 11qFmAKl21tbYu9OqdWhOxpS8gj/Tal6iUlz3inyPScTJKUKPXr3Vcx7vb985mcW/MRAErJ1sgKl gE2gCEAoQEvNZVTawkkUuGGSApIAosCIsEkiySCIQATKpQkAUFBgIJEWMURWKkBUgyQQFgCIqkGA IQYAsEZBFSQjIpAWSAsECCISSTMahbmBJCFuj2cEopDHyVC6gphrBu71w5vLFi/HCZZZ8YjGDvzz ynkyvs20klzgiv71U/Tz86jZ7vkTsn+Kfr+X9499jbPXvvv4crU+ASZJJG5CVzHW/ne87sWyz674 xjGMVnn1Cod+WLDFUwbWpFAr1Sqj4IWAtWaXbCtmTDJiQEl0mfDg7j0tNb8uvHLmXHS1q3CYxYtL /6TaEhuHGIpzYVMqlAWqq1nr1r3H375+vv0AAAAAAAAAAAAAAAAAAAAAAAAAAO61MDtpTZq5OO9F CBLNREg4SudFMDCdGQzZC8gkLsKViwILAyzOWXPbIJmgiBQwCkAu2Tk5Z2xp2+fLM+HPPX1VRrby LfL2h6gkhzJJ2ad/rHTtTp493eClOTFmSQ6VnsBO07JNL29ZlzgMgHJhFkUJzwlzI2xWg8PLtgQM btwwVbWssOnS1nlwkkCjQO67y+j8fzvtxMT5/jd8fF8YmJiYmJiBiYmJiYmJiYmJiYmJiYmJiYmJ iYmJiYmJiYmJiYmJiYmJiYgYmJiYmJiYmJiYmJiYmJiYgYmJiBiYmJiYmJiYmJiYmJiYmJiYmJiB iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYgYmIGJiYmJiYmJiYgYmJiYmJiY mJiYmJiBiBiYmJiYmJiYmIGJiYmJiYmJiBiYmJiYmJiYmJiYmJiYmJiYmIAYmJiYmJiYmJiYmJiY mJiYmIGJiYmJiYmJiYmJiYgYmJiYmJiYmJiYmJiYmJiYmJiBiYmJiYmJiYgYmJiYmJiBiYmJiYmJ iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiBiYmJiYmJiYmJibd23d21dut261JkmZKzJMzCZkzJFk kJ48yT3c+7wvkYGEk4W1r1mDI0vWd8yxW3z91jwDM8O0XwrnL2b8ePZ02Ds5ZbQODIG3QD4zLyhn x2j3m3WS5Da5UK6gV91ggEhmBbKD2/ziVtjLvtr5f0/eVJISSSCnAz0fPWwXeR2mPEz8vxP6fJb/ ItZRdOHUzKbvKxlOxLHFYZBIhFXbuqtwqdrJv9mXuM2tx74ffyPf7JmIhkVnw1atxvQti+L1ar2y 35kNlDHn5iK5HRkwT9oj+j36iP60fH359faW8Xuz93xv5RdzwBuQBACIYQhslsGwGMHIQ0CAQxDB gNgCYJADAAYRIyZbJaCGiCGA5AJTBsbHISwGDBwgQ2wBjGJgANsIBktSyTd2+bnecysnZyFujDJO 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 v2LfKNk3VNaTE3VWzBM5MXNsTEx0xOxM2TE23NzeV5pHEtc3NNbna8dtrEbVpOzm0zNlxbNZTbss czNbmnW3SqnTE2py261Hbbt12ea0mykzk15DebN5rmFtdpppZeapw3Ex1aeRM3loWLrcum7OubTc s1sO2aTOXVVd24qjMW5dk7Fy6l1pdQTNdvJMZO2VwMrQ1UvFbLNENF3ZDds0tlXbdVGblUJptXHY 3lU6s3MTtJicbs6ztxput2FdeWcrdlt5sydNObbw3Z5qclN501yO1tNbw1l2zbzcXB2w1zDbbBWz ca07NvKxbttryu0durreQ5Ei2U7NZp2u1ZbdwVNrOhjtvNrYczt23M3bss5XTG1zN5hpupbt1czF 3FabVum3OlBc2zFzOzDOtbNN2Xbxq3ko5ba1oMR1aTYzlW5uVWrdtzzbFbti0tNu26zlKja2jlpo y1mykyTMltredsbdNWGYvLtx4d1mo6TSW7GrwCjZzctebVW5s1xNc67K3W7srRxnWmg3MXKaus67 bZyVtlvNbay1w523Ny7LhtMcoctpzDmJlS5UtttpynCWdmc8a7uuZ3zXXXXXW9XI3te1v7yQC1si FFNVQYtjABJrfEFIwsS8xFzE/5FQwLnJtZTYKfViTUYzlnNWlD8TkVWgSUzimaNEtS3KjzM8vevL vI48zvD5x5yiEt6Scud13uwArImImEtREQ0o0xYvja2Nfs21dioaLw9dyKs5hL6+vjAh91WvWr9r yefX9kkgAAAAAAAAAAAAAAAAAAAAAAAAFetavOqyaaq2rQEFCBM0IXtUgQshAml9bQmGSEMZ55Lc IEwhAlIECa6Xve6P9/b7Lm0xkAIP7roGQ6Ni6Kt0fA01/73+1iL3JAQIoQJqwIEzLUBAigSEDSpJ ZMkxmJMkyTMyc+Pr9t1u3W7dbt1u3RMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT ExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT ExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT ExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT ExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMT ExMTExMTExMTExMTExMTExMTExMTWsTExMTExMTExMTExMTUjEKql21jGs4H2ui18AL9TBykH0zc mopm9x7D/jboxplhT1mi+V3o/H6KGsJdVEFUaZwhwGhM/AZLnTqH83rfvt9W6i9Z13xhAMTTGIAQ 4BqSAYmmORsBSgGQNjakQMYDkYJMlDCQJGAgGyAYwEAhsAY2JkMYmwTZCGNsHI2NoBADkQAmCYS2 wve47x33fd5PaYWXXO8W9mKR4pXMHJuMxcI6fOTBRzlIFyVBPVjiT5rdxyiKG3g80bvfKzUEQm3m Ncm+R8imCJyHoODvANVfHAtR6ehrHcbWQ5nMJdzOaj2IqQzBGPnM44NvcTM3m4SpjkJAmZvnFqkE d8JK0oczV5B6hGcHvfFunOSGY4QRb1GREW3t8I1xwt1kyZsM3UsWkVCSDFy6iNRYZZDNkvHCci5Q 5zLyHJk2h8hTe1lBvNbusdMjnK5t81CCzdQUxqLhWXSuSD5mMFMIVBSagljN5fGt3AhNVWZjzJvA N5puQ4Ar1zVzHlveYWPhHvDZxR2WItzUQOqmYkmTE7dJck7Rytd1/ReebiL6RdqrH051trnnfRDI liEKEl4aSAXtCXRIS94FryQuBaXAuVvJANplYvXYbZ4VkTLoUSR2r+y24ROrnWtPiim8e4kBtjbm Q4AUFJVVQCbAaqKSaSXmojURE5Ouo6676zMzMzdA883Q6tDbSWHMqS24mtLS/K9RjFycxOIaPRKl iSmJm/vN8Hrv75fgwAk7ShGLI3rlDg9u9Fk34l1sEUoUNhjkG/7PfnAcqRZjjbtUx6NR2Sr4KjYY i9evVfjXqP9c92wOvz3AAJAAgAAMAACAAAAAAQAgBAIAjJ/2i0T5sbCrhD1BayKAU8QWsLWYr2O6 7pcPf8R9fb1f+qfqPwNCUnEfJm6baeb7R6dDYulZrZ3dNtve9VtBzHmd+yj3BAyRkkwDV/3vYfBH MI/nNzLjboNGwY6fE2GiGMVT5oOLe5fV1tqbbhBohnTfffPbPIM6ocUUg1xsWTOqFFFETgkmQWTb aize2Wm23jpmCxRQTlRnahQsiB0QE2ogWXSCrSXOiILanMa1FnNhsGDubMbmiGN71VUHsrAJ+Ch4 bXRHqbaI0Qx1l86044cEBCBzU22XOpQOdTptRgf2xFsSgjKWDkUq5NMl8vmoew/4n/p/yP9F/ZLg WAveNFNHi9/a1g2G71+9+J9mT9D5GEy/5wf1dIb81+t0fDobF0rNbO7ptt73qtoHpft7LZT7fdIW 5P6JQ2tZDYJv2yFbzWud557jyZ5+c83lAAAAAAAAAAAB5554/AGAAAAAAMAYAGuTrz2nze73ndb0 z3Xo/F4Ph6RR/wf2wnsR9pHLd8afMt4/jtSDhtkqXNnoel206JuW2s31uKyHCEeKmg6YIwUVNY5q +tPrM5/tC9RtifL4I/WMhUI4bHuR6bxMV554+9OEOiLYJLa0Ec6LVUU1Q+CSDSOoRpCKVKE0R831 u+Npne423+kJhAgRBsZuuE91GVSvqEvhlwnSMjfMU19TytxYfUjJcjWhpxfGtRrWnsqWcFQ5Uq6G Qlq/A+RjC6+/wfwybb37vyj4dDYulZrZ3dNtve9VtLV6Pnpt41OWDh7oSSv7WAFBQGPtEfSwjDVT 1Hd+Pv01/5S4wCMwgHsFXgFwQLAEA+Y9t3+kIPR+hJNtRAZvPUTvOfcLf9b5+k/M9vlAAAAAAAAA AAB69evH6AYAAAAAAwBgARERqNfELy/ilxpr51LP7eggU4OCBk/fjKPpAdp/HHmuc1OXGMIoIHoh jewH+iDYPPJnZbaZ3it36HhiBoQhIJvCPGqpnTEROeCBQNtkY26j/UjjjcyntnsX73vOU4ySfyEC uuvvs/hklvxXm6PDobF0rNbO7ptt73qtoOCSMH6ME9oHx7+7HGZ5WsPge5CeyBlNFJqlIs3Ko+tK RRTkkmfG+2mOPHjvngHLWxpeivZbiXCmImetrAo86lJxQmQnG+avvO6dkRNp02axty6rlMb2MCax vO5nDvu7hjw3Kg2oQLcVLAWlBtA+p9sM953vLgOdAgX/V8X1z82trF9aidb84JsAQQNEIDYj4Cyo IAIyIl8Qj05BbR24dK005vpqqqqUM5sdmWWVdOn599+a1VV+2edvzy/M88871gAAQAAAIAAQgABA IAABCAAABAq8oX3851zU8huNUaZ/VJJzYFLEi1kRASLEIfdNLqL61rT/o2QjRQ/ceguV+3v4n3ZN N9d/XtHw6GxdKzWzu6bbe96raDnr7p7H4x8vb5aG8bu9KAHDnBHsQp0UdLiCLaIAuz5pGWGpqnLv YYZNFHRjBFJSpGHmcofTd9va/E1bJHfEspsh8xPl/PL+eT47g6IG7WylkMEfGNuP/Frb4m+d72rs bW79U8Lc83fe5fe9uPDg3IH1NzpPXtxebZbsj8xXOb47AKgQHuVGroAVQICHRACQSCQnEFrcvrV9 PWnU2QgeGAZ39gPGvrWq1qO4+skoBoi1vsPQhV9s5T6MmmrX15R6dDYulZrZ3dNtve9VtBxNCyjo +PbOV4DocvO+OO2ZdkCQF75UVhbm8Dv8EhlnXIreqSBwC5XAXNrAWsB8+n8yW3fa7netTp85yABA AAAgABCSSSOQgAAEzGc5znOc5zmM5sn9kta1vXToKAfFCha5/s9rhWTzx/Os6eeIiLYZIJA+zMyI lNh6qql8kWn/RJLXZETF9aR9a1qKV7JdLJVIiLaCMg1SLepmqRwlUiJe1yADhECmMJakdkRHFYqK mpxbB6UP7ED35jnERBvb5TfOckOJNmP8XvSIhuhFzfWdbbe2re5cYdlF97REzjGApUwRqIhETTPO aqpZ3IDkE9LESdLq6ImxEB9lZvve6ZwOulqLaVERQdsmr6y2tapxc2SpREX5KkQTr4tggWFau061 qpTJVURPyPBdL/icJ+VSW/NfjdbQaGxdKzWz7F7r379+vPahX4kkkkkkkkkkkkkudzyj9yOXREzH x7Dj3837fCt+LygCFDaPVB8YmXfO97smM7yo4/7GnB5d96QANtgAAAAAAAB+q++vXoAAAAAAAAAA AP6Dm/WiB9/EHmk13PeVuE51ERUMunohfwjaQBPvUrKIg5jMc5uZewBmURMXFKAKWqp6qv+7/bPe JZiU2iIpHiWhRtUAYgJ1b9S6973s6cAxSIi2/RE4QYOcavCoiaxGo1qpdyBg4IYj+ZhTGjpkRL20 f6vre943T4AhGi47dBoIgBIIIykX0iIrAEgqgQjZFv3EB0x+eZT9Km2/fz9+1tBobF0rNbO7ptt7 3qtoCAHC+3ps+lfTROWUWdACQSCscREuBch0QE2BdAhF08RQfSAWiLoiKNPpdVrUuBkWBUoQS5g1 isIiWsKbD1VVL2uRZ1mURPpdnOsVopfC6rWdOHNkjSIikufkjVxb820bNc9b9evXrpcgJJJJJJJJ JJLWohJJJJVVVVVVaRePC0DPFa+NaOnAfQUynO8NhhjGvPPXeb9bznP4NXF3Vd5YAAAAAAAAAAAH zfPPPuAAAAAAAAAAAHjPa1bOltb96TDVit4w+zYMbaulvWoWGqql3Q2QhzP7ateGJBOrvGdQ51qc PGYH7GCFA909KgwbDd8R3fHRuc5FN+BIVK++eJ+FSW/FfjdbQaGxdKzWzu6bbe96raDugbkqgU2G D6v6K+o5fcT/TAgfI0j56tkPv+EojsRPW6s9xnr2zCC5wQpUziVaZicw/yXODZiBRes71WNVis07 OWYKP5OgDa1aUDOqxqlqn18N7/Ptf7JrgIJCESdnyxv4ox42PN+T546EBjZyKn7gWSWxM5ncvACG wNhb7DgwmPKwnpUpvtr35W0GhsXSs1s7um23veq2gyALD/gvv7D1WkT+nt6v9c1c3P+391ZCQiBA JX+g2E2cR1/b15vD1/X6P4+K/PO+eefogEAAAAAAAgAAMAgAAEAGAAA5Apl/1a3998v3lvvvngNq oUUFFHmUFJ4cm1hdaKPQlrZ3Lb3iNw723xNkSWPx+yeMldWj1k71+vrD9P0hLYNxjKh8o53q99Nh 7tqpegP4ICej7kW/2nnE5znOc44c1CDZEMgJ7pNG76fWtPgMQntHvlgxBIBIJBIF0QH1xQvug4Ra znUcLm7a4/HHEQAunmEdwgWnk71rsY1epqXCSgybC6IIzSBqZr1VVDuf+ZtBsOkYhK2BadXnOoxn TgMRkJZm3jsww1tfPbbbbltzrYkmgQYjEERCDYgi372uMI37YdP3VJb71++6PTobF0rNbO7ptt73 qtoNSOWINiBywEEey+gC7HEC4XWzf5u59CwFrAQ36F4S90tpHvOhlMQX+HRpxnu5/KR1E0vk29et a9eta/p9e9+cnyZfzPnfffZAIAAAAAABAAAYBAAAIAMAAByGul8zBxYENec4sN2E1YQFpHA8N+du WdcZ08f5fap+fgn2W5tBsPtl3JfXfePPG883p7QQHIGtEpu+NX1fWtagfVvr9u3/lNZIHnhKW4be vXpb+uep9enT9XV97JRWIgiHT3I5+E7VE8/s/mobnl9+ddiLYIG97J7rGNJGta04UsR6OtEoObAF ig9dnnWTuu87DuXJPOEwrl/SAOdRBOq/v6feecfnHAoegqT8Z9k+VSW8r6bo8OhsXSs1s7um23ve q2g5PEH8/KD0fjXsTHft8vG8bfzrt6QMQGJGtEqNkPqNXOm1Va+sCAbkZO9k5W3ojifkWHJvx+a5 v6VzhAAAAfj49T6nv49vXXvb+7rfOff8JalsvQMt1wiYasdnZJyy50P2tlfY08uLi97oiXAAAAAA AAOet+vQAAAAAAAAAAAEc+PaURq/j3dc9378z6yZW516nXuxYIj2zkltYe+tYzN/u6IkDBDG3we2 dB63olePjfG07Nrm3H4KH6HeSRKjQNtzzOOHBjnI5D96m+SSu7pA/hLbXCyqSffynJ+/rE39evWt vkjZbafU4ugrY+Qye355KfRUlvv38+q9kHdjgZNTrh5dONznN1xBz84T5//fxyW+mPe/k9fRf2OP coILHNXJvdzbcx63Q2+qe8VsuSpJ25KD8H6dS0mJ7nJI3wvy+Y3PHxhENyhKITpcXuFN00dEkfFh BATaPq7aqtOcH23cOrYv3KXlVU22hKG6JwjvTdrvXK47Em90U05Kr4UIhEOiPzbWoZnqte3rmSSS SVv2a93hpf11poqqxVVNsp+VTmOW5l07OlVmPq1+N3Z33Njve9/cmTudRebbtI78VyzeFNIIOMNg InhELgFbJkwDZhdq9ZP/zYi5pr7TM+b64fufel104bne1RtcUgSAAAAAAAAAAAAAAAAAAAEW9/yV Zzd8wVvb16cT7DY0lfGcJlU03t337W0GhsXSs1s7um23veq2g+EJJJJJJJJJJJpM6lMZ54M3u8bb Ecwk4NHLXGecyU7dNHhvip7J0u+5QReTmJ6N4ylz113N0xvF5zVc7SwL3c9mNdvES8ox06icovRf fXOVSOvWo2+lzjjd7p8MjqUQ7ZJKM9DN8OjYNG96l46tzR0lZMd3ub5iFxs5xik1rTDW79zdFxy/ TtTi6Vc6qSvMs2N6ktDreqTLxkw2J1NYo5feM3rBwitzWOKjHG55nEQkRFbfGMZ7bOKyu8zhJV6R l5lOrlEF+U112813R2ueze5LZ7mlV9i/UStwyY2t6qqHJ65JXGe9ncXfMxpWdEoyT0dueRCTTdjU baNM3O4XXcLeFO7qcSgRtwTm+C0NRp74eZPXQLqhGoHdzfOXd220zW5DaO3i6R0d03XRGa8y2lme LiXV9vnEzilflCl5uTz35Z3LD5nmszV/c+e38+9YZVGLygMkDM9JJlGZJAyQACohJJPQEQkklhQp Oa3KSqabm+z3ZGhsXSteHF43rjjjx478ONHKlyKpeAkkRIAiAItsECtZWruiizAWBBAtgcFIztxH VONrmp5wjQ2LpWa2d3Tbb3vVbQZAsJBAtYi1qDyvTbY4JTnJlXXKtPOTvhGhsXSszs7um21veq2g mwzOFzfqK9ZJJJ2OBEh54uVhW3zc82RobF0rM7O7pttb3qtoHUmbqpJJKqqkyBayISgtOcsyTnCy TLTnN0Dd3QN397nAOc3QN3dA6zLS/M+pt+efP1vrl89fX19fVHZ0Ni6Vmtnd022971W0GUJJJJJJ JJPhBXN7r5lUMvHYnG9Q4PXxNKj1utwz8xsb3vjQia1GTfGBgl+5bAiJzx75RuzDkOIvmL6zVb3I xnG5SsZrXK7vtQk6ZWTueJxuHW60nHeHvEHfeUe949bObrqOPqGfm5xGV4zZ5jVbcpdti8DcEuoa W5Ot6aFiYLdXHeOOOCACCQiIAiIAiUZiMtagsICNrWCq6EsYMjpXDTTW3O9aY5vvKPDobF0rNbO7 ptt73qtoHCAAObAICAIXlpz7mGAVEtRq3fY0kohJRCSiElEeRLWoksIQS1uULBa1BVUTv+37zUnH pW/b048rVNB+yv7uvSvLn7bA7H6ub3OW4WbfY9P7bURVpzNTHvhdUplKvx/P5be2ptwuTPed7gV3 J3ebq6DvMe/3b3U5NkT2Bbq56ruOvs7N1kl7/ZQE5L4rRrnd2s2lg50ACr3vgc0/XrK3qvVX6SVo z99ztyK73vvSp3HP4eRBMaiIu1rUPaiNdzWtREb+JfmUFpQlMLanYCUyirqqpt1/afVqiH6UdWOv e1Pdm81vO+brFdxzlbe1TmVM1PR7vO0d7r7o8z9+taNf1HPnMfzvv2AAAAAAAAAAAAAAAAAAAAAA AAAAGKvU9Phd81vW6YbVfzH8jXo1fm4kGqOJF2LXr+r+4fFiQ9RiFaauiogTedNbGBnrJDLbO+Jf Pn8Kz09lV3a0PkfhPnohwZCXObDifLjvy/tr4M9V9vPu0tcjxRW9jnAhIG2SDJYEtS0wQxMYJgpQ SwBEIENyNhICTGDGwhoGgQ2wcjBNohgJgxgDBsAAaHJANsJE2EsY2MEMmUEwmxsQHcp53L69952o qqfOOTLqtxc7ikWHNGCObMwgKYLbLrSCUy8ZMMtG0m7k1HFZE975CiIZNIe75nBy6lyjbxk1RLxk U3yC3wawyTfJaDmlrgEKivBTkLylZQ8lYcJJyQCTjWhp1dApJdlri1mXC4SbNQ41INSmc3URQqkz VU4M5vBVMySTTlGczCbWUxSq5x4KcZIZpTinHjzax4WGsgZjXGzl2TKqnGPW5o3DAiCDzbRzDgo7 FKkTzYmqLmSy3eDmkEmF44o5xDmTlCWbqPOG75mY8FxbkE+Zaicjzj3bLYx0UREZyPgiVtPZzmEK keyGbE4YJPduNjmjmBZJMG8rFwYu7u+mfz6bdw3aFa35dH/RqI1Ee+bPst99xMflpFzb8tqViXqM ZSOKxwxvlgJAulCoxTNVxWtBLrCznVWrOts+ZjIxlVrTPKi3SYkgHB/P+nwdj23RiyISh1y9JIYX MZ3XMz/VnFf6WkC1mET9p887kADbYAAAAAAAAeud9egAAAAAAAAAAAN786fETOpg38MWFgLWtW0f UvGvGfN/Y4zz+vgZf73VPAf7/tHcfndSd4R4760Rzi8w+55zXDxkeOc0Rz287oeXg2H0UJYGkT98 C+T84+Fzrzfu4CEYNnLyErHJpozlqinvhAKG0wf2MlfZOZbvGWuY5PH8PRhA7o/iJ/RBJG+SI7vn z5lZ53PMvb/BwRcgb2F82m8b3ne32r4JPv1FN4XN9gqSQSeZQeDQ3iGzON55DuEZAmlF7UO5RZLJ VX10wa4oySkdOd7l0a42CkFDYTW2+XC2MbbcPbpkcsWsOlSkUixYkAkEgkaItoEAavrF9azp0LFN 4X1lCQKDoNQ2rprGdPp/S4UEjFBLDNY3+LAX02c6jXt42wG19D9dTP3+dSfvhHjm9EcTbY1ne62d sjxveiN5A5xBaABYfHtapBtr2wsp9tYUD5dEAJJKbQ0Pa/PJHnnnvWq/bm7Ofy9TOfw9+795nv37 8IBAAAAAAAAAAAAAAAAAgAAEZznOTy1v6EJrHUXG973vIhwCCCQyJYQiAggogwQpBIP+iD0/2UWt +Nvm+961vyOm1smGQa8/4/zk/ucBOz2IWD5GI83sZiSEYTIOPZy7NOzp/P+pTpCBsk4VJmzwff3d Oy/Tp06bdOmYWZhPe+LqiaxLfU7mFadRp3LpZCPwdkwyttBuPBne8ZSd7zovkuVNg4P0yqobpWtN eH1rOrvYSYIjv4Ua0mMRrWtYcXLm17oKwinzFGrstVWa/EOQHJKG5AJ29fx/H8w0f1+fn+h/rhHj nrRH0TbY1ne62dsjxveiN+xpfic+3wk4bPXF9oAxsMe39RbMreHmZ2mI2vhen9ZDL5dU0AMQD/61 WHrxJGuJ0c22JP2KIlgUKEWCEhwMSIuPP6wtdxWprCmN5RSv9rJf4Rlqp5558IBAAAAAAAAAAAAA AAAAgAAEANf2G/VaN/+bf9V+vWtft+futa0LBSAALLayWT27zxmqceOif8Yi3UowfQLekyf4NZT+ D+IE+XXzxq8pwNmD9P7pZQW1HNtje9vuf5gYMljnJQg2Ce2u2UyRtUGHWd7rL2ckHBsP+JsEq4im WcNMz/iNAj3/yta1k/f+v9N1P9fj7/1P9cI8e3tojxNtjWd7rZ2yPG96I3y5HuoTJ/c/Rh2vn6Ya 81Lw9rgqfl/srn8SEUget1TbdzO8Y3D4NnN0dUB/JtRDFaYfOmXOdanV3UoWJOUCIQOGpDVdahqm ns90/tgJRQHJS0IFcKoNw1Z42njOp0+X3ELBHCtxhfzgIT6MHn8RlX3veu/GQB9ARafWpmSUauMi gR7WKIlgUBf/lIZsZh+c5u99qMNcKMxPcvCABtsAAAAAAAAPrM754AAAAAAAAAAAB5PxtKJr0vfb Z33w4446eWpqFkUU0SkWOtBrrexZrTFiydSBAIsIsYrDU0PMXc4FyF+EHywuoJCEIQiIPhECkSqD 7fn6L+d7+nx+T8sjxv20fkptsbzvdbO2R43rRG+X9vfOR6GEGPnagKQCRbfycB7tpp9O2EQEfGwq 5DKoIsbFih0Rm3smnxCX0+tOxcE3SyFzaVGVS+M5jIviV2Wjvt4GVU9b+h4eEfx9eqLmTb2uOsAK IHsRhu+2m9R6gBSTA/SWGsvACYr30OanF33ndILWshw4YhAQpcgH9rBl3gbVMTiMy4H7cS1+Qtlu nud6tkbhr7Xe6gvb0RBAwUBo7W2jGmXWs61BeSAkWSHiL29ylfkWwQjxDYzXtpHA6QPn8/jX5qPi vuaZHjvdHhTbY3ne62dsjxvWiN8BFgQMH48tNgJ3IvBZ/k5RAAUuMhmgzpfz538ep0+3mpjsPpzh AA22AAAAAAAAH5X5vngAAAAAAAAABe97/7XOBwgGxU2CH9IP+gfA73nq/Zl+x3x3wHUmMSaUCUzM np/pNxPl4zO97lz/Al7S2q+xD2KPvdAcBE2RO77vjcvLhD+D7HZgEcMkc5XDfmI42+f0gYBggmwc ibi8wrXlXnEq9hcC1IBs2qA4rba1iq1l8ED9r3Yi6uAhsES1drV9VGqmswFIwDCoHOgbawNjV400 anT2sroHMxb00xhXxOZesRbBO0CnJzYodXEZwtZeLtengvz0n0MEZKAsZukkLr6i5tZVZ21Wq527 j7fr8V+qrNfc/pkeK5ojibbG873WztkeN70RtQCQwBBAsARR80tHuH3oMtXVGAtaQQLbFj8n2POD QoaohOIaRcW/AIsRlEBOcGhDDDNqqqtC+Gzq1ravO+v3ry15Dw9kAgAAAAAAAAAEAAI5JJA4wAIN yQCvXmvVeteq1/MUsOTt7vveNs7YJS31wg2icNvo7kyNK2qxfGdPcqUKqgH1OGJJRp1nusavnOtV qI6mDZ4JhVFVLvHbjjdxtjXXXLfO1pV8LbO9RNWpMklIKLWtz/cthrOSfzYC53CBa3h6fZccOEQM trBFIYinYnAtTTLYnOMYQbwgU+xa8Er0kqTr4+/2n771v7H7nD81RHE02Na1Ojo4fWqI19rWfqex CepzHv7+f3i/yg9sI8E5Vjs0bfr6RBPWxm7arjjwi67XJEG1ZUlqbFNjNS4/HUw38qIsCOHw4uSE Ha4vOYfFcdz0248EvfxUnvV0XNufoAPtc1Ec8rNsOSSSST9PnOHTGfWhN7vH1bEVhJwaOWuM/X75 Kfe6aPDfFT2Tpd9ykXk5iejeMpc9ddzdMbxec1XO0sC93PZjXbxEvKMdOonKL0X31zlUjr1qNvpc 443e6fDI6lEO2SSjPQzfDo2DRvepeOrc0dJWTHd7m+YhcbOcYpNa0w1u/c3RcL066cXSrnVSV5lm xvUlodb1SZeMmGxOprFHL7xm9YOEVuaxxUY43PM4iEiIrb4xjPbZxWV3mcJKvSMvMp1cogvymuu3 mu6O1z2VuWz3NKr7F+olbhkxtb1VUOT1ySuM97O4u+ZjSs6JRkno7c8iEmm7Go20aZudwuu4W8Kd 3U4lAjbgnN8FoajT3w8yeugXVCNQO7m+cu7ttpmtyG0dvF0jo7psHrNeer3fe/bzrt/GZ3uUr8oU vNyee/LO5YfM81matyy4758eW2euuS65Y2DJUiqqqo0KHh2FrwBg2a3p83C/QD4+6CIRORoHz+K5 qecaJ+NVDpibSXcrVHKvWt8/HhzmeTzvhAIAAAAAAAAABAAAIABDjAAg3JC+pm5rpUiIEGPLdzGH LGOOK43112/nxlpmJJGDZDnKf2P2cZ1hnlsNqns4OCht+C4PlRj1rC6nOo04GCwIY3Nqp39Goer1 TRX1+/3j6vjfn2P3ZHje9EeybbG873WztkeN70Rvy4QYQLcIP8/5v/rcIgop6qozSkUWW8KA0GTj 4ZeGmMsvDuzwD66KzKO+1AoooKKKcE1EJwrbHDTLDVXIX3SwwDbBqkqqd81hwGBQlvwAowiATi0q 8y2cy/sbDhsMV+6D+dtve8b3sXxpfqyRz7ehdfrdU3cj4IREtwEe3yAEB9XmwUX7rzHrvFcflYW0 MicULBAQtvA/cAKi1h6ndMBbAtYefr81+qn6V8n6MjxWtEbTbY3ne62dsjxveiNqLICBYW+faz+w OOGb8hPuLm1rI+QiNO/as1oaNs5+EnMPcXve6q2AAAAAAAAeZ554AAAAMAYAAAAAZ/D6+NRomI9f j8fb18fdRv7+9Ry7vm+L7TC+3rz06B3VSPsiW8zxXBuYKoi/Rx6vic608vb4LEC5BBlLzqMVVS2a u7Bwg17JZwwQYNkH2iuSwDACHTZCNuX3FPZAVIwDbZxtDpw8HXH1WqfOXC/ZOA4LEdNx1JuipyRv l8cjmuZ2+CT3l1uTlMAqdFKRNkLYZ20Nve61j71awGSQpYUmSGIydYExrOF1OXjTsfOoBu6WG3FT 3mL7jG424DG2T4wR7phDVXqpipy4HoqDjSAV9LDZGl0+tTrnpRb4+/1n65z2fqfuyPHOaI4m2xvO 91t44rPTjx3TjyCgTIAoQlCSFCQRCBfPlAEIt9+q10IdaWURh828PL0ITCRrE1UfBG9/mubz2AAA AAAAAAADDzPPOgAAADAGAAAAAHuZl+/T9b9c82W/nwPsrEdI6bQfo4ZuI08zznNOSxteEAoKka59 9tvE7zveyz8X5OM+30yGX6XVK2D8MFFH3BD11RCp9/hfN+2F89pmKcaGE6R8SgubQgTO4DbIG49o Tky/OOOEdMEXOSNEc4O+h4z573vdu5t4VK6CYNts1XSqqKh0IcESECF08VDaxJ4lghAJtYawOzvG NzvGtu46EQAYdVFrWSV9tc19t69/bh+GR433RHMLvD7zvcbO2R43vRG+faE+5+gwmAR8+w23y3x3 jY+fhwPRH0hLUD+AXpN1tbxttxt8AEhRTNlcCi1qFD9NUKKZcKJyQ8BD0w0Rt73nfx7dA0NoASBo hRnznr7ZrbzvaD3Qihlm/X5gu98+aydvXf23xXy/OeeeeeeAAAAQAIBAAgAAAAAAAAAAAABGaTg5 xeHnOc5x/XoUttOmDakhR7QL72zpvczHRAuQBINcw9Z06601PDk4I+fynvwJNIhfqJlPfw4J7tsw 3e4lw+9hbeEXMkfQ8wOfns4znve97yBk20v6W6/xF8GKQoEC/nz2w+v2+N/g/thHj29tHZTbY1ne 62dsjxvWiN8gj6dEZz899CPnGNVh3CkBMSFY/c/IP4nlVveoRHxituwuQkr24uQeBAElBldxcLKA IQeoEI4QLZBFcauNrE8cXI+COkYNs4TWhjVxjWqnVfZf3GR6PhCH0RPQnY9l9vbnr2LH2r2l/Z+l f7JbY6Ecsf0fSJvvt6/YWv6b161r19fgeDNgCCBswCoNsZra/Y1ifvoN973VaGhshBbS/8N4qW4h 2HRKZm6JyxThqBMpi1m1YvZti0sBZJRKulsAi5Tt1AuUCQdWuM8vsqHlYNpz+Px+ZjPnOe+eeZkn US5odtnIP9XnNrsne9kAAAAAAAAAAAAAAAAAAAItY71f81quK+zuuffrm/d7u7n5/WHzz+T/H6re EeN80elNtjWd7rZ2yPG9aI3hmJJJtYkm1gzAtoFtAtoHzu6fUtNRSpJJKohJJKIhLsscnnOSOMjx XNEcTbY+fXz8+/y+er48/Pz8J884eZaAAAAAHu+vjen37efn4nXxzm769/cAA37313scnQ4yPFd0 RxNtjed7rZ2yPG96I3e5PwEQkAAA7kzLS5MAAABZaAAAAAACqqqq0GgBIF0AkCgbAQTdjjPduc1w 8wkRXNEcTeMazvdbO2R43vRG3CCwB5kQApFrFxYDR7vF/C884Lru6p4T19t5qcnWEiOeaI2m8Y1n e62dsjxveiN7AClsbzvdbO2R43vRG022N53utnbI8b3ojfg5I8ICEZAIICkkKEiUgoctSzLDIjCm i4TW+y93HedMsjxXdEdTbY3ne62dsjxveiNsALQCCHFAoQBKQyCREJwxJzeLzOky5duLZQXKQ21A lKhAP1Ec9VL+as3X7L/sxlZiekwiq6BeCgnwdHCc0MMzazV2h7qm0YnFyEUM1GpV0v6mslVkFc9v c4c27h7Dq46d4ndbrg3wzv9e8xd5NC7rqlbdW7nnKqpL48yr4aKm+c29Beqzeta9a1yluTlxWjIA AWXq65zhsrTSl3DiYmHo3eRU0qObzm43M/tyLmHew9RMxFl96PkiUyocRqI/nhsUzewEkrbTCY76 m4WT6vqiVZJFbn1Or2OwAFyJiZ3j43W5m2tZrK0ScNan8d87vM64dAAAAAAAAAAAAAAAAAAAAAAA AAABGqpeovV3y75ypret8WtzMz+66m0lc/tyq3d7mpgmBI5/SiLiN1Mz6diVTBwcp1HBEy9f4EV7 i76Hj/SIO8/d/Z0+0qcqPiJjz369fEEI91133nMntQb2i5CGhIYgYCkcsQhDExgxoGDaGIlBAmJt g2EtADBsEgkchLGgBjGhMBNDBthI2ABAyBywGDE2wGwBggmWEwgG5TDfLfO7vnTt87UVVPhsmXVb i53FIsOaMEc2ZhAUwW2XWkEpl4yYZaNpN3JqOKyJ73yFEQyaQ93zODl1LlG3jJqiXjIpvkFvg1hk m+S0HNLXAIVFeCnIXlKyh5Kw4STkgEnGtDTq6BSS7LXFrMuFwk2ahxqQalM5uoihVJmqpwZzeCqZ kkmnKM5mE2spilVzjwU4yQzSnFOPHm1jwsNZAzGuNnLsmVVOMetzRuGBEEHm2jmHGZt2KVInmxNU XMllu8HNIJMLxxRziHMnKEs3UecN3zMx4Li3IJ8y1E5HnHu2WxjooiIzkfBEraeznMIVI9kM2Jww Se7cbHNHMCySYN5WLgxZe1vS1l3+XKqKcTkbgSTcNJSIKVKDf0jURWiNRGTJVQtLkC14MJC4kvdk gUQsSkkF1wMoLWF8FDjCkxgJ70Qy6dEx4opSj1gBLURqFud1TZN34U4iNblCjUETEZJHInHFSaWq nO9rtWvZu2L6H2Hj/X6IASY46FcvoL8OmWTZQB+9rAWsAvQGHGD6Cc9frKQ/rm4qAwwioBu3rWvX rWq9ZWj9s33k6+99gAAAQAIBAAgAAAAAAAAAAAABCta3mY/7uExbpFrAEvhn6d4beW3v0zyt6Hx/ Rh5/RjjXsvMcmaqIe8NW8v+NssxL61rTw94bOsTrTeYQdXpt/Yj0bfu+z73i9494pwxGC5Q/Q/kj 0WI0/N3bLb3vbgfQh2QINJbXwur6xrWdacXKENtBbu8vTVeGqqfjpB6Dw9ICkkb10822Zbjc5/iM EnR2yBT0jYKH0ve372u97trvo2shev9O3vvVUYQbdtRW8w+DcjDp0gejvZA3SbaKneo3mwECNpFI O3SzklAM7um6AGJ3W3xHI3lL8QObbqrQLgNu9/70QKaMbje91g/b65aPr9/v5EPeGzOX++mWYl9a 1p4e8NnWJ1pmJAAsHFBLqnm1Gn92A+QSIS2N/bn2vvfnM5uYyt3+fbeZwgAbbAAAAAAAAD877zzw AGAMAAAAAAAvf8l7C1he333m+dzuNuwOC90Dm34I+vRSvGYqqdjg2oj0cm5OsCstjDVWKu4F/ujm 3pkHDp9LqH1jWnGCCRgImCp2R5V801ZbOKp9AhjDoxg7KKiGmEvjNTDZi8Vl/7F8Otvc3OWQ26iF t6hmeL31rWHAcyQIEJL4iWzeIl4cB8IxQ9I9G3rV/N1idzvWNvZhhLWr6/e/v9p+v39PD3hvWpf7 8ZZiX1rWnh7w2dYnWmb6e/t699Yv695ezD6X9XEFyApHx6gP+BrOG1L6rvu86XDD2+WEfDHGmkEE HRsOKqXfW4W+JXPqDawt+C+Kxj2Or4nWs6a6veJHvdZmcIAG2wAAAAAAEAeX5554ADAGAAAAAAAA 89RG5mYmJmZmZmYsLECo0iyb6jWndiMmTmEJuVLn2pL1mKinEkBC9rAAkWODYJMVTVhnqpe7o5UA jJA37Suzs1vK1UX2+2e1zJcwCypq6Cpp0pGwkNOKfZEHz6Tv3n39ezw94auy/04yzEvrWtPD3hs6 xOtNvhH1Nh7591bV/f296Z6hAxQi5Q/BuYIFPSvFPWafF3XwEIRcAzbO1CHWsK6Nqdaddo52Sd/d Qpgtb9Ho9PPW9+sqfSUiW02oaXgnNLyRrFxQ0+VfWq07YATCBVQSiBeBYuEIuiCEQKQmkCKgSUC7 QBCCQSLVdL3rOXqvtqQBYZ9wdRWBfCCrhiEm89ybMHWM5bWJzgI3Y7KYnO9O+wAAAYABCQAhAACA AQAACAAAADhr+Gpz1r18r16f3h+/w834DcQ8fRsQ2U5hYpMXGfj6QUH0vpeXR5iujSbv2FF5LxPR vEda4wm9Hbs81K1w9qBeLjta6uojLzSh85QSehO8aFzeF7Gn1vELzeG73V3LQpUJfaiXvigubsXv iUWmxMTxbae9ZMd3ubrMRe67jL0dYGtbxle5uk97guF1imxWZZ25hWfOGacjeB4PiBzvtrO7k+Gd yr39+TufPv234ea5is7+68ed4zjGK8tWNZXmZwkq9Iy9yni5RBftNddvNeaO1z2b3JbPc0qvsX6i VuGTG1vVVQ5PXJK4z3s7i75mNKzolGSejtzyISabsajbRpm53C67hbwp3dTiUCNuCc3wWhqNPfDz J66BdUI1A7ub5y7u22ma3IbR28XSOjum66IzXmW0szxcS6vt853uUr8oUvNyee/LO5YfM81mav7n z2/n3rDKow3v4moiJfFyVUIDggOqoo9j9vX0zBPmh8YiXrEb3d+bQm33IDe/zW/bXv8ezw94bfJf 50yzEvrWtPD3hs6xOtNvEbJX18L8FvjBR3b4lyVMkMXuSlgx/NYq9RTZqXY+i+CVWzMjYSzGbuTN 5vE4zPpn9Lfg892HfZjjXLBjwoR9CS2vWPCfWGv5OPWXYWRFM7WsWStvosWTXRbWBREU4JJbPhhM NWKp2AdEH4VVt4mYJ+GB4gbMKFIJHSE0ghRJUEjn4QC2sEoEnr1dpfsa/Qy54R+TR/BA7vRMcZ2v zHOOA9rWJFhYHwiME/lfocltVq8tfGdae2CHumr4JUklfdPcpqHSqzNe/NWOhLkkkkkkk/T8q/3b 7/j2eHvDT2X/PGWYl9a1p4e8NnfLbffGcN1STQSRYFLVUv5Dh0C6d+cCwh41do+PuSJ+M0MVFfAt NamazM/emcsxF/9f4v+Aff9r7v7599/fh8AAABgAEJACEAAIABAAAIAAAAOB/R/ja77/fqq1VevW tGpGUxQaK/lvtJDvm23fjlsZ46Y6ZdOmlzpWr+1CGw/Zhpb61rGtPixJH7k9T2MRhbICovrOlbUa jMad7oTw6KiEtmynKh9KNXuzs9V5AuD5xLfBsFO2Cxtt73uH24o2Aphqr1VU9U+iFKmSwMHpg60m saxFU+C2EcuCHLESVI7WBV4mZxmnQ4Mm3TuEsNZE8nW5hdPOY3qNm3DbpcHVi/TzV+cXmeQ9hVkS 4ODfxAngTZUEnvPp/Xvb13fe+3Lj9fvLfs38fx8PD3hs7xP8aa8xL61rTw94bOsTrTaA0RaY8lXc ZhhqmOO0GCVd7revexv8J3GM+p36uaqfOd7+kqfM7kADbYAAAAAAAAZ3nngAAAAAAAwBgABTjjsB ZqpbxWKhLuuEBOQUun1UIP6IkF1hYX5IzjWNM2szDyQNH7fwEGSTt+nl+cfnOQ+CNESfwR7H0WDe l7oX7Td11+9d9Aq6BDcj+SxyqKU998g8MJzDNGK5zj8cXNqIcQm+IFK8aNjnHjHNc5t/Lpy5U4or h1tMRVVYd1j5CAb4+ZOad7z17fH9e/z+Pn8fn3eHvDff1if192vMS+ta08PeGzrE602RH4NvXuk+ 3n3lg4yXNoIDH2lLviZnMxi1EJCCFQOiAoooKKKcEk04X4aY04a6ZxvtpcMJ3OtZ820b3p62+Tgo QlnCMVI2RrUI9XeqmIn0HBri3akg/SZhRx+Y+1vfc2fD9zze/iABpsGAAAAA22BvzzvgAAAAAAAw BgABD88fmeX5zFMaInJmIifjgznDkZGrwLmwo5IjNXqcK2M1Lu5ClyFugUmxvnK4bOcxn29337v8 e3p4e8N63ifjTXmJfWtaeHvDZ1idabwDBFvv7+C1/chvfa+/u9YcORgj0XZCqCZhWic5l3U2VfQW w/uWIrFlAq9VVYrGy59iOCxF0TJtqke9VWtOuEC9KQRZIwt5xN7w8xM9Z+Lfgde7Bz7cOW/LkcIl IsROSVpRSLLiUmtUKX6USdG+Vc9denDPIFFFByorFFcKCjYkEiSLWg5V7vnNb38VfyPPXjw94bO8 T8aa8xL61rTw94bOsTrTH11Yr13QYxf5sHTZy6Pe8eszG/7b1tz3n77vzbzzw877AAAAAAAAAgBA CAEACAAAQAAAB1rWteqpKpqqjUQqSQpDg0bQfhtHAumtXedP+PpYgBMm3COEDf3bn95xfve967oQ +EwXVAxArYUrfzcfJ2dbp73q61dZqtcW91eul8wwh81OVda/6yApyaSlSqp6lxokk2srzO2pqqs0 Ht+i2Ag0QPbd931q8a1p7APYAknK2ze+c5zmHApXVDB8Nkq9eMz61qNOAn+xFNyP5ODrlUtYipjv wJxIAA/H4/Kw35/T+7w94au4z+uNeYl9a1p4e8NnWJ1rGmgHQ0IERJJiFjlDhfl0y43M8/VIYspr 11pXnAffe5b8nPWv4dX7+Xa8873zwAAAAAAAACAEAIAQAIAABAADXXXXX3fH69/wx/JtJJUh2Pfl 0tzbW6eD4Ws4159fDGvj3Yz1KbwLvW9ZvuoxoY+278G2q7ub4vlMAv89w5ziZ7lIy3YiEd8qus5W ta3obqXEtqJ1Xe95Ery6S/XbvL81gb5tKiHjDwO74e75ve8mMQ220645fm1nlJfFabTVsm7bgm8b Be4auYnVblsve9113HdJ9fr3x8zXr1CKEg/hbJ/achQ+UHDb8wNbvqbzl5fkJaDYMCJxmbu95nMc Z9LfXh9MPXtc41yiS5TSEIkFCpVU2nhHl++Xl804QFzg3IFyuVGcvgpjOXy4o3L2sWIC0lXDxU4q VaYj/EC36+GC8OUS29pveN7ztxchjcHzqrZThUNEUtVmafPuIxYEKfjft9KWfn5r2eHvDe28Z+nG vMS+ta08PeGzrE603PCAp9/Qb3/lW+Obn3xXqLIC5GLFSwLwmvBi8awqvmpj9otoi4wiEQbfxuJp ThYrLz1QFIBIs+B9nshsM9LGMtm/4ch2FMqZvUZk3vCWt5lcm9gAAAAAAAASANs+b7zvoAAAAAAA AAAAPURkdnz119O330Yvpf6/Cqq5wSCfsiV1FIJlPYzMyqqt98zV5bmePgl0ZAi7VfV0YoWPV5nn FVVw2+7UUnfT9xHkaz2LIYPG5xVVXYkkQic3xZ5zmdccPy/OKqqwfjrCpciit0PJmZVVXf/CNVzn J32LtdWv1RgwVBGPt1m+0efeXh7w3xzE+2lmJxrWtPD3htaxOtb/wD8p889eQqqsc+Z+F58fEw7K qqfwASCh+URBvG9qqq2DgQUXKJwj3+B43nmPM81+8YIN0/VJ6v69Kqq7EjCIMoh8IiIhVVfB5Hnm fPJ26n0QqIBB6X73PeqqqnHzzk8ficgObkW1jWlVVv+TzfFSec5W3Y9KFinMc4qqrAUdzrv+WFau b1nPrl+cVVVVVW27AG2/2d9/T3yP17qPP2VN/Hv3v223l1VU221VVVVVVVVVW5vdv+BVO7Pojsc1 KC5QFkyXZG/FOtrD5xPNKKmFAamScUENpsTmJ2e4+eW9fqX75Ob9r5yc9uP5YowJdj4/2vtruEOy AAAAAAAAAAAAAAAAAAAH9OuyG/1+78cPx8/c+uPkXvud/X2+zue/fv24+eevj479vj49te4AKoCq AqgKp+LRqgL+kugNUBVF0rbcxzjw94bnMTzjXmJfWtaeHvDZ1idaaaJI5Pu7336ADrrrrroDrrrr roDrrrrpianqrecGGG9XOK2AEwSgtZX1m4AGMEpbRAAAAAAAAAAbpugAHjx48ePB5559u/rz8efH l7w2tYnmmvMS+ta08PeGzrE60xwTvWn6AMYJI777766A666666ADvr34MkCSBWU95LSyTUzJulmS S0syam6VC7zyOU8PeG3WJ5przEvrWtPD3hs6xOtM6E0lAtoF+d0D1OboFtACZ7hbwJhhrTHHaAAt RFgL8R57WtPD3htTie7a8xL61rTw94bOsTrTOLC2wAQQQRkJYWtkgEg2IJAikqd7iHh7w07xO9te Yl9a1p4e8NnWJ1pnXQsiIAiIAiPZQbWINlVAFEAjO/VXzpH6KiHjrYhspWFikxcZ12Cg7fS8ujzF dGk3fsKLyXiejeI61xhN6O3Z5qVrh7UC8XHa11dRGXmlD5ygk9Cd40Lm8L2NPreIXm8N3uruWhSo S+1EvfFBc3YvfEotNiYni2096yY7vc3WYi913GXo6wNa3jK9zdJ73BcLrFNisyztzCs+cM3TXzNe D4gc77azu5Phncq9/fk7nz79t+HmuYrybs+qjGMT204rK7zOElXpGXmU6uUQX5TXXbzXdHa57N7k tnuaVX2L9RK3DJja3qqocnrklcZ72dxd8zGlZ0SjJPR255EJNN2NRto0zc7hddwt4U7upxKBG3BO b4LQ1Gnvh5k9dAuqEagd3N85d3bbTNbkNo7eLpHR3TddEZrzLaWZ4uJdX8Zne5SvyhS83J578s7l h8zzWZq/ufPb+fesME5ww1NhgAiyqo1y/Iat5eHvDTzE1xrzEvrXr1m8N1z1ffXqr9RulDmG1EOY b58CSSSSptpKqASSSSQAJKm2kqoBJJJJAAkkkkgASSSSQfVVSSSSS/v/UREZiiIu7STiIiG2knER qqqqSSSSSSSX20vI+0JfMbqS/1d5dWpuH7V3CTiorkbgi5mdnJYW8mJhSqW5iompac9c/BURy4lP itsmeZMUSuZey/3d7l12em7qC+IQhCdbqqkhVlqZaWdLdGwKu6WVXOZvnOc5xOU27sibS1e71i4t aWnl3y72PBfvne7ccBa6dutxV6iU7lRG5jJo1A4/qZHU73y/MSNhLrUN9HZvdVuq3uK6q6peeKuX 6tJaOipZo1uNyrgF3d8NZy3KPL5azOdsu9b/guc8eeQ6AAAAAAAAAAAAAAAAAAAAAAAAAAGclc3q 9vmfw3v9/d+TVXvvP4mpuR+rh3BI2IKwH3nTtd4uoijYNbbK3gxNve/9fWKPVv3nxpHZyvjayPhz 8crt9zvMEEAxoIGKQIQwAGhiG0xtsgUsY5YJoCRsAYDTAbAYwkBDABjY0MkbSIY0MSAGxg0QANsB MJCWQDAGNtgJyNqRhwrnKnsc7vuPut8vctzsuu8jePkSw5M5MRaQpLUx3IYtZhi5SMsyGw24MxPZ hmQYnrFcxc5ORlTixkUJQ5Lvkg96wcQuGTd4gsWaZG9j3wnB3VYMRLFZtZyQyO09tuDdZre+MfBv kokW8M5xm65IGkElgseSCzI5jzCcRc2S+bmiLguatrmW7aubcN7MxZID1w1eUJTCA3uM5xPc5mDs 5ofHjmTYm+S+cN4c1FYXA5bmatIcfObWFK+BqYRvJZsuGcrXCNmzlidSZKFgnm5mTDNcgOMKuYHM 4ZeJa3heD3jhI2sXBQrEF47bJmjgKqkW3yFuLHT2Nw2TQwbHTzDBawmYRZFy3L5v2wWQXWWMMgkr mL+nFnmOhRUy17/iyXFPlRg3qzy5vrxycdO930kl5YohFs8eebq8te+SST1dakqITh3Jtt7fKVPa W8UqiAloJBsCT/Jo2VEZS6hL1GIp5dVrFhZNR+qu9rNgAAAAAAAAAAAe78874AAAAAAAAAAAH9PI 95Fx7zl17ncbEfqPv3v0REI/Xufx5j7OZEvM8wsJBgRGIjC5RuoiNPcfUgexHsAaZPxVUiI5ivj3 +J8xERp3wAUUUulcqlIaVRyStyVNrUVxvwqqxg5JLc3eb5fWNv03RLRrUIiNg4GDkGNoNvvF32s4 3Lje8IiLkHJyM3C2yR06mZRE5t+RO9xvfEe0HBJH8wEt3vaREmRx95p8bh7bIU1ToiKHJOsaXWtR D6UOGIqroiL9nQZyg2d5zlER942ummt4cEk+G7I5EgjWllEQR7/Ht4xDeNdsNieebjnPpngFFFC9 UKKDpz56VVYMMUrLpYkXJ8xrWGh9Pc9sCHOtMiJF/4NH3KQg4pXcRve/OcdERERERV9j7DePn31h YSDAiMRGFN8oiIiIiIiIiIiIiMqqiJ9h8eW14nnX+Y4bYGQqGwMY5n9d8nKrWT93NnDAPwAAABAg AECAAAAAAAAAAAAAECH8a+evWfPmN73ve36C50frpB9C6p4cgWP0kZ7fuu97O3s+0UvuyAjBQg6G MYvva7vO773uXwNghFQIbHCAJsIEuECXQBPZAhBBGyLWqdMt9RjUvgMRyxuWKRQUtVFVnYKRRTlv QGQk3xvbU51q74BHSgI6QhsRrQitYTGdafTgtQHDc2sBjq5yg0CIhBvVbTrJMTrmcOENHQIEQg1c VmX09avOH04c2Vktk8a6jvU5wd7eO9nvOrmB0iy0Eudd9/ofoOx9K5hYSDAiMRGF/XtqPb28z7ez +xsjpwFyBHs0lFaZzPt7+1eX9vdEQ+H8Ja1vLAc+rWf3blMXv3zxpAfGMPkO3q7YmaWYvi5ZvnHx SVUHnnngAAAECAAQIAAAAAAAAAAAAAQIV/c3rWta361rXrX3Vank++bw27vvbD+0e9C/boQSiIpV UBJ+kyFwCk7R9tuGfb0YIwRckAG5kEVWFeqvVVKxc4IFwQT9DlUpcOlgLAUyVmsPX1iDvQVbcIgq bbYaD+uaeMc5WOOJRBRX3+h+o19PXmsLCQYERiIwuRjXNAXJQj0oxATuPURn02Ix6Z8kEqiD0lkD 2KHS0tRTVVPygguUGigCoMZvtLrtBW77xfeZ27kMVIfKbT7qJVCITUDJ1ycPUxvcgB2JPFCbucqp Ugg8K5ROYQGuZ47NiN7jQjEKv5llixQ5wFUQiOUwn4q+z040zXpt1rcMoAkhAQQRPFCSmQQEKIir OUX7Ek2rN7pkRRXJa83bN528nf2e4n5nveXAA22AAAAAAAAGb33oAAAAAAAAAAAHni8yorLkXCAE EkEEcUKJbVPVVFROHU2v4lrljXt8n5GPn39mpYWDAiMRGFzNjr2vnnr2D39vbGpp7bISx+MZVjbc e2741rL604+qBFI6XIoyUOnGlbT61Uez61z3REPufwnLSdnRBIHmxWNef2dfU+qif9sAfuYIuDbw jjid/SMbRt7in9zZAbDwxq41emqqqH2bKQUEL9CDhINQProi8afWdZcYI2bbPgRGDp4icvOeOKfb becZcQYuEFw3i2wRXIparNVNGAoEkIAAQQBa/fk/Qb+Y9NpYWDAiMRGFEiy1KcQ5VbrchLAC1gD9 xbKrtux2Xm/9V1ERrUR3cx+O/ifPMsAAAAAAAAAAAPW++vQAAAAAAAAAAAH+drWgBy1rWNhUz4fe mP397I3qlwGcxmFwMr6zlvXmfHrKk5ywVEAwcnw/MOS/Wysa1UOxLpfOFZEQggg2f6tBLNRFe960 01qXUgQSauSmP0iFTt03tN73l9yjhcaYm7gk9Nh+tYwSX1pHRM61rOeAUaopLpSPnRlagRFFOGtH DRaCdbb55b5a8N9ss8gUWKKLFNbrte4KKEiiLW9avGm1rVO5RkJ0pP6ChS5tpWJq8VU5qHQ7MECG wFlEHrV2J00RrU6hHc3Po4IkuUQlBURV0qs4rL2wcMhOJwSoDETX2GavjM1NcyikrX0P4Gvr+PjW FhIMCIxEYWZJJJJJ4AlLQQKpdb68NeFVScPJ11XnWeVDwq2voH7kK9fr8/rXKneLzvdT916/efze d47Xi88PPrACASQCABAAAAAAAgAAEAAADOc5jJFUlVVVTqjVgNZyELG3yoxMxhIbGZlxcj2P3Cpb JQA6+mYnXObzXH1OJmMFjBDhU6bUcb1moxOopsafFJgG23xE7x9iKpNHmdDl2xTazDj7YS0AxYj0 VNSO1OertIzWMvvLhGS2zgEKRru+H7Df0+3v3CwkGBEYiMLXtqPV+R56/ePCBgGw0+I92n2i277Z 2zuX97oILn4P7kAnUjGrpqGzrWHYk8wz8RgP9yoHBGn0s6l8ap2dVwbsgUXQD6kTvLRrLzWcVl85 9ffAGnxDsFIZlZmAUimsKy3zDhy6MVNmM2S+Ha0K8U8xCkOMw/Z46PnjPPPGAEAkgEACAAAAAABA AAIAAAABD/A7/4d6LryvXrWs1r7qu+cXhiOZeHPOBbQRg5sR+6BE9YDjWsPldTrT5IGsuoJFA6d8 aZNazrWURw5tQNg1Un10z61rWsnXt+T+RP5/P0nCwkGBEYiMLz8ESD+cJk791VD9/ZLfOR6HxeMf Hxp9OLObOyLMjGpp3zeprPyIeqVYT2KklgUMFCdkY1t8K28bztw0JgoDc8IYXS+01cTGtadGnDap w5DnBFytiHmRewdxNRdoxVU1rWt8P7a78oiEfP7nnCCa6ikkErAKKg4q+iL+r763qPUOxLpZLur3 kFcMilyhMlaTH7F8X14cNdeENAC1qAsIAIgS1rQ8er2m/Tt7d8LCQYERiIwsCRW03dXafuQbCTds YwpTqtGe77e8lfjrntZwBgAAAAAAAAA/xe/PPAAAAAYAwAAAAO9/j3MREQNXW+dTqnd7oKIU2HvK LMzEy6l2Q6ZbKyWFVmr5q8RUuDYA2+xgjSDKpa31y9+7xu6RuN7l2BzqVaikFFFBRT0VRskm1str 7bbbZ4OaUilVQOlFIiDzopinBJOFscL8OHCnxSIQYRCCQf2R83o+E3Q66+Wjb72zkk7hLKiOGtZr Vh3TQ9O+NcZ778PTfMW0DFcWUzW6Wqy9Tt8ZQkASyibziZmJe5BKkOf7/0S0HX6GKVs1Nc5kZsAA n3/R/Qb9fr6awsJBgRGIjC5sALPqxueVKQ++N+ggxgXcvdmmOx6q0/Jo1OYvcAAAAAAAAAAD8X69 evoAAAAGAMAAAACP36iLmNaiYjWpiNREf2FAEKgRiBxrjrx248ONs+HsNZYSCWqoeFzIrjY1qday 4/TZUWQwyUDrbbvtd53uvT/Ptr6oiH6nxL82QLgqbcPk+vV1aPXr16dy+gluU62C6YYzp1NRN9Xf GnGDbRAc2FUNRptZjWn04TSf7hCW0COH3PdcXkX5zfGcDQwEg25Cd4m4FZ201tqfbPswfvuFZfv7 n5EfHz7zhYSDAiMRGFkYIJHv7j3W/ff3n393A2bkBpGfVw2sa9t4hN4jey8XsgGgbCt/YUdJfWs1 rXNgaIDilQKARYgig4MqVdMU/4letd4Ktni7O5zb1+Df43vO9ne99gAAAAQAAGAQACBCDCAEIEAD Oc5iM5hdBL61q+ta1p97zZSQBxLcwdNfWta1nDjZcixUJW9402NRrWtbiEQBAQh/R/c9+X3oNna7 3uHucONr04SiviBMSlGjHiPbkDCvzDbvyopxZwWPPj6HwY+n07rCwkGBEYiMLnGkx5caHtfnp8ev UbqHcv6RCMBEuGQCdNeKXDpVS8Pa594HwsHJtzabezbdr3Wd726OnLAEfbSALYj95242ybbe9bdz 094mScIhUueQEJO9Y2zXje5p+kaIyDGUHDc7vzifbCNHOc59eZA1pB9D8Nf6oiH6l0wVag4hIiEJ 4krl0aOzF+NysJS9NL1cuGEwONaqFKipiflKSkpi/rNOuU4JiIwy7VL1rXhvWtanh+ee7We/x55M +T9X3oOjqO442sNtGEJAAAAAAAAAAAAAAAAAAAC9b/drK1elorh8lfqvun+v2/H3Lm9HQ00y00yt 14EWCzoRIMplRJmWm9iKCgoKCgoKCkQpheVvnu7m+u2+9va3O43u97t/Hx6SSSSSSSXuI020k4jW m2kkkkkkkkkku9v130kp9T7Xe9SSSSURlVVEQBVVURI1k0Hiq3hYSDAiMRGFwKqkRNJJJaSSSiEk ktaWLkJc59T3K9ZuB/HPargnr4WCtXzvkFDfrLpcLvEV3R25Hc4GTiJ6Gz3jEbSbxfG701VR52sI VwvNZ6unzKpOkxbMp2QqdflFYOu7eN41yXv3upDMmAqG6Dcorbg5S4vhXNUuGeZ6gcq+nrSJFdbO VK7iszWpoyG31fgW/n4Wfjdb7zN9+YdRizi+4Kd+bfl9fp40GqTMxumahQUKuqjWM47A5lUvc4zW 8YxiO2zicrvM4SVekZeZTq5RBftNddvNd0drns3uS2e5pVfYv1ErcMmNreqqhyeuSVxnvZ3F3zMa VnRKMk9HbnkQk03Y1G2jTNzuF13C3hTu6nEoEbcE5vgtDUae+HmT10C6oRqB3c3zl3dttM1uQ2jt 4ukdHdN10RmvMtpZni4l1fb5xM4LLRy0LhIitUuZwuc7xQxgK2qxreeZzgmMM179KRdEQD7ntznL bJbbbbbbt8gByWnctO4iEkkkkhpNxG+RrCwkGBEYiMLnJJJOgBJaWTMtLJktAD6mWlzLS5KhJJJJ MtK5pEQ0eJQYsYDtEawsJBgRGIjCoAgstoSDAiIeMLCQYERiIwpHuiWXhJJAAAHzJJaWSxJmKWZm VCUEhVJJJJJwiE1hjQqprOFhIMCIxEYW+gAAA5frbbbbbbbbbbbaqttqqqqqq+fdwqd554KnPCqq qqr5iqqqqqqqqpJJJJJLnZ+YP632cRNyo7NMhS0kyBS0tuUwPS/Rm1BOF9kt4f9QqNoHBCe/ufZE nha7XVbIQ0KUlU7wPmPfyRMx5qNfMVhUw6IZ2kGqbiVJEqY8hXFb1SgtZPXJW+7h7lzDIrLqW9lC oHw/Ze8nFfYxyTb3B1VNRnat8jkbNTz5jvvcrp3v6dfme+zdbYuS7t3UN27ts7q0m4mOtmJiZyYu Ym7YgeVmrdtlsa2by2lrlvLsVaYu7VlJ5iartjbXmoGzTNq5utYbG7ak2KrVzt2rnlqryrmLYrSb iNdVHUbbp2qm7YuZsZtt4pzYY2S0m7a0xtsVu7azdctybrt1xzmOmbzcCUJ2piZUnZoxuVLrHXK2 diZXcy3Z2KbttusqnMO6kqyUzebO0GOTbNsVbc1vOEapqis80Cazddu6brJa2axau4cbtmup2a21 jpJl0tuypndOprrs8a7NXOtu426K81munOJu7Zna3bDdOJleUpZttnYtVmy62ri7G51dpi7Vzllz ebTnk7IRvMuU01zWRzrTtU2HkmY1nVrTpusXbeRvDFzNddrxkWTjTpm8TLc1nVZaddmdZurpunTG ltdYvJ2G0dZmta1s662TW2u3DivLtxXZ0zqttsuVdjVt3EusuFLuyqibu2G2txtZryXbdtrlnS8t LSI7tddc1xMaDzrZslVu26tLjxtbXabnl23Ot2cpXbrOXWLduh2SurHnTryzYUwbp5btqvJNNMWq 5KttkzeZNtdvr+jZ3nLfe9ngAa2Vvl1/Xe2p653kWsramdk7l2i/mSEiRbJJIk2zm4tih6vcOlkD 6m9MaWlvCW/OOCJpKZXpRLTbb7/iSs5VzXKssk33yfKQ5oiaUXSqLvu+U22cjfDk8FFE3DkzLgMu FXP4sx+4JSzIAFAtghcH8Z1fLXfU61nOc5AAAAAAAAAAAAAAAAAAAAAAAAAxblbVVvnKvbvSnN1q kN2F3unrz5V2+KCU1JhP2Kglig2bY+U1hFKqi4vn+P6ft+v6fl9P0zExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMRu3Wo26 qt263brv1clcw8a8efx11PljxIw25FLvw1rAeBS42gMLdUQKUut0QFI0ut79+vn0+dzm853uTXO3 kTxmEsgGNMaActg0xscoJG0DTZAhCZDBAxiGwJQDTTATEwABAIG2MTbJBykEjGKQBuUyJCQklASk 0DUgIbEwSAbUgJjCts7y57Hc5b7CGsvGS6ORvHyJYcmcmItIUlqY7kMWswxcpGWZDYbcGYnswzIM T1iuYucnIypxYyKEocl3yQe9YOIXDJu8QWLNMjex74Tg7qsGIlis2s5IZHae23Bus1vfGPg3yUSL eGc4zdckDSCSwWPJBZkcx5hOIubJfNzRFwXNW1zLdtXNuG9mYskB64avKEphAb3Gc4nuczB2c0Pj xzJsTfJfOG8OaisLgctzNWkOPnNrClfA1MI3ks2XDOVrhGzZyxOpMlCwTzczJhmuQHGFXMDmcMvE tbwvB7xwkbWLgoViC8dtkzRwFVSLb5C3Fjp7G4bJoYNjp5hgtYTMIsi5blk49t8h8ke60m3O5wuJ u4Lc3rUxqINQ4qINGomQha0YEsWC6MCXLwn9jXLhllijFZ99rUa4xvgdKCkyS7dsqDioaMQQ3hCS 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 P4oP+3iwIN2zznWXTWRWIgAgno6NB57gcvS47xdjYxm7bZG2NrZbbWLRANIIyIkScBIJsKFBhnFY FUy4qlkSGwZnAlpXEzQ9v+O3JJAAAAAAAAARsQJ3vA3tlxvayJDYMzgS0riZm5JJJJO5VKqqtE2A h0IQr2QnI8wO/bPUUWEIS2whCW2Gb9fd27kzObCWZOk3YRiEZrJYQhLbCEJf2zdhCE22E/NsJtsI QhCfya9YHcQPz8fw8+fzHXshJ8iEM0mH5JE9/XMNQSKfmy0k9h+GbtMy3zvA+fpw4YgGM5OFFnsC /5L24ZSH8mXgWKcij+x72HdyMWJI94wuDSQJCkJAA9Po9tvT7jFivda9Nxq9r1Ys9dDrtpnMnNWl hZrExITNmk3Ex1sxMTOTFzE2xMTbtczHmbodLRVZm87cdtjF3bMXNzZNGEtrRU3beHWxpWzmc5u2 ctpbS8aq3Hbbsdt5tYm6z9hNz2PLlnUdTtq5rdZmY1NK8qdiZyLy0m11ZqOVo5lOFm3JrWaW1ibg VHa523amlbx2LmBy7LYGarbbnmJm7SyHKbtuLUqa7bLba3SUxtbBY61KzcueMzXbY13lZwvGxNi7 VbU3W3a6OdmZV2ZXHJ5s7LZrG52a3M3c3aaW6VWbsaGu1stPHjJY3mo66djreNZtm5UwprW7MuN1 lW27rtyXI1zl1ZVpirm2w7ldY2bOVJm8y8i3VNunTddtMV1vHK6mbDbWma27cyvNM2jc61m1Ybd2 qzTptpSzhmzoZqV1XjJ07ZurYDqmLzZibmvbvcvblVluyebWJVjXbc2V2nVSuttt06tZmy1pu2Ju a3llsOu1Zty1bNrXZrrl3G1hZ1MxW7a1M4uZtrs5aaypVmko64u21a2lF5WutZmsk7C23m1xbTwm 27bzZtpYc52xdu5utbJnOmVUIKohJUopUoUVFVAif0/37x7/2+vf7HtvB5zO05iYmJiYmJiYmJiY mJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJvuTepiYmJiYmJi YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJi YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJi 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 OwA= ------1NdBnQhI-0NIkMSEFxuW3MCry:1243935700 Content-Type: text/plain; name="ps.txt" Content-Disposition: attachment; filename="ps.txt" Content-Transfer-Encoding: base64 IyBMQ19BTEw9QyBwcyAtYXV4bCAtTSAvdG1wL2NyYXNoL3ZtY29yZS4wIC1OIC90bXAvY3Jhc2gv a2VybmVsLnN5bWJvbHMNClVTRVIgICAgIFBJRCAlQ1BVICVNRU0gICBWU1ogICBSU1MgIFRUICBT VEFUIFNUQVJURUQgICAgICBUSU1FIENPTU1BTkQgICAgICAgICAgICBVSUQgIFBQSUQgQ1BVIFBS SSBOSSBNV0NIQU4NCnJvb3QgICAgICAgMCAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETHMg ICAxSmFuNzAgLTI4MzAyMzg0Oi00MC41NSBbc3dhcHBlcl0gICAgICAgICAgICAwICAgICAwICAg MCAtMTYgIDAgc2NoZWQNCnJvb3QgICAgICAgMSAgMC4wICAwLjAgIDE4ODggICA1MzIgID8/ICBE THMgICAxSmFuNzAgLTIyOTUzMDgzOi0yMi41NSBbaW5pdF0gICAgICAgICAgICAgICAwICAgICAw ICAgMCAgIDggIDAgd2FpdA0Kcm9vdCAgICAgICAyICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8g IERMICAgIDFKYW43MCAtMzUwMTg5MjQ6LTU5LjU1IFtnX2V2ZW50XSAgICAgICAgICAgIDAgICAg IDAgICAwICAtOCAgMCAtDQpyb290ICAgICAgIDMgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAg REwgICAgMUphbjcwIDE5NzMzODY1OjM2LjAwIFtnX3VwXSAgICAgICAgICAgICAgIDAgICAgIDAg ICAwICAtOCAgMCAtDQpyb290ICAgICAgIDQgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwg ICAgMUphbjcwIC0yMTA4NDQ5NjowMC41NSBbZ19kb3duXSAgICAgICAgICAgICAwICAgICAwICAg MCAgLTggIDAgLQ0Kcm9vdCAgICAgICA1ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIERMICAg IDFKYW43MCAgIDA6MDAuMDAgW3hwdF90aHJkXSAgICAgICAgICAgMCAgICAgMCAgIDAgIC04ICAw IGNjYl9zYw0Kcm9vdCAgICAgICA2ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIERMICAgIDFK YW43MCAgIDA6MDAuMDAgW2FjcGlfdGFza18wXSAgICAgICAgMCAgICAgMCAgIDAgICA4ICAwIC0N CnJvb3QgICAgICAgNyAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgICAw OjAwLjAwIFthY3BpX3Rhc2tfMV0gICAgICAgIDAgICAgIDAgICAwICAgOCAgMCAtDQpyb290ICAg ICAgIDggIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwICAgMDowMC4wMCBb YWNwaV90YXNrXzJdICAgICAgICAwICAgICAwICAgMCAgIDggIDAgLQ0Kcm9vdCAgICAgICA5ICAw LjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIERMICAgIDFKYW43MCAgIDA6MDAuMDAgW2txdWV1ZSB0 YXNrcV0gICAgICAgMCAgICAgMCAgIDAgICA4ICAwIC0NCnJvb3QgICAgICAxMCAgMC4wICAwLjAg ICAgIDAgICAgIDAgID8/ICBSTCAgICAxSmFuNzAgMjI3NDkxMjg6MzAuMDAgW2lkbGU6IGNwdTFd ICAgICAgICAgMCAgICAgMCAgIDAgMTcxICAwIC0NCnJvb3QgICAgICAxMSAgMC4wICAwLjAgICAg IDAgICAgIDAgID8/ICBSTCAgICAxSmFuNzAgOTIxOTU5MjoxNy4wMCBbaWRsZTogY3B1MF0gICAg ICAgICAwICAgICAwICAgMCAxNzEgIDAgLQ0Kcm9vdCAgICAgIDEyICAwLjAgIDAuMCAgICAgMCAg ICAgMCAgPz8gIFJMICAgIDFKYW43MCAxNDA4Nzc2Mjo0NS4wMCBbc3dpNDogY2xvY2tdICAgICAg ICAwICAgICAwICAgMCAtMzIgIDAgLQ0Kcm9vdCAgICAgIDEzICAwLjAgIDAuMCAgICAgMCAgICAg MCAgPz8gIFdMICAgIDFKYW43MCAgIDA6MDAuMDAgW3N3aTM6IHZtXSAgICAgICAgICAgMCAgICAg MCAgIDAgLTM2ICAwIC0NCnJvb3QgICAgICAxNCAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBS TCAgICAxSmFuNzAgMTc5MDAyMzY6NTkuMDAgW3N3aTE6IG5ldF0gICAgICAgICAgMCAgICAgMCAg IDAgLTQ0ICAwIC0NCnJvb3QgICAgICAxNSAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAg ICAxSmFuNzAgLTI5MzcwMTg5OjAwLjU1IFt5YXJyb3ddICAgICAgICAgICAgIDAgICAgIDAgICAw ICA0NCAgMCAtDQpyb290ICAgICAgMTYgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgV0wgICAg MUphbjcwICAgMDowMC4wMCBbc3dpNjogdGFzayBxdWV1ICAgICAwICAgICAwICAgMCAtMjQgIDAg LQ0Kcm9vdCAgICAgIDE3ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIFdMICAgIDFKYW43MCAy NzQwMDk6MjQuMDAgW3N3aTI6IGNhbWJpb10gICAgICAgMCAgICAgMCAgIDAgLTQwICAwIC0NCnJv b3QgICAgICAxOCAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBXTCAgICAxSmFuNzAgICAwOjAw LjAwIFtzd2k1OiArXSAgICAgICAgICAgIDAgICAgIDAgICAwIC0yOCAgMCAtDQpyb290ICAgICAg MTkgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDE4ODo1My4wMCBbdGhy ZWFkIHRhc2txXSAgICAgICAwICAgICAwICAgMCAgIDggIDAgLQ0Kcm9vdCAgICAgIDIwICAwLjAg IDAuMCAgICAgMCAgICAgMCAgPz8gIFdMICAgIDFKYW43MCA0NjAwMTY4OjQ2LjAwIFtzd2k2OiBH aWFudCB0YXMgICAgIDAgICAgIDAgICAwIC0yNCAgMCAtDQpyb290ICAgICAgMjEgIDAuMCAgMC4w ICAgICAwICAgICAwICA/PyAgV0wgICAgMUphbjcwICAgMDowMC4wMCBbaXJxOTogYWNwaTBdICAg ICAgICAwICAgICAwICAgMCAtNTIgIDAgLQ0Kcm9vdCAgICAgIDIyICAwLjAgIDAuMCAgICAgMCAg ICAgMCAgPz8gIFJMICAgIDFKYW43MCAtMTA1NzU3MDg6LTIyLjU1IFtlbTAgdGFza3FdICAgICAg ICAgIDAgICAgIDAgICAwIC02OCAgMCAtDQpyb290ICAgICAgMjMgIDAuMCAgMC4wICAgICAwICAg ICAwICA/PyAgV0wgICAgMUphbjcwICAgMDowMC4wMCBbaXJxMTg6IGVtMSB1aGNpICAgICAwICAg ICAwICAgMCAtNjggIDAgLQ0Kcm9vdCAgICAgIDI0ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8g IERMICAgIDFKYW43MCAzMjY0MTE4OjQwLjAwIFt1c2IwXSAgICAgICAgICAgICAgIDAgICAgIDAg ICAwICAgOCAgMCB1c2JldnQNCnJvb3QgICAgICAyNSAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ ICBETCAgICAxSmFuNzAgICAwOjAwLjAwIFt1c2J0YXNrLWhjXSAgICAgICAgIDAgICAgIDAgICAw ICAgOCAgMCB1c2J0c2sNCnJvb3QgICAgICAyNiAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBE TCAgICAxSmFuNzAgICAwOjAwLjAwIFt1c2J0YXNrLWRyXSAgICAgICAgIDAgICAgIDAgICAwICAg OCAgMCB1c2J0c2sNCnJvb3QgICAgICAyNyAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBXTCAg ICAxSmFuNzAgICAwOjAwLjAwIFtpcnEyMTogdWhjaTErXSAgICAgIDAgICAgIDAgICAwIC02NCAg MCAtDQpyb290ICAgICAgMjggIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcw IDM2MDczMjY6NDguMDAgW3VzYjFdICAgICAgICAgICAgICAgMCAgICAgMCAgIDAgICA4ICAwIHVz YmV2dA0Kcm9vdCAgICAgIDI5ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIFdMICAgIDFKYW43 MCAgIDA6MDAuMDAgW2lycTE3OiB1aGNpMiBlaCAgICAgMCAgICAgMCAgIDAgLTY0ICAwIC0NCnJv b3QgICAgICAzMCAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgMzM4MTg2 OToxNy4wMCBbdXNiMl0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgIDggIDAgdXNiZXZ0DQpy b290ICAgICAgMzEgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDM1MTgz MzM6MTQuMDAgW3VzYjNdICAgICAgICAgICAgICAgMCAgICAgMCAgIDAgICA4ICAwIHVzYmV2dA0K cm9vdCAgICAgIDMyICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIFJMICAgIDFKYW43MCA2NzI2 NzU6MjMuMDAgW2lycTIzOiB1aGNpMyBlaCAgICAgMCAgICAgMCAgIDAgLTY0ICAwIC0NCnJvb3Qg ICAgICAzMyAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgMzI1NjIzMjow Ny4wMCBbdXNiNF0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgIDggIDAgdXNiZXZ0DQpyb290 ICAgICAgMzQgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgV0wgICAgMUphbjcwICAgMDowMC4w MCBbaXJxMTk6IHVoY2k0XSAgICAgICAwICAgICAwICAgMCAtNjQgIDAgLQ0Kcm9vdCAgICAgIDM1 ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIERMICAgIDFKYW43MCAzMzAxMDEyOjAzLjAwIFt1 c2I1XSAgICAgICAgICAgICAgIDAgICAgIDAgICAwICAgOCAgMCB1c2JldnQNCnJvb3QgICAgICAz NiAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgMzM3Njk0Nzo1Ni4wMCBb dXNiNl0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgIDggIDAgdXNiZXZ0DQpyb290ICAgICAg MzcgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDQxNDM1OTU6NTIuMDAg W3VzYjddICAgICAgICAgICAgICAgMCAgICAgMCAgIDAgICA4ICAwIHVzYmV2dA0Kcm9vdCAgICAg IDM4ICAwLjAgIDAuMCAgICAgMCAgICAgMCAgPz8gIERMICAgIDFKYW43MCAgIDA6MDAuMDAgW2Vt MSB0YXNrcV0gICAgICAgICAgMCAgICAgMCAgIDAgLTY4ICAwIC0NCnJvb3QgICAgICAzOSAgMC4w ICAwLjAgICAgIDAgICAgIDAgID8/ICBXTCAgICAxSmFuNzAgMTcwMjY5NDQ6MTQuMDAgW2lycTE0 OiBhdGEwXSAgICAgICAgMCAgICAgMCAgIDAgLTY0ICAwIC0NCnJvb3QgICAgICA0MCAgMC4wICAw LjAgICAgIDAgICAgIDAgID8/ICBXTCAgICAxSmFuNzAgICAwOjAwLjAwIFtpcnExNTogYXRhMV0g ICAgICAgIDAgICAgIDAgICAwIC02NCAgMCAtDQpyb290ICAgICAgNDEgIDAuMCAgMC4wICAgICAw ICAgICAwICA/PyAgV0wgICAgMUphbjcwIDQ1MzA2MDozOS4wMCBbaXJxMTogYXRrYmQwXSAgICAg ICAwICAgICAwICAgMCAtNjAgIDAgLQ0Kcm9vdCAgICAgIDQyICAwLjAgIDAuMCAgICAgMCAgICAg MCAgPz8gIERMICAgIDFKYW43MCAyODg4NjMwOjAwLjAwIFtkdW1teW5ldF0gICAgICAgICAgIDAg ICAgIDAgICAwIC02OCAgMCAtDQpyb290ICAgICAgNDMgIDAuMCAgMC4wICAgICAwICAgICAwICA/ PyAgREwgICAgMUphbjcwIDUzNzQ1NDoyNC4wMCBbbWQwXSAgICAgICAgICAgICAgICAwICAgICAw ICAgMCAgLTggIDAgbWR3YWl0DQpyb290ICAgICAgNDQgIDAuMCAgMC4wICAgICAwICAgICAwICA/ PyAgREwgICAgMUphbjcwIC0yMTE0MTA1OTotNDcuNTUgW3BhZ2VkYWVtb25dICAgICAgICAgMCAg ICAgMCAgIDAgLTE2ICAwIHBzbGVlcA0Kcm9vdCAgICAgIDQ1ICAwLjAgIDAuMCAgICAgMCAgICAg MCAgPz8gIERMICAgIDFKYW43MCAgNzU6NTcuMDAgW3ZtZGFlbW9uXSAgICAgICAgICAgMCAgICAg MCAgIDAgIDIwICAwIHBzbGVlcA0Kcm9vdCAgICAgIDQ2ICAwLjAgIDAuMCAgICAgMCAgICAgMCAg Pz8gIERMICAgIDFKYW43MCA3MzcyNDU6MTUuMDAgW3BhZ2V6ZXJvXSAgICAgICAgICAgMCAgICAg MCAgIDAgMTcxICAwIHBnemVybw0Kcm9vdCAgICAgIDQ3ICAwLjAgIDAuMCAgICAgMCAgICAgMCAg Pz8gIERMICAgIDFKYW43MCAtNTIxNTYwODotNTkuNTUgW2lkbGVwb2xsXSAgICAgICAgICAgMCAg ICAgMCAgIDAgMTcxICAwIHBvbGxpZA0Kcm9vdCAgICAgIDQ4ICAwLjAgIDAuMCAgICAgMCAgICAg MCAgPz8gIERMICAgIDFKYW43MCAtMzUyMjA3OTQ6LTQzLjU1IFtidWZkYWVtb25dICAgICAgICAg IDAgICAgIDAgICAwIC0xNiAgMCBwc2xlZXANCnJvb3QgICAgICA0OSAgMC4wICAwLjAgICAgIDAg ICAgIDAgID8/ICBETCAgICAxSmFuNzAgMzI2Mzg5NjoxNi4wMCBbdm5scnVdICAgICAgICAgICAg ICAwICAgICAwICAgMCAgLTQgIDAgdmxydXd0DQpyb290ICAgICAgNTAgIDAuMCAgMC4wICAgICAw ICAgICAwICA/PyAgREwgICAgMUphbjcwIC0xNDAwODI4NjotNTEuNTUgW3N5bmNlcl0gICAgICAg ICAgICAgMCAgICAgMCAgIDAgIDIwICAwIHN5bmNlcg0Kcm9vdCAgICAgIDUxICAwLjAgIDAuMCAg ICAgMCAgICAgMCAgPz8gIERMICAgIDFKYW43MCAtNzU3NDQzNjotMTkuNTUgW3NvZnRkZXBmbHVz aF0gICAgICAgMCAgICAgMCAgIDAgLTE2ICAwIHNkZmx1cw0Kcm9vdCAgICAgMTE4ICAwLjAgIDAu MCAgICAgMCAgICAgMCAgPz8gIERMICAgIDFKYW43MCAtMjYzNDU0Mzg6LTE0LjU1IFttZDFdICAg ICAgICAgICAgICAgIDAgICAgIDAgICAwICAtOCAgMCBtZHdhaXQNCnJvb3QgICAgIDI4MCAgMC4w ICAwLjAgIDMwODggICAgNjQgID8/ICBEICAgICAxSmFuNzAgNTE4ODA1NzozOC4wMCBbZGhjbGll bnRdICAgICAgICAgICAwICAgICAxICAgMCAgNDggIDAgc2VsZWN0DQpfZGhjcCAgICAzMDIgIDAu MCAgMC4wICAzMDg4ICAgIDY0ICA/PyAgRHMgICAgMUphbjcwIDI3NDAyNjYxOjQzLjAwIFtkaGNs aWVudF0gICAgICAgICAgNjUgICAgIDEgICAwICA0NCAgMCBzZWxlY3QNCnJvb3QgICAgIDM5NiAg MC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgLTMwMzIyOTgzOi0yMi41NSBb bWQ1XSAgICAgICAgICAgICAgICAwICAgICAwICAgMCAgLTggIDAgbWR3YWl0DQpyb290ICAgICA0 MDQgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDI4NjQ1NDY2OjAxLjAw IFttZDEwXSAgICAgICAgICAgICAgIDAgICAgIDAgICAwICAtOCAgMCBtZHdhaXQNCnJvb3QgICAg IDQxMiAgMC4wICAwLjAgICAgIDAgICAgIDAgID8/ICBETCAgICAxSmFuNzAgLTI1ODE5MjY5Oi01 NS41NSBbbWQxNV0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgLTggIDAgbWR3YWl0DQpyb290 ICAgICA0MjAgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDI3MzY5MTox NS4wMCBbbWQyMF0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgLTggIDAgbWR3YWl0DQpyb290 ICAgICA1MTAgIDAuMCAgMC4wICAgICAwICAgICAwICA/PyAgREwgICAgMUphbjcwIDk5MjMxMTo1 MC4wMCBbbWQyMV0gICAgICAgICAgICAgICAwICAgICAwICAgMCAgLTggIDAgbWR3YWl0DQpyb290 ICAgICA1NTQgIDAuMCAgMC4wICAzMzAwICAgIDMyICA/PyAgRHMgICAgMUphbjcwIC0xNzY0NTM2 ODotNDUuNTUgW3JwY2JpbmRdICAgICAgICAgICAgMCAgICAgMSAgIDAgIDQ0ICAwIHNlbGVjdA0K cm9vdCAgICAgNTU2ICAwLjAgIDAuMCAyNjYyODggICAgMTYgID8/ICBEcyAgICAxSmFuNzAgLTI2 MDcwMjgzOi00NC41NSBbcnBjLnN0YXRkXSAgICAgICAgICAwICAgICAxICAgMCAgNDQgIDAgc2Vs ZWN0DQpyb290ICAgICA1NjkgIDAuMCAgMC4wICA2MjQ4ICAgIDQ0ICA/PyAgRHMgICAgMUphbjcw IC0yNTQxMjgxMDotMzYuNTUgW3JwYy5sb2NrZF0gICAgICAgICAgMCAgICAgMSAgIDAgIDQ0ICAw IHNlbGVjdA0KZGFlbW9uICAgNTczICAwLjAgIDAuMCAgNjI0OCAgICA0NCAgPz8gIEQgICAgIDFK YW43MCA5NTEwOjQwLjAwIFtycGMubG9ja2RdICAgICAgICAgIDEgICA1NjkgICAwICAgNCAgMCBu ZnNsb2MNCnJvb3QgICAgIDk0NiAgMC4wICAwLjAgIDMxNDQgICAgMzIgID8/ICBScyAgICAxSmFu NzAgMjc2NzMzMjY6NDUuMDAgW3N5c2xvZ2RdICAgICAgICAgICAgMCAgICAgMSAgIDAgIDQ0ICAw IC0NCnF1YWdnYSAgIDk1OCAgMC4wICAwLjAgIDQ4MTIgICAxNTIgID8/ICBEcyAgICAxSmFuNzAg LTc2MzAwOTQ6LTU0LjU1IFt6ZWJyYV0gICAgICAgICAgICAxMDEgICAgIDEgICAwICA0NCAgMCBz ZWxlY3QNCnF1YWdnYSAgIDk2NCAgMC4wICAwLjAgMTUxNzYgICAgIDggID8/ICBScyAgICAxSmFu NzAgODA4MjE3NjoyMi4wMCBbb3NwZmRdICAgICAgICAgICAgMTAxICAgICAxICAgMCAgNDQgIDAg LQ0Kcm9vdCAgICAxMDYyICAwLjAgIDAuMCAgNzAwMCAgICAgNCAgPz8gIEQgICAgIDFKYW43MCAt MjgwMjMyNzk6LTI1LjU1IFtwZXJsXSAgICAgICAgICAgICAgIDAgICAgIDEgICAwICAgNCAgMCBh Y2NlcHQNCnJvb3QgICAgMTA4NCAgMC4wICAwLjAgNjU5OTIgICAyMzIgID8/ICBScyAgICAxSmFu NzAgLTE5MTM1NTE4Oi00Ny41NSBbbXBkXSAgICAgICAgICAgICAgICAwICAgICAxICAgMCAgNjIg IDAgLQ0Kcm9vdCAgICAxMDk0ICAwLjAgIDAuMCA0NDcyOCAgICAyNCAgPz8gIEQgICAgIDFKYW43 MCAzMTM2ODU3Mjo0OS4wMCBbc25tcGRdICAgICAgICAgICAgICAwICAgICAxICAgMCAgNDQgIDAg c2VsZWN0DQpuYWdpb3MgIDExMDAgIDAuMCAgMC4wICAzMDg4ICAgIDIwICA/PyAgRHMgICAgMUph bjcwIDMwMDU3ODY3OjQzLjAwIFtucnBlXSAgICAgICAgICAgIDEwMjMgICAgIDEgICAwICAgNCAg MCBhY2NlcHQNCnJvb3QgICAgMTE0MCAgMC4wICAwLjAgIDU3NzYgICAzOTIgID8/ICBEcyAgICAx SmFuNzAgLTk2NTI4OTA6LTguNTUgW250cGRdICAgICAgICAgICAgICAgMCAgICAgMSAgIDAgIDQ0 ICAwIHNlbGVjdA0Kcm9vdCAgICAxMjk0ICAwLjAgIDAuMCAgNDk0OCAgIDE4OCAgPz8gIERzICAg IDFKYW43MCAzNDQ5ODE0NzowMS41NSBbc3NoZF0gICAgICAgICAgICAgICAwICAgICAxICAgMCAg NDQgIDAgc2VsZWN0DQpyb290ICAgIDEzMDggIDAuMCAgMC4wICAzMTcyICAgIDMyICA/PyAgRHMg ICAgMUphbjcwIDMxODg2NTg5OjQxLjAwIFtjcm9uXSAgICAgICAgICAgICAgIDAgICAgIDEgICAw ICAgOCAgMCBuYW5zbHANCnJvb3QgICAgMTMzMyAgMC4wICAwLjAgIDM0MjAgICAxMDggID8/ICBE ICAgICAxSmFuNzAgMzM5NTI0MDQ6MDEuNTUgW3NoXSAgICAgICAgICAgICAgICAgMCAgICAgMSAg IDAgICA4ICAwIHdhaXQNCnJvb3QgICAgMTQwMSAgMC4wICAwLjAgIDMxNDQgICAgMjAgID8/ICBE cysgICAxSmFuNzAgNDUyNzE6MTMuMDAgW2dldHR5XSAgICAgICAgICAgICAgMCAgICAgMSAgIDAg ICA1ICAwIHR0eWluDQpyb290ICAgIDE0MDIgIDAuMCAgMC4wICAzMTQ0ICAgIDIwICA/PyAgRHMr ICAgMUphbjcwIDQwNzgzOjI0LjAwIFtnZXR0eV0gICAgICAgICAgICAgIDAgICAgIDEgICAwICAg NSAgMCB0dHlpbg0Kcm9vdCAgICAxNDAzICAwLjAgIDAuMCAgMzE0NCAgICAyMCAgPz8gIERzKyAg IDFKYW43MCA0MzUyMzozMy4wMCBbZ2V0dHldICAgICAgICAgICAgICAwICAgICAxICAgMCAgIDUg IDAgdHR5aW4NCnJvb3QgICAgMTQwNCAgMC4wICAwLjAgIDMxNDQgICAgMjAgID8/ICBEcysgICAx SmFuNzAgMzk0NTM6MzEuMDAgW2dldHR5XSAgICAgICAgICAgICAgMCAgICAgMSAgIDAgICA1ICAw IHR0eWluDQpyb290ICAgIDE0MDUgIDAuMCAgMC4wICAzMTQ0ICAgIDIwICA/PyAgRHMrICAgMUph bjcwIDQwMzg3OjA1LjAwIFtnZXR0eV0gICAgICAgICAgICAgIDAgICAgIDEgICAwICAgNSAgMCB0 dHlpbg0Kcm9vdCAgICAxNDA2ICAwLjAgIDAuMCAgMzE0NCAgICAyMCAgPz8gIERzKyAgIDFKYW43 MCAzOTI3ODo0NS4wMCBbZ2V0dHldICAgICAgICAgICAgICAwICAgICAxICAgMCAgIDUgIDAgdHR5 aW4NCnJvb3QgICAgMTQwNyAgMC4wICAwLjAgIDMxNDQgICAgMjAgID8/ICBEcysgICAxSmFuNzAg Mzk4MjY6MTYuMDAgW2dldHR5XSAgICAgICAgICAgICAgMCAgICAgMSAgIDAgICA1ICAwIHR0eWlu DQpyb290ICAgIDE0MDggIDAuMCAgMC4wICAzMTQ0ICAgIDIwICA/PyAgRHMrICAgMUphbjcwIDQw MDM2OjQ0LjAwIFtnZXR0eV0gICAgICAgICAgICAgIDAgICAgIDEgICAwICAgNSAgMCB0dHlpbg0K cm9vdCAgIDY5NTIzICAwLjAgIDAuMCAgMTMzNiAgICAgNCAgPz8gIEQgICAgIDFKYW43MCAgIDA6 MDAuMDAgW3NsZWVwXSAgICAgICAgICAgICAgMCAgMTMzMyAgIDAgICA4ICAwIG5hbnNscA0K ------1NdBnQhI-0NIkMSEFxuW3MCry:1243935700 Content-Type: text/plain; name="kgdb.txt" Content-Disposition: attachment; filename="kgdb.txt" Content-Transfer-Encoding: base64 IyBrZ2RiIGtlcm5lbC5kZWJ1ZyB2bWNvcmUuMA0KR05VIGdkYiA2LjEuMSBbRnJlZUJTRF0NCkNv cHlyaWdodCAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KR0RCIGlzIGZyZWUg c29mdHdhcmUsIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQg eW91IGFyZQ0Kd2VsY29tZSB0byBjaGFuZ2UgaXQgYW5kL29yIGRpc3RyaWJ1dGUgY29waWVzIG9m IGl0IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4NClR5cGUgInNob3cgY29weWluZyIgdG8gc2Vl IHRoZSBjb25kaXRpb25zLg0KVGhlcmUgaXMgYWJzb2x1dGVseSBubyB3YXJyYW50eSBmb3IgR0RC LiAgVHlwZSAic2hvdyB3YXJyYW50eSIgZm9yIGRldGFpbHMuDQpUaGlzIEdEQiB3YXMgY29uZmln dXJlZCBhcyAiaTM4Ni1tYXJjZWwtZnJlZWJzZCIuLi5ObyBzdHJ1Y3QgdHlwZSBuYW1lZCBsaW5r ZXJfZmlsZS4NCk5vIHN0cnVjdCB0eXBlIG5hbWVkIGxpbmtlcl9maWxlLg0KTm8gc3RydWN0IHR5 cGUgbmFtZWQgbGlua2VyX2ZpbGUuDQpBdHRlbXB0IHRvIGV4dHJhY3QgYSBjb21wb25lbnQgb2Yg YSB2YWx1ZSB0aGF0IGlzIG5vdCBhIHN0cnVjdHVyZS4NCk5vIHN0cnVjdCB0eXBlIG5hbWVkIGxp bmtlcl9maWxlLg0KTm8gc3RydWN0IHR5cGUgbmFtZWQgbGlua2VyX2ZpbGUuDQpObyBzdHJ1Y3Qg dHlwZSBuYW1lZCBsaW5rZXJfZmlsZS4NCkF0dGVtcHQgdG8gZXh0cmFjdCBhIGNvbXBvbmVudCBv ZiBhIHZhbHVlIHRoYXQgaXMgbm90IGEgc3RydWN0dXJlLg0KDQpBdHRlbXB0IHRvIGV4dHJhY3Qg YSBjb21wb25lbnQgb2YgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIHN0cnVjdHVyZSBwb2ludGVyLg0K QXR0ZW1wdCB0byBleHRyYWN0IGEgY29tcG9uZW50IG9mIGEgdmFsdWUgdGhhdCBpcyBub3QgYSBz dHJ1Y3R1cmUgcG9pbnRlci4NCkF0dGVtcHQgdG8gZXh0cmFjdCBhIGNvbXBvbmVudCBvZiBhIHZh bHVlIHRoYXQgaXMgbm90IGEgc3RydWN0dXJlIHBvaW50ZXIuDQpBdHRlbXB0IHRvIGV4dHJhY3Qg YSBjb21wb25lbnQgb2YgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIHN0cnVjdHVyZSBwb2ludGVyLg0K IzAgIDB4ODA2M2Q2YjAgaW4gZG9hZHVtcCAoKQ0KKGtnZGIpIGJ0DQojMCAgMHg4MDYzZDZiMCBp biBkb2FkdW1wICgpDQojMSAgMHg4MDYzZGM0NCBpbiBib290ICgpDQojMiAgMHg4MDYzZTBjYSBp biBwYW5pYyAoKQ0KIzMgIDB4ODA3ZGFiM2QgaW4gdHJhcF9mYXRhbCAoKQ0KIzQgIDB4ODA3ZGFl YmEgaW4gdHJhcF9wZmF1bHQgKCkNCiM1ICAweDgwN2RiN2JkIGluIHRyYXAgKCkNCiM2ICAweDgw N2MyYTNiIGluIGNhbGx0cmFwICgpDQojNyAgMHg4MDZkY2I4OCBpbiBybl9tYXRjaCAoKQ0KIzgg IDB4ODA2ZGRjOGEgaW4gcm5fbG9va3VwICgpDQojOSAgMHg4MDcwZTQ2MCBpbiBpcGZ3X2NoayAo YXJncz0weGU3MDE3NWZjKSBhdCAuLi8uLi8uLi9uZXRpbmV0L2lwX2Z3Mi5jOjE4OTQNCiMxMCAw eDgwNzEwYzNkIGluIGlwZndfY2hlY2tfaW4gKGFyZz0weDAsIG0wPTB4ZTcwMTc3MDAsIGlmcD0w eDkxYzVhODAwLCBkaXI9MSwgaW5wPTB4MCkgYXQgLi4vLi4vLi4vbmV0aW5ldC9pcF9md19wZmls LmM6MTI1DQojMTEgMHg4MDZkYzIwZiBpbiBwZmlsX3J1bl9ob29rcyAoKQ0KIzEyIDB4ODA3MTM5 ODQgaW4gaXBfaW5wdXQgKG09MHg5MTk1NGMwMCkgYXQgLi4vLi4vLi4vbmV0aW5ldC9pcF9pbnB1 dC5jOjQxNg0KIzEzIDB4ODA2ZWMwZDkgaW4gbmdfaWZhY2VfcmN2ZGF0YSAoKQ0KIzE0IDB4ODA2 ZTk1NzAgaW4gbmdfYXBwbHlfaXRlbSAoKQ0KIzE1IDB4ODA2ZTg1NjkgaW4gbmdfc25kX2l0ZW0g KCkNCiMxNiAweDgwNmU5NTcwIGluIG5nX2FwcGx5X2l0ZW0gKCkNCiMxNyAweDgwNmU4NTY5IGlu IG5nX3NuZF9pdGVtICgpDQojMTggMHg4MDZlOTU3MCBpbiBuZ19hcHBseV9pdGVtICgpDQojMTkg MHg4MDZlODU2OSBpbiBuZ19zbmRfaXRlbSAoKQ0KIzIwIDB4ODA2ZjE2YTcgaW4gbmdfcHBwX3By b3RvX3JlY3YgKCkNCiMyMSAweDgwNmYzZWQyIGluIG5nX3BwcF9yY3ZkYXRhICgpDQojMjIgMHg4 MDZlOTU3MCBpbiBuZ19hcHBseV9pdGVtICgpDQojMjMgMHg4MDZlODU2OSBpbiBuZ19zbmRfaXRl bSAoKQ0KIzI0IDB4ODA2ZTk1NzAgaW4gbmdfYXBwbHlfaXRlbSAoKQ0KIzI1IDB4ODA2ZTg1Njkg aW4gbmdfc25kX2l0ZW0gKCkNCiMyNiAweDgwNmVlM2MzIGluIG5nX2tzb2NrZXRfaW5jb21pbmcy ICgpDQojMjcgMHg4MDZlOTY5ZCBpbiBuZ19hcHBseV9pdGVtICgpDQojMjggMHg4MDZlYThhYSBp biBuZ2ludHIgKCkNCiMyOSAweDgwNmRhYjcyIGluIHN3aV9uZXQgKCkNCiMzMCAweDgwNjFlMjY1 IGluIGl0aHJlYWRfbG9vcCAoKQ0KIzMxIDB4ODA2MWFkZjUgaW4gZm9ya19leGl0ICgpDQojMzIg MHg4MDdjMmFiMCBpbiBmb3JrX3RyYW1wb2xpbmUgKCkNCihrZ2RiKSBmciA5DQojOSAgMHg4MDcw ZTQ2MCBpbiBpcGZ3X2NoayAoYXJncz0weGU3MDE3NWZjKSBhdCAuLi8uLi8uLi9uZXRpbmV0L2lw X2Z3Mi5jOjE4OTQNCjE4OTQgICAgICAgICAgICBzYS5zaW5fbGVuID0gODsNCihrZ2RiKSBsaXN0 DQoxODg5ICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNhOw0KMTg5MA0KMTg5MSAgICAg ICAgICAgIGlmICh0YmwgPj0gSVBGV19UQUJMRVNfTUFYKQ0KMTg5MiAgICAgICAgICAgICAgICAg ICAgcmV0dXJuICgwKTsNCjE4OTMgICAgICAgICAgICBybmggPSBjaC0+dGFibGVzW3RibF07DQox ODk0ICAgICAgICAgICAgc2Euc2luX2xlbiA9IDg7DQoxODk1ICAgICAgICAgICAgc2Euc2luX2Fk ZHIuc19hZGRyID0gYWRkcjsNCjE4OTYgICAgICAgICAgICBlbnQgPSAoc3RydWN0IHRhYmxlX2Vu dHJ5ICopKHJuaC0+cm5oX2xvb2t1cCgmc2EsIE5VTEwsIHJuaCkpOw0KMTg5NyAgICAgICAgICAg IGlmIChlbnQgIT0gTlVMTCkgew0KMTg5OCAgICAgICAgICAgICAgICAgICAgKnZhbCA9IGVudC0+ dmFsdWU7DQooa2dkYikgcCAqY21kDQokMSA9IHtvcGNvZGUgPSBPX0lQX1NSQ19MT09LVVAsIGxl biA9IDEgJ1wwMDEnLCBhcmcxID0gMn0NCihrZ2RiKSBwIGNtZC0+YXJnMQ0KJDIgPSAyDQooa2dk YikgcCBhDQpWYXJpYWJsZSAiYSIgaXMgbm90IGF2YWlsYWJsZS4NCg== ------1NdBnQhI-0NIkMSEFxuW3MCry:1243935700-- From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 09:52:06 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 08D951065670 for ; Tue, 2 Jun 2009 09:52:06 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) Received: from 0.mx.codelabs.ru (0.mx.codelabs.ru [144.206.177.45]) by mx1.freebsd.org (Postfix) with ESMTP id 84A1C8FC28 for ; Tue, 2 Jun 2009 09:52:05 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) DomainKey-Signature: a=rsa-sha1; q=dns; c=simple; s=one; d=codelabs.ru; h=Received:Date:From:To:Cc:Subject:Message-ID:Reply-To:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:Sender; b=qYNcWFa5z8Dv6FGilfxA2CPgbJrCNZF/+E2yQIzaZHKWCiE/Ku99bacL24sr6yuejbyt7BB2JBsyhCCo/X9s7NbMklUoby0fo3nEAYj10+JbhI2exXrOlUPXhth8fiaW+nL2lt7xsOoGov8T3ij5+WDX9yNCvLh5z8S2/QArw7I=; Received: from void.codelabs.ru (void.codelabs.ru [144.206.177.25]) by 0.mx.codelabs.ru with esmtpsa (TLSv1:AES256-SHA:256) id 1MBQf3-0002wp-Tt; Tue, 02 Jun 2009 13:52:02 +0400 Date: Tue, 2 Jun 2009 13:51:59 +0400 From: Eygene Ryabinkin To: Dag-Erling Sm??rgrav Message-ID: References: <23727599.post@talk.nabble.com> <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86r5y7u9r3.fsf@ds4.des.no> Sender: rea-fbsd@codelabs.ru Cc: freebsd-hackers@FreeBSD.org, Jakub Lach , Bruce Evans Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: rea-fbsd@codelabs.ru List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 09:52:06 -0000 Dag-Erling, good day. Fri, May 29, 2009 at 06:58:08PM +0200, Dag-Erling Sm??rgrav wrote: > Index: sys/kern/vfs_lookup.c > =================================================================== > --- sys/kern/vfs_lookup.c (revision 193028) > +++ sys/kern/vfs_lookup.c (working copy) > @@ -454,7 +454,6 @@ > int docache; /* == 0 do not cache last component */ > int wantparent; /* 1 => wantparent or lockparent flag */ > int rdonly; /* lookup read-only flag bit */ > - int trailing_slash; > int error = 0; > int dpunlocked = 0; /* dp has already been unlocked */ > struct componentname *cnp = &ndp->ni_cnd; > @@ -529,12 +528,10 @@ > * trailing slashes to handle symlinks, existing non-directories > * and non-existing files that won't be directories specially later. > */ > - trailing_slash = 0; > while (*cp == '/' && (cp[1] == '/' || cp[1] == '\0')) { > cp++; > ndp->ni_pathlen--; > if (*cp == '\0') { > - trailing_slash = 1; > *ndp->ni_next = '\0'; /* XXX for direnter() ... */ > cnp->cn_flags |= TRAILINGSLASH; > } > @@ -711,7 +708,7 @@ > error = EROFS; > goto bad; > } > - if (*cp == '\0' && trailing_slash && > + if (*cp == '\0' && (cnp->cn_flags & TRAILINGSLASH) && > !(cnp->cn_flags & WILLBEDIR)) { For the current code state, check "*cp == '\0'" seems to be redundant: VOP_LOOKUP had failed at this point and we're running with EJUSTRETURN. And EJUSTRETURN can happen only if ISLASTCN is set, that in turn implies that *ndp->ni_next is 0 and ndp->ni_next is equal to the cp. Seems like this change makes symlink behavior more consistent: if any previous component had a trailing slash, then we will bail out unless we intend to create/rename directory. By the way, comment before the test "if (rdonly)' seems to be slightly misleading: we could be not only creating the file but could be renaming at this point as well. Perhaps 'creating' should be changed to 'creating/renaming'. > error = ENOENT; > goto bad; > @@ -788,7 +785,7 @@ > * Check for symbolic link > */ > if ((dp->v_type == VLNK) && > - ((cnp->cn_flags & FOLLOW) || trailing_slash || > + ((cnp->cn_flags & FOLLOW) || (cnp->cn_flags & TRAILINGSLASH) || > *ndp->ni_next == '/')) { > cnp->cn_flags |= ISSYMLINK; > if (dp->v_iflag & VI_DOOMED) { Seems like here we can also check for the trailing slash to be set on any previous invocation (or the current one), since we're following symlinks in the case of directories, so we should follow them to the end. > BTW, what does the "XXX for direnter()" comment mean? It means that the trailing slashes are eliminated because direnter() for some FSes may choke on it. It essentially duplicates the chunk of a big comment before the block. 'ngp->ni_next' is set to 'cp' before the block and at that time 'cp' points to a slash that delimits directories or null character that terminates non-slashed name. Perhaps 'XXX for direnter()' should be changed to something like 'strip trailing slashes in cnp->cn_nameptr'. By the way, comment just after 'nextname' label is misleading: we can be there with symbolic link, but it won't be followed. So "Not a symbolic link" can be changed to something like "Not a symbolic link that will be followed". -- Eygene _ ___ _.--. # \`.|\..----...-'` `-._.-'_.-'` # Remember that it is hard / ' ` , __.--' # to read the on-line manual )/' _/ \ `-_, / # while single-stepping the kernel. `-'" `"\_ ,_.-;_.-\_ ', fsc/as # _.-'_./ {_.' ; / # -- FreeBSD Developers handbook {_.-``-' {_/ # From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 08:52:21 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CF851065670 for ; Tue, 2 Jun 2009 08:52:21 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: from mail-ew0-f164.google.com (mail-ew0-f164.google.com [209.85.219.164]) by mx1.freebsd.org (Postfix) with ESMTP id E05258FC17 for ; Tue, 2 Jun 2009 08:52:20 +0000 (UTC) (envelope-from kraduk@googlemail.com) Received: by ewy8 with SMTP id 8so4996886ewy.43 for ; Tue, 02 Jun 2009 01:52:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:references:subject :date:message-id:mime-version:content-type:content-transfer-encoding :x-mailer:in-reply-to:x-mimeole:thread-index; bh=3LPzc3IKFcs2xj89xxpSR6d7vIvJz/u9bkJe5cP2bQY=; b=a3HzFf7LsjqGyIvqsJiyq0g10EljhZM7uvAu+9yXDRmssjvnq1LG0erLJFPIAUZgjF o4dKwXF/gbs6Ga3X/+fM4KV5RUVAFiEbNK5DidxrUAhkAxw8tCxCCFzIXRNGgmzSwlUS KCYu5e6E+5Qx6ZaCvPCh+/a1sx/b0ImdH1PIU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :x-mimeole:thread-index; b=i0jPyq++VUBLfAaxRinCDM5UY0LvBt65tQvJ8d7ey8see6mHPEg2Frg+KC5D3WfQfK JmNeOkZT+nQ6fkMkR7KXOJxezFA74g5nGYNj0AMUE4g2zqwBfHyIJ+6UyBDAVGs0yDUi 3F5s3Kz+ED5RSIQmLAx/71VcgJkiaBgEGWGqQ= Received: by 10.211.196.13 with SMTP id y13mr7266869ebp.8.1243932739123; Tue, 02 Jun 2009 01:52:19 -0700 (PDT) Received: from LTPCSCOTT (e1-1.ns500-1.ts.milt.as9105.net [212.74.112.53]) by mx.google.com with ESMTPS id 4sm8531649ewy.80.2009.06.02.01.52.18 (version=SSLv3 cipher=RC4-MD5); Tue, 02 Jun 2009 01:52:18 -0700 (PDT) From: krad To: "'Wojciech Puchar'" , "'krad'" References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> <3ED3189838484C8FBDECE5478A0DDFF4@uk.tiscali.intl> Date: Tue, 2 Jun 2009 09:52:17 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: Acni0KB3ofsuHXpSRz2D7D/ddsTadAAjfzGA X-Mailman-Approved-At: Tue, 02 Jun 2009 11:20:07 +0000 Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 08:52:21 -0000 " You need to write a program that will just rewrite all files to make this." No you don't you just make sure you scrub the pools regularly once a week for instance. This way you will hopefully see small block error way before you have a full drive failure. At the end of the day if the data is super critical to you then you should follow best practices and build an array with sufficient amount of redundancy in for you needs. If you cant justify getting 4+ drives to build a raidz2 or raid 10 type scenario then the data on said array cant actually be worth much itself, therefore I might be annoying but in the whole scale of things not that costly if you loose it. If it were you would do thing properly in the first place -----Original Message----- From: Wojciech Puchar [mailto:wojtek@wojtek.tensor.gdynia.pl] Sent: 01 June 2009 16:50 To: krad Cc: 'Mike Meyer'; freebsd-hackers@freebsd.org; xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? > Its all done on write, so if you update the file it will have multiple > copies again what is exactly what i said in the beginning. From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 11:28:36 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 970301065679 for ; Tue, 2 Jun 2009 11:28:36 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id 546B78FC23 for ; Tue, 2 Jun 2009 11:28:36 +0000 (UTC) (envelope-from des@des.no) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 5B5156D41E; Tue, 2 Jun 2009 13:28:35 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id 3AA16844E2; Tue, 2 Jun 2009 13:28:35 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: rea-fbsd@codelabs.ru References: <23727599.post@talk.nabble.com> <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> Date: Tue, 02 Jun 2009 13:28:34 +0200 In-Reply-To: (Eygene Ryabinkin's message of "Tue, 2 Jun 2009 13:51:59 +0400") Message-ID: <86skiiri1p.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-hackers@FreeBSD.org, Jakub Lach , Bruce Evans Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 11:28:37 -0000 Eygene Ryabinkin writes: > For the current code state, check "*cp =3D=3D '\0'" seems to be redundant: > [...] By the way, comment before the test "if (rdonly)' seems to be > slightly misleading [...] OK, I see that. I've removed the check and rewritten the comment. What about this "temporary assert"? /* * This is a temporary assert to make sure I know what the * behavior here was. */ KASSERT((cnp->cn_flags & (WANTPARENT|LOCKPARENT)) !=3D 0, ("lookup: Unhandled case.")); It was added by jeff@ four years ago, with the following log message: - Add a few asserts for some unusual conditions that I do not believe can happen. These will later go away and turn into implementations for these conditions. Any reason not to remove it? > Seems like here we can also check for the trailing slash to be set on > any previous invocation (or the current one), since we're following > symlinks in the case of directories, so we should follow them to the > end. I'm not sure I understand... > Perhaps 'XXX for direnter()' should be changed to something like > 'strip trailing slashes in cnp->cn_nameptr'. I'll just remove it, since the previous comment clearly explains what is going on. > By the way, comment just after 'nextname' label is misleading: we can be > there with symbolic link, but it won't be followed. So "Not a symbolic > link" can be changed to something like "Not a symbolic link that will > be followed". /* * Not a symbolic link that we will follow. Continue with the * next component if there is any; otherwise, we're done. */ DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 11:31:26 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26073106564A for ; Tue, 2 Jun 2009 11:31:26 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id D926F8FC19 for ; Tue, 2 Jun 2009 11:31:25 +0000 (UTC) (envelope-from des@des.no) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 014946D420; Tue, 2 Jun 2009 13:31:24 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id CD078844E2; Tue, 2 Jun 2009 13:31:24 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Bruce Evans References: <23727599.post@talk.nabble.com> <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> <20090530033902.Q6382@delplex.bde.org> Date: Tue, 02 Jun 2009 13:31:24 +0200 In-Reply-To: <20090530033902.Q6382@delplex.bde.org> (Bruce Evans's message of "Sat, 30 May 2009 04:17:43 +1000 (EST)") Message-ID: <86oct6rhwz.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-hackers@FreeBSD.org, Jakub Lach Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 11:31:26 -0000 Bruce Evans writes: > This comment could do with some rewording to emphasize inheritance of the > flag and to improve the grammar of the comment. Suggestions? For reference, here's the entire comment: /* * Replace multiple slashes by a single slash and trailing slashes * by a null. This must be done before VOP_LOOKUP() because some * fs's don't know about trailing slashes. Remember if there were * trailing slashes to handle symlinks, existing non-directories * and non-existing files that won't be directories specially later. */ >> - if (*cp =3D=3D '\0' && trailing_slash && >> + if (*cp =3D=3D '\0' && (cnp->cn_flags & TRAILINGSLASH) && >> !(cnp->cn_flags & WILLBEDIR)) { >> error =3D ENOENT; >> goto bad; > > Try replacing *cp =3D=3D '\0' by (cnp->cn_flags & ISLASTCN) and maybe com= bine > the flags tests. Apparently I hacked in the *cp test because I didn't > quite understand ISLASTCN. Is the test necessary at all? Cf. Eygene's comment. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 13:14:10 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E07B1065672 for ; Tue, 2 Jun 2009 13:14:10 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [192.147.25.65]) by mx1.freebsd.org (Postfix) with ESMTP id 408038FC25 for ; Tue, 2 Jun 2009 13:14:10 +0000 (UTC) (envelope-from ler@lerctr.org) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lerami; d=lerctr.org; h=Received:Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:User-Agent:MIME-Version:Content-Type:X-Spam-Score:X-LERCTR-Spam-Score:X-Spam-Report:X-LERCTR-Spam-Report:DomainKey-Status; b=DMZUB7Jlg6VZMoCg3drZUDT9GGBLyg84j3zm9c5pomeMlZuaO8G5ivD8Mq3VYAXJXNPfzQIRthpGxzKLL21UIsD63IINuZmkaDIW+PdLEMZq+Qcz0rle2Smkcq46VYAJa2IwjadR7eGRvcKH5rYULIpkrdOlfYLBFxOC6QmH37g=; Received: from thebighonker.lerctr.org ([192.147.25.65]:50517) by thebighonker.lerctr.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69 (FreeBSD)) (envelope-from ) id 1MBTef-000G5U-9C; Tue, 02 Jun 2009 08:03:50 -0500 Date: Tue, 2 Jun 2009 08:03:47 -0500 (CDT) From: Larry Rosenman To: Dan Nelson In-Reply-To: <20090602052809.GF90077@dan.emsphone.com> Message-ID: References: <4A249906.8050802@ucla.edu> <4A24AB0C.70506@elischer.org> <20090602052809.GF90077@dan.emsphone.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Spam-Score: -4.4 (----) X-LERCTR-Spam-Score: -4.4 (----) X-Spam-Report: SpamScore (-4.4/5.0) ALL_TRUSTED=-1.8,BAYES_00=-2.599 X-LERCTR-Spam-Report: SpamScore (-4.4/5.0) ALL_TRUSTED=-1.8,BAYES_00=-2.599 DomainKey-Status: no signature Cc: Jason Chambers , freebsd-hackers@freebsd.org, Julian Elischer Subject: Re: Monitoring throughput of PCIe lanes X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 13:14:10 -0000 On Tue, 2 Jun 2009, Dan Nelson wrote: > In the last episode (Jun 01), Julian Elischer said: >> Jason Chambers wrote: >>> I'm wondering if there is currently a way to monitor the throughput of a >>> PCIe lane or group of lanes associated with a device ? >>> >>> I've done a little exploring of the source and man pages but have yet to >>> find anything that seems to relate in an obvious form. >> >> unfortunatly PCIe traffic occurs at a level below that at which the OS can >> really monitor. >> >> there would have to be some hardware support I think. > > Solaris has a busstat command that can print a huge number of low-level > counters, including PCI DMA counts. If it's supported under OpenSolaris > it should be easy to check and see whether it's dependant on Sun hardware or > works with any PC (just boot it up and run busstat -l). > On a SuperMicro board: root@borg:~# busstat -l busstat: No devices available in system. root@borg:~# That's under OpenSolaris 2008.11 So, I expect it needs hardware support. > -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 512-248-2683 E-Mail: ler@lerctr.org US Mail: 430 Valona Loop, Round Rock, TX 78681-3893 From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:16:10 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 537391065674 for ; Tue, 2 Jun 2009 15:16:10 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id B41358FC2E for ; Tue, 2 Jun 2009 15:16:07 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52FG1Ta001337 for ; Tue, 2 Jun 2009 17:16:01 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52FG1JM001334 for ; Tue, 2 Jun 2009 17:16:01 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 17:16:01 +0200 (CEST) From: Wojciech Puchar To: freebsd-hackers@freebsd.org Message-ID: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Subject: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:16:10 -0000 i bought new digital camera+"8GB" flash card, and when i plug it into USB port, it's detected properly umass0: on uhub1 da0 at umass-sim0 bus 0 target 0 lun 0 da0: Removable Direct Access SCSI-0 device da0: 1.000MB/s transfers da0: 7646MB (15659008 512 byte sectors: 255H 63S/T 974C) i can do everything fine, but i'm getting umass0: Phase Error, residue = 0 (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi status == 0x0 every some time. so i added a device line to usbdevs, then i edited umass.c to add { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_FE20, RID_WILDCARD, UMASS_PROTO_SCSI, NO_SYNCHRONIZE_CACHE }, to static struct umaumass_devdescrs[] it compiled, all fine, but when i attached camera again system rebooted. i was in X session and had tail -f /var/log/messages running, and i was able to see a message that my camera is unknown device, for maybe 1 second before getting reboot. No memory dump was performed. Any idea? From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:17:41 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1C251065678 for ; Tue, 2 Jun 2009 15:17:41 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id DC4A78FC08 for ; Tue, 2 Jun 2009 15:17:40 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52FHb0k001356; Tue, 2 Jun 2009 17:17:37 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52FHauL001353; Tue, 2 Jun 2009 17:17:36 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 17:17:36 +0200 (CEST) From: Wojciech Puchar To: krad In-Reply-To: Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network><20090530162744.5d77e9d1@bhuda.mired.org><20090531201445.GA82420@logik.internal.network><0229B3BF1BE94C82AA11FD06CBE0BDEF@uk.tiscali.intl><20090531235943.GA77374@logik.internal.network><20090531201408.45dd4334@bhuda.mired.org> <442651299CA2445991E65F64AF9E65D7@uk.tiscali.intl> <3ED3189838484C8FBDECE5478A0DDFF4@uk.tiscali.intl> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, 'Mike Meyer' , xorquewasp@googlemail.com Subject: RE: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:17:42 -0000 > this." > > No you don't you just make sure you scrub the pools regularly once a week > for instance. AGAIN example - i had one drive failed, got it out but recovered all data as for everything copies was set to more than one. Or most data, but those with copies=1 wasn't critical for me. then i add new drive, then do scrub and missing copies are NOT REBUILD. From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:30:02 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 033D0106566B for ; Tue, 2 Jun 2009 15:30:02 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id B9EBF8FC1C for ; Tue, 2 Jun 2009 15:30:01 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.3/8.14.3/NETPLEX) with ESMTP id n52FTwBH028672; Tue, 2 Jun 2009 11:29:58 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Tue, 02 Jun 2009 11:29:59 -0400 (EDT) Date: Tue, 2 Jun 2009 11:29:58 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Wojciech Puchar In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:30:02 -0000 On Tue, 2 Jun 2009, Wojciech Puchar wrote: > i bought new digital camera+"8GB" flash card, and when i plug it into USB > port, it's detected properly > > umass0: on uhub1 > da0 at umass-sim0 bus 0 target 0 lun 0 > da0: Removable Direct Access SCSI-0 device > da0: 1.000MB/s transfers > da0: 7646MB (15659008 512 byte sectors: 255H 63S/T 974C) > > > i can do everything fine, but i'm getting > > umass0: Phase Error, residue = 0 > (da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi status > == 0x0 > > > every some time. > > so i added a device line to usbdevs, then i edited umass.c > > to add > > { USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_FE20, RID_WILDCARD, > UMASS_PROTO_SCSI, > NO_SYNCHRONIZE_CACHE > }, > > to static struct umaumass_devdescrs[] > > > it compiled, all fine, but when i attached camera again system rebooted. > > i was in X session and had tail -f /var/log/messages running, and i was able > to see a message that my camera is unknown device, for maybe 1 second before > getting reboot. Try disabling hal (comment out hald_enable in /etc/rc.conf). If you need hal for X, try booting without X and hal/dbus. You might also try UMASS_PROTO_SCSI | UMASS_PROTO_BBB, or UMASS_PROTO_DEFAULT in your quirk. -- DE From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:33:25 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44D761065680; Tue, 2 Jun 2009 15:33:25 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 9A16B8FC32; Tue, 2 Jun 2009 15:33:23 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52FXI4S001594; Tue, 2 Jun 2009 17:33:19 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52FXI2h001591; Tue, 2 Jun 2009 17:33:18 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 17:33:18 +0200 (CEST) From: Wojciech Puchar To: Daniel Eischen In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:33:25 -0000 >> able to see a message that my camera is unknown device, for maybe 1 second >> before getting reboot. > > Try disabling hal (comment out hald_enable in /etc/rc.conf). > If you need hal for X, try booting without X and hal/dbus. i don't use hal. > > You might also try UMASS_PROTO_SCSI | UMASS_PROTO_BBB, or > UMASS_PROTO_DEFAULT in your quirk. OK i will report From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:42:24 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5F141065673; Tue, 2 Jun 2009 15:42:24 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id DA7B38FC16; Tue, 2 Jun 2009 15:42:23 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52FgJ2P001839; Tue, 2 Jun 2009 17:42:19 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52FgJxm001836; Tue, 2 Jun 2009 17:42:19 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 17:42:19 +0200 (CEST) From: Wojciech Puchar To: Daniel Eischen In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:42:25 -0000 >> before getting reboot. > > Try disabling hal (comment out hald_enable in /etc/rc.conf). > If you need hal for X, try booting without X and hal/dbus. > > You might also try UMASS_PROTO_SCSI | UMASS_PROTO_BBB, or PROTO_BBB fixed this - now works properly without errors. THANK YOU! how to sent device quirks to developers to be added? by sent-pr ? From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:42:59 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C24981065675 for ; Tue, 2 Jun 2009 15:42:59 +0000 (UTC) (envelope-from simon@comsys.ntu-kpi.kiev.ua) Received: from comsys.ntu-kpi.kiev.ua (comsys.ntu-kpi.kiev.ua [77.47.192.42]) by mx1.freebsd.org (Postfix) with ESMTP id A08918FC18 for ; Tue, 2 Jun 2009 15:42:53 +0000 (UTC) (envelope-from simon@comsys.ntu-kpi.kiev.ua) Received: from pm513-1.comsys.ntu-kpi.kiev.ua (pm513-1.comsys.ntu-kpi.kiev.ua [10.18.52.101]) (authenticated bits=0) by comsys.ntu-kpi.kiev.ua (8.13.7/8.13.7) with ESMTP id n52FTw3j075251 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 2 Jun 2009 18:29:58 +0300 (EEST) Received: by pm513-1.comsys.ntu-kpi.kiev.ua (Postfix, from userid 1001) id 5365C1CC21; Tue, 2 Jun 2009 18:21:03 +0300 (EEST) Date: Tue, 2 Jun 2009 18:21:03 +0300 From: Andrey Simonenko To: freebsd-hackers@freebsd.org Message-ID: <20090602152103.GA81350@pm513-1.comsys.ntu-kpi.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) X-Virus-Scanned: ClamAV version 0.93.1, clamav-milter version 0.93.1 on comsys.ntu-kpi.kiev.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.4 X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on comsys.ntu-kpi.kiev.ua Subject: NFS exports atomic and on-the-fly atomic updates X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:43:00 -0000 Hello, Here I want to describe changes that allow to make atomic updates of NFS exports lists, dynamic on-the-fly atomic updates of NFS exports lists and improve security of NFS exports. Solved tasks: ------------- 1. NFS export specifications (spec -- for short) updates are atomic. NFS server's users will not get EACCES for exported file systems or wrong access rights while exports list is reloaded. 2. The mountd utility has an option for testing configuration, now one can check and see real configuration not loading it into nfsserver. 3. The mountd utility does not load incomplete settings to nfsserver, wrong configuration will not allow denied exports. 4. Atomic on-the-fly modifications of NFS export specifications were implemented, it is possible to change exports settings dynamically. 5. If some file system is mounted or unmounted, then sighup signal sending to mountd is not required, this change removes several race conditions. 6. NFS exports related code is a part of nfsserver/ code, NFS export related data can be removed from directories not related to NFS. Which actions are atomic? ------------------------- 1. Loading export settings from exports(5) file into nfsserver is atomic for each exported file system and for all exported file systems. 2. Loading updates into nfsserver is atomic for each exported file system and for all exported file systems. 3. If a file system was mounted, then loading export settings for it into nfssever is atomic for this file system. Which actions are not atomic? ----------------------------- 1. Loading export specifications for WebNFS file system and specifying WebNFS related settings require more than one system call. 2. Since VFS events such as mounting and unmounting are asynchronous, events for all exported and not exported file systems are checked as separate system calls. Since nmount(2) is not used in this implementation and subdirectories exports are not allowed, it is unlikely that these changes will be accepted. If absence of insecure subdirectories exports is not a problem, then it it is possible to support both existent mountd and new API on 7-STABLE (see nfsserver/nfs_srvsubs.c:nfsrv_fhtovp() function patch). The mountd utility was completely rewritten, actually the better name for new utility with new properties would be "nfse". The single source file mountd.c was split into three .c and three .h files: mountd.c (previous code was rewritten and new code was added), mountd.h (new code), mountd_conf.c (new code), mountd_conf.h (new code), mountd_xdr.c (previous code was updated to support new data structure and options), mountd_xdr.h (previous code). The analog of kern/vfs_export.c was written from zero and now it is called nfssever/nfs_export.c. This version of mountd can be used on modified 7.2 system. It was tested (except WebNFS related settings) on amd64 and i386 arch. Support of 8.0 system is possible, it is necessary to modify the nfs_export.c:nfse_check() function (~60 lines) and add new NFSv4 related options, but since there are sys/nfssever/ and sys/fs/nfsserver/ that have functions that call VFS_CHECKEXP and there is activity in NFS development, it is unclear which arguments nfse_check() should accept. It is better to discuss arguments list and semantic of nfse_check() first. I think this is the only one function that does not allow to use these changes on 8.0 system. Available patches have only necessary changes to sys/nfsserver/, sys/kern/, sys/sys/ and sys/conf/. Complete changes require removing all NFS exports related data and code from directories not related to NFS. Also nfs_pub structure should be a part of the new nfsserver/nfs_export.c file. I did not make all these changes (all file systems, all NFS related flags in mount.h, etc.), just to show the main parts of changes. The following text contains more or less detail description of changes (definitely I forgot to mention something here). Major improvements: ------------------- * Now all export spec updates are atomic. mountd uses nfssvc(2) for this (the new nfssvc(NFSSVC_EXPORT) call is used). Now it is safe to reload exports files. * New nfs_export.c file was added to nfsserver/, all API details are located in nfs_export.h. All NFS related flags and structures are part of nfsserver. * Now mountd uses kernel event EVFILT_FS to see mount and umount VFS events. The mount(8) utility should not send sighup signal to mountd any more. New EVENTHANDLERs were declared: vfs_mount_event and vfs_unmount_event. Registered function for these handlers are invoked when a file system is mounted or unmounted respectively. The nfsserver uses these event handlers to synchronizes own data with available file systems. Memory leak was removed when an exported file system is unmounted. Now the nfssever understands covered file systems (file system mounted on mount point of another file system). * The mountd utility has a new option -c, that allows to modify export spec on-the-fly. One can clear, add, update, delete export spec. All updates are atomic. One commands set works like a transaction with changes, it is applied completely or is not applied at all. * Now mountd has the -t switch: parse configuration files or commands and output all settings to stdout. This option allows to check and see real configuration. Incompatible security changes: ------------------------------ * Now subdirectory export is disallowed. Subdirectory export does not improve security, instead it is the right way for misconfiguration (export settings for a subdirectory can be completely unrelated to this subdirectory and does not protect access to another parts of exported file system). The nfsserver exports file systems, not directories, looks like that subdirectory export for NFS is too complex or impossible to implement completely. Anyway there is nullfs. Having read RFCs, documentation for another NFS implementations and thoughts in user groups in Internet I think that this (radical) modification will improve security. This version of mountd has the same logic of export rules as nfsserver has. * Now mountd allows to mount file systems, subdirectories and regular files (if the -r flag is on) in exported file systems by default. The -alldirs option became obsolete. Compatible security changes: ---------------------------- * Ignoring exports files is not safe, since remote users can get wrong access rights. Alternative compatible solution: all exports file must be present, a user can specify directory/ and all regular files from the given directories will be loaded (any directory can be absent). * Now if mountd cannot correctly parse export specification for some file system, then it does not load anything to nfsserver for this file system. Ignoring something in exports file is not safe. * Now security flavors are per address specification settings in nfsserver and mountd. * In rare cases mountd completely ignore settings in exports file, and does not load anything into nfsserver (this can happen if mistake in configuration does not allow to finish file parsing). Updates for mountd: ------------------- * Now everywhere IPv4 and IPv6 addresses are used, since the kernel knows nothing about domain names, netgroups, etc. Now mountdtab file contains only address, MOUNT protocol's procedure EXPORT and DUMP output addresses. This removes problems with reverse name resolving, but sometimes entries are not removed on unmount (depends on used address). * Better output for MOUNT protocol's procedure EXPORT: host is an address, network is an address with prefix. * Now mountdtab is parsed more carefully. * Zone scope index checking was removed for IPv6 addresses, nfsserver does not check zone scope index. * Now mountdtab is saved only when mountd exists, no other program in the base system uses this file. The representation of mountdtab file's content in memory was optimized. * Do not leave PID file if some error occurred and mountd exited. * Allowed to use loopback addresses in the -h option. (I do not like design idea of -h, -p and similar options.) * Corrected incorrect binding when -p option is not used (nobody saw this because this can happen very seldom, but I could reproduce this error). * Wrong implementation of mask creation when prefix length is given as /prefixlength was corrected. Updates for nfsserver: ---------------------- * Previous nfsserver could access released memory returned by VFS_CHECKEXP. New code does have this problem. Updates for exports(5): ----------------------- * Added new option -host to allow to use host names and the same netgroups names at once. * Added new option -rw: read-write access. * Added flag `!' for hosts and networks, this flag means "deny access". * Added new line "options: ...", right now it is used for global -sec, -no_mntproc_dump and -no_mntproc_export options, later it can be used for NFSv4. * Added new option -nospec, that means "this line does not have any address specifications". * Added new option -no_mntproc_dump to disable MOUNT protocol's procedure DUMP. * Added new option -no_mntproc_export to disable MOUNT protocol's procedure EXPORT. * exports(5) says that -o is the only one compatible option. Actually there are others: -root and -r for -maproot, -m for -mask and -n for -network. Now mountd logs a warning message if an obsolete option is used. * Do not allow to use any option between -network and -mask. * Now #-comment can be anywhere in a line. * \xxx octal number can be used in directories names and option's arguments for representing an arbitrary character. * Now it is possible to mix hosts and netgroups with networks: "host1 -network=somenetwork host2". * Now it is possible to change options for particular host/network in one line: "-ro -mapall=user1 host1 -mapall=user2 host2" (host2 will inherit previous option -ro, but will get new -mapall option). Since previously exports(5) says that options must be given before hosts and networks, this change is backward compatible and allows to represent all settings for one file system in one logical line. * Content of exports(5) was simplified and updated. Open questions and tasks: ------------------------- * There must be a global solution to check whether it is possible to unload a KLD module when no process currently is working with its syscalls. * Looks like that first argument for nfssvc(2) is not a set of flags any more (according to STABLE, CURRENT and NFSv4 implementation). May be there is a sense to make it a value, not flags. * WebNFS related data in nfsserver is protected when export settings are set (in vfs_export.c and new nfs_export.c), but when other parts of nfsserver access WebNFS related data no synchronization is performed. * If a file system cannot be exported in NFS, then there must be some flag to indicate this (MNT_NFSEXPORTABLE or something more general, see fs/msdosfs/msdosfs_vfsops.c for example). * Should signals be checked more often in mountd? Right now signals are checked when mountd is waiting for RPC request, or if nfssvc's commands transaction timeout occurred. Previous code has race conditions with signals and does too many things disallowed by SUSv3 in signal handlers. * Should be there any limitation in nfsserver on number of export specifications and number of command transactions? * May be mountd should be renamed to something another, eg. nfse. NFSv4 does not use MNT procedure, but still needs utility for configuring access rights as I understand. Also nfse command name is more obvious for -c commands, eg. "nfse -c 'add /fs -ro'". As well /etc/exports can be renamed to /etc/nfs.exports, /var/db/mountdtab -> /var/db/nfse.mounts. Also such renaming will allow to use mountd and new nfse in 7-STABLE at the same time and mount(8) from 7-STABLE will not send SIGHUP to nfse, since its PID will be saved in the nfse.pid file. * netgroup.5 can be moved to src/lib/libc/gen/ or src/share/man/man5, this documentation is not part of mountd. Examples: --------- 1. Correct file: exports file: options: -no_mntproc_dump /fs -host 1.1.1.1 -ro 2.2.2.2 /fs -network 10.20.30.40 /home -mapall nobody -network 10/8 -mapall operator -network 20.1/8 "mountd -t" output: configure: reading file exports Global options: -no_mntproc_dump Directory /fs Export specifications: -ro -sec sys -maproot=-2:-2 -host 2.2.2.2 -rw -sec sys -maproot=-2:-2 -host 1.1.1.1 -rw -sec sys -maproot=-2:-2 -network 10.0.0.0/8 Directory /home (mount point) Export specifications: -rw -sec sys -mapall 2:5 -network 20.0.0.0/8 -rw -sec sys -mapall 65534:65534 -network 10.0.0.0/8 2. Wrong file: exports: /fs -ro 1.1.1.1 /fs -network 10/8 -host 1.1.1.1 /home -quiet -ro "mountd -t" output: configure: reading file exports parsing error: exports:2: duplicated address specification 1.1.1.1 was found in this line parsing error: exports:2: -host option's argument parsing failed Directory /fs Wrong configuration Directory /home (mount point) File system options: -quiet Export specifications: -ro -sec sys -maproot=-2:-2 (default) 3. Commands testing: mountd -t -c 'add /fs -ro -mapall nobody -host 1.1.1.1 -network !10/8' \ -c 'flush /home' -c 'update /usr -ro -mapall operator' configure: parsing -c commands Directory /fs Commands: -c add -ro -sec sys -mapall 65534:65534 -host 1.1.1.1 -c add -ro -sec sys -mapall 65534:65534 -network !10.0.0.0/8 Directory /home (mount point) Commands: -c flush Directory /usr (mount point) Commands: -c update -ro -sec sys -mapall 2:5 (default) 4. Specifying exports(5) files mountd /etc/exports /etc/local.exports /usr/local/nfs-export/ Files /etc/exports and /etc/local.exports must be present. The nfs-export directory can be absent, if it present or will be present, then all regular files from it are read. Sources ------- http://comsys.ntu-kpi.kiev.ua/~simon/nfse/ MD5 (nfse-20090602.tar.bz2) = 8670b95fcfb7a80433afa4db43143418 From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 15:44:48 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 184D410656D6 for ; Tue, 2 Jun 2009 15:44:48 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id BB6A08FC0C for ; Tue, 2 Jun 2009 15:44:47 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.3/8.14.3/NETPLEX) with ESMTP id n52Fik6h008053; Tue, 2 Jun 2009 11:44:46 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Tue, 02 Jun 2009 11:44:46 -0400 (EDT) Date: Tue, 2 Jun 2009 11:44:46 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Wojciech Puchar In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 15:44:49 -0000 On Tue, 2 Jun 2009, Wojciech Puchar wrote: >>> before getting reboot. >> >> Try disabling hal (comment out hald_enable in /etc/rc.conf). >> If you need hal for X, try booting without X and hal/dbus. >> >> You might also try UMASS_PROTO_SCSI | UMASS_PROTO_BBB, or > > PROTO_BBB fixed this - now works properly without errors. Can you also try UMASS_PROTO_DEFAULT? > THANK YOU! > > how to sent device quirks to developers to be added? by sent-pr ? Yes, filing a PR would be good :-) -- DE From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 16:00:18 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48C041065723; Tue, 2 Jun 2009 16:00:18 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 4A7C88FC20; Tue, 2 Jun 2009 16:00:17 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52G0CoQ002128; Tue, 2 Jun 2009 18:00:12 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52G0CPm002125; Tue, 2 Jun 2009 18:00:12 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 18:00:12 +0200 (CEST) From: Wojciech Puchar To: Daniel Eischen In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Synchronize cache failed. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 16:00:18 -0000 >>> >>> You might also try UMASS_PROTO_SCSI | UMASS_PROTO_BBB, or >> >> PROTO_BBB fixed this - now works properly without errors. > > Can you also try UMASS_PROTO_DEFAULT? /usr/src/sys/modules/umass/../../dev/usb/umass.c:607: error: 'UMASS_PROTO_DEFAULT' undeclared here (not in a function) i have FreeBSD 7.2-B1 > >> THANK YOU! >> >> how to sent device quirks to developers to be added? by sent-pr ? > > Yes, filing a PR would be good :-) > done. From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 16:57:45 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E44E1106571E for ; Tue, 2 Jun 2009 16:57:45 +0000 (UTC) (envelope-from johndecot@yahoo.com) Received: from web55408.mail.re4.yahoo.com (web55408.mail.re4.yahoo.com [206.190.58.202]) by mx1.freebsd.org (Postfix) with SMTP id 9B6508FC24 for ; Tue, 2 Jun 2009 16:57:45 +0000 (UTC) (envelope-from johndecot@yahoo.com) Received: (qmail 23937 invoked by uid 60001); 2 Jun 2009 16:31:03 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1243960263; bh=h+MqRWNhRS0j2j/xknUpUbOME6p5rjmae6kjIK7Uigo=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=3DEy6bebbVr8N7YIzuzgnzyQvV+SvUv9s0d7xOOeLmOAUPB1m2jPQX2jW5p1fjWddV+0YT8DyNbZGJ0OxGzN3Ei1mm/2L3WPjP5xQxvFQx2n6o9TQjlqKg7MhMIxNcvxN+W1QQulYlfm4rr9XPCMnxZ+ROmpK9WZ1JYsweD91t0= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=wqW4oDImnG9zZseRSufwjkZMrWuKkbdQuwCUKTi+vgjATySIto+RBGq3HWjGM7gVy6c9ubtYR+9spvbuXHcKTSTXRDZx9A0qryMuXDY7B5zeP0vd6asJGTO/FBxLZpZGs3dJU9o4bEuctyKhPMRElWHwWkilmr19mhB2yvfFJe0=; Message-ID: <4058.23842.qm@web55408.mail.re4.yahoo.com> X-YMail-OSG: DCGQzwoVM1lgpwTEYEs4pZNzzTYGRzPbR_6tYECnuUEx6_q7.4gZ_gTqAEFHiiZ2B57ctMXOrzIhPK8wTqrLWPSmwjf6Ra.XlXcniry2BoKYlgxgW5OHHJ7tz1Vh0deMU33LMlvHlU72hgSt37UaJ8MOy3P8uMxGChtAInI.ppoETD1sKsDpcDvept3xRJ7_cCZt7CWUSnnEM5cy.ikejSv_FDnQ44XgTrBsUE4IMzZ75SbTyGfaZsF4FMG6vJZW3lg_S7oeF0E0fZ1qGHDpl7qakQU6xhH4_a894fXO4cGxUZD6VbMivWkRciiX2gJmfApF Received: from [116.90.230.237] by web55408.mail.re4.yahoo.com via HTTP; Tue, 02 Jun 2009 09:31:02 PDT X-Mailer: YahooMailClassic/5.3.9 YahooMailWebService/0.7.289.10 Date: Tue, 2 Jun 2009 09:31:02 -0700 (PDT) From: john decot To: freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: REgarding TOS support in Kernel X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 16:57:46 -0000 Hi, =A0 =A0=A0=A0=A0 I am intermediate user of freebsd. While building squid with z= ph support, I got error regarding TOS as follows: forward.cc: In member function 'void FwdState::dispatch()': forward.cc:978: error: 'SOL_IP' was not declared in this scope =0Aforward.cc:978: error: 'IP_RECVTOS' was not declared in this scope forward.cc:982: error: 'IP_PKTOPTIONS' was not declared in this scope *** Error code 1 =A0=A0 I have wrote to writer of zph and he suggest me to look for freebsd = equivalent socket options calls to retrieve/set the TOS value. I am confuse= d whether this will require kernel compile ? if yes what should we have to = enable in kernel conf file. =A0=A0=A0=A0=A0 I will appreciate any suggestion and thanks in advance. John =0A=0A=0A From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 17:39:05 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C90EF1065675 for ; Tue, 2 Jun 2009 17:39:05 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id C21E58FC1A for ; Tue, 2 Jun 2009 17:39:04 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n52Hd0YU002738; Tue, 2 Jun 2009 19:39:00 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n52Hcxpx002735; Tue, 2 Jun 2009 19:39:00 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Tue, 2 Jun 2009 19:38:59 +0200 (CEST) From: Wojciech Puchar To: john decot In-Reply-To: <4058.23842.qm@web55408.mail.re4.yahoo.com> Message-ID: References: <4058.23842.qm@web55408.mail.re4.yahoo.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="1626729238-1160075405-1243964340=:2581" Cc: freebsd-hackers@freebsd.org Subject: Re: REgarding TOS support in Kernel X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 17:39:08 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --1626729238-1160075405-1243964340=:2581 Content-Type: TEXT/PLAIN; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8BIT > forward.cc:978: error: 'SOL_IP' was not declared in this scope > > forward.cc:978: error: 'IP_RECVTOS' was not declared in this scope > forward.cc:982: error: 'IP_PKTOPTIONS' was not declared in this scope > *** Error code 1 > >    I have wrote to writer of zph and he suggest me to look for freebsd equivalent socket options calls to retrieve/set the TOS value. I am confused whether this will require kernel compile ? if yes what should we have to enable in kernel conf file. i was sure it is but now i'm a but confused do man telnetd there is: -S tos Sets the IP type-of-service (TOS) option for the telnet connec- tion to the value tos, which can be a numeric TOS value or, on systems that support it, a symbolic TOS name found in the /etc/iptos file. anyway /etc/iptos is absent. looking at /usr/src/contrib/telnet/telnetd/telnetd.c search for IP_TOS you will find #if defined(IPPROTO_IP) && defined(IP_TOS) if (from.ss_family == AF_INET) { # if defined(HAS_GETTOS) struct tosent *tp; if (tos < 0 && (tp = gettosbyname("telnet", "tcp"))) tos = tp->t_tos; # endif if (tos < 0) tos = 020; /* Low Delay bit */ if (tos && (setsockopt(0, IPPROTO_IP, IP_TOS, (char *)&tos, sizeof(tos)) < 0) && (errno != ENOPROTOOPT) ) syslog(LOG_WARNING, "setsockopt (IP_TOS): %m"); } #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */ IP_TOS is defined in netinet/in.h so looks like there is something. in the same time - man setsockopt says nothing apropos tos says nothing too. --1626729238-1160075405-1243964340=:2581-- From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 18:59:05 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE64B1065676; Tue, 2 Jun 2009 18:59:05 +0000 (UTC) (envelope-from ticso@cicely7.cicely.de) Received: from raven.bwct.de (raven.bwct.de [85.159.14.73]) by mx1.freebsd.org (Postfix) with ESMTP id C9FED8FC20; Tue, 2 Jun 2009 18:59:04 +0000 (UTC) (envelope-from ticso@cicely7.cicely.de) Received: from cicely5.cicely.de ([10.1.1.7]) by raven.bwct.de (8.13.4/8.13.4) with ESMTP id n52Ix2CG045303 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 2 Jun 2009 20:59:02 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (cicely7.cicely.de [10.1.1.9]) by cicely5.cicely.de (8.14.2/8.14.2) with ESMTP id n52Iwpao077082 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 2 Jun 2009 20:58:51 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (localhost [127.0.0.1]) by cicely7.cicely.de (8.14.2/8.14.2) with ESMTP id n52Iwpis005467; Tue, 2 Jun 2009 20:58:51 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: (from ticso@localhost) by cicely7.cicely.de (8.14.2/8.14.2/Submit) id n52IwoFj005466; Tue, 2 Jun 2009 20:58:50 +0200 (CEST) (envelope-from ticso) Date: Tue, 2 Jun 2009 20:58:50 +0200 From: Bernd Walter To: Alfred Perlstein Message-ID: <20090602185850.GR1808@cicely7.cicely.de> References: <4A14F58F.8000801@rawbw.com> <4A1594DA.2010707@rawbw.com> <86ljoig08o.fsf@ds4.des.no> <20090528213017.GX67847@elvis.mu.org> <863aaow866.fsf@ds4.des.no> <20090529193137.GH67847@elvis.mu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090529193137.GH67847@elvis.mu.org> X-Operating-System: FreeBSD cicely7.cicely.de 7.0-STABLE i386 User-Agent: Mutt/1.5.11 X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED=-1.8, BAYES_00=-2.599 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on spamd.cicely.de Cc: Dag-Erling Sm??rgrav , freebsd-hackers@freebsd.org Subject: close-on-exec alternatives (was: Why kernel kills processes that run out of memory instead of just failing memory allocation system calls?) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ticso@cicely.de List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 18:59:06 -0000 On Fri, May 29, 2009 at 12:31:37PM -0700, Alfred Perlstein wrote: > * Dag-Erling Sm??rgrav [090529 02:49] wrote: > > Alfred Perlstein writes: > > > Dag-Erling Sm??rgrav writes: > > > > Usually, what you see is closer to this: > > > > > > > > if ((pid = fork()) == 0) { > > > > for (int fd = 3; fd < getdtablesize(); ++fd) > > > > (void)close(fd); > > > > execve(path, argv, envp); > > > > _exit(1); > > > > } > > > > > > I'm probably missing something, but couldn't you iterate > > > in the parent setting the close-on-exec flag then vfork? > > > > This is an example, Alfred. Like most examples, it is greatly > > simplified. I invite you to peruse the source to find real-world > > instances of non-trivial fork() / execve() usage. > > It wasn't meant to critisize, just ask a question for the specific > instance because it made me curious. I know how bad it can be with > vfork as I observed a few fixes involving mistaken use of vfork at > another job. It is still very interesting, because I currently have a similar problem and wasn't aware of getdtablesize(); A threaded application which needs to call an external script of unknown runtime. I don't have all descriptors under my knowledge, because external libs might open them. I also believe there could be a race between retrieving the descriptor and setting close-on-exec. The only solution which I found so far is using rfork with RFCFDG. If I undestand RFCFDG correctly the child process has no descriptors at all. This is Ok for me, since I don't need to inherit some. -- B.Walter http://www.bwct.de Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm. From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 19:41:25 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CCE710656B6 for ; Tue, 2 Jun 2009 19:41:25 +0000 (UTC) (envelope-from joerg@britannica.bec.de) Received: from www.sonnenberger.org (www.ostsee-abc.de [62.206.222.50]) by mx1.freebsd.org (Postfix) with ESMTP id C9F928FC0A for ; Tue, 2 Jun 2009 19:41:24 +0000 (UTC) (envelope-from joerg@britannica.bec.de) Received: from britannica.bec.de (www.sonnenberger.org [192.168.1.10]) by www.sonnenberger.org (Postfix) with ESMTP id 4CC4C667E2 for ; Tue, 2 Jun 2009 21:41:21 +0200 (CEST) Received: by britannica.bec.de (Postfix, from userid 1000) id 0DDCE1BDD82; Tue, 2 Jun 2009 21:41:37 +0200 (CEST) Date: Tue, 2 Jun 2009 21:41:37 +0200 From: Joerg Sonnenberger To: freebsd-hackers@freebsd.org Message-ID: <20090602194137.GC12154@britannica.bec.de> Mail-Followup-To: freebsd-hackers@freebsd.org References: <4A14F58F.8000801@rawbw.com> <4A1594DA.2010707@rawbw.com> <86ljoig08o.fsf@ds4.des.no> <20090528213017.GX67847@elvis.mu.org> <863aaow866.fsf@ds4.des.no> <20090529193137.GH67847@elvis.mu.org> <20090602185850.GR1808@cicely7.cicely.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090602185850.GR1808@cicely7.cicely.de> User-Agent: Mutt/1.5.19 (2009-01-05) Subject: Re: close-on-exec alternatives (was: Why kernel kills processes that run out of memory instead of just failing memory allocation system calls?) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 19:41:25 -0000 On Tue, Jun 02, 2009 at 08:58:50PM +0200, Bernd Walter wrote: > It is still very interesting, because I currently have a similar problem > and wasn't aware of getdtablesize(); Note that many (other) systems provide a much simpler and efficient function for the above, closefrom(3). Joerg From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 20:01:06 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5F071065707 for ; Tue, 2 Jun 2009 20:01:06 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) Received: from 0.mx.codelabs.ru (0.mx.codelabs.ru [144.206.177.45]) by mx1.freebsd.org (Postfix) with ESMTP id 561918FC21 for ; Tue, 2 Jun 2009 20:01:06 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) DomainKey-Signature: a=rsa-sha1; q=dns; c=simple; s=one; d=codelabs.ru; h=Received:Date:From:To:Cc:Subject:Message-ID:Reply-To:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:Sender; b=WJzzQ2jCadvhUGLisp+ZjzUnG7rd0EPzvIC6SHnQPzs/JtX37AY6uil0Fo15OVLYJ104+XI8yVJ+Pv8rtRZEqaqkDU+0XfPK8V7R96Zhcm0sj9DuBfdzCpWnvQi6nrpR+P3KK4M74b8utjhaTAx4M56BDGQ8BZRlTRQNaIyzk3A=; Received: from phoenix.codelabs.ru (ppp91-78-250-129.pppoe.mtu-net.ru [91.78.250.129]) by 0.mx.codelabs.ru with esmtpsa (TLSv1:AES256-SHA:256) id 1MBaAQ-000E4W-SX; Wed, 03 Jun 2009 00:01:03 +0400 Date: Wed, 3 Jun 2009 00:01:00 +0400 From: Eygene Ryabinkin To: Dag-Erling Sm??rgrav Message-ID: References: <23727599.post@talk.nabble.com> <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> <86skiiri1p.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86skiiri1p.fsf@ds4.des.no> Sender: rea-fbsd@codelabs.ru Cc: freebsd-hackers@FreeBSD.org, Jakub Lach , Bruce Evans Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: rea-fbsd@codelabs.ru List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 20:01:07 -0000 Tue, Jun 02, 2009 at 01:28:34PM +0200, Dag-Erling Sm??rgrav wrote: > Eygene Ryabinkin writes: > > For the current code state, check "*cp == '\0'" seems to be redundant: > > [...] By the way, comment before the test "if (rdonly)' seems to be > > slightly misleading [...] > > OK, I see that. I've removed the check and rewritten the comment. Thanks. > What about this "temporary assert"? > > /* > * This is a temporary assert to make sure I know what the > * behavior here was. > */ > KASSERT((cnp->cn_flags & (WANTPARENT|LOCKPARENT)) != 0, > ("lookup: Unhandled case.")); It is partly handled at the beginning of lookup: ----- wantparent = cnp->cn_flags & (LOCKPARENT | WANTPARENT); KASSERT(cnp->cn_nameiop == LOOKUP || wantparent, ("CREATE, DELETE, RENAME require LOCKPARENT or WANTPARENT.")); ----- So, only LOOKUP could have both {LOCK,WANT}PARENT to be unset. And it seems to be fine, because LOOKUP shouldn't care about parent vnode, either locked or just referenced. So this assertion seems to be really redundant. > > Seems like here we can also check for the trailing slash to be set on > > any previous invocation (or the current one), since we're following > > symlinks in the case of directories, so we should follow them to the > > end. > > I'm not sure I understand... I meant the following: you're trading 'trailing_slash' to the TRAILINGSLASH. The former is local to this call of lookup(), the latter persists throughout the namei() invocation, so it could be set by the previous lookup() calls. But this seems to be fine: since we were started to look for directory at some point, we should continue to do it. > > Perhaps 'XXX for direnter()' should be changed to something like > > 'strip trailing slashes in cnp->cn_nameptr'. > > I'll just remove it, since the previous comment clearly explains what is > going on. May be it's better to leave the comment, but replace it with more undestandable one: this instruction is a bit tricky and it makes one to think what the hell is going on. > > By the way, comment just after 'nextname' label is misleading: we can be > > there with symbolic link, but it won't be followed. So "Not a symbolic > > link" can be changed to something like "Not a symbolic link that will > > be followed". > > /* > * Not a symbolic link that we will follow. Continue with the > * next component if there is any; otherwise, we're done. > */ Yes, very good. Thanks. -- Eygene _ ___ _.--. # \`.|\..----...-'` `-._.-'_.-'` # Remember that it is hard / ' ` , __.--' # to read the on-line manual )/' _/ \ `-_, / # while single-stepping the kernel. `-'" `"\_ ,_.-;_.-\_ ', fsc/as # _.-'_./ {_.' ; / # -- FreeBSD Developers handbook {_.-``-' {_/ # From owner-freebsd-hackers@FreeBSD.ORG Tue Jun 2 20:25:02 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B0111065677 for ; Tue, 2 Jun 2009 20:25:02 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.154]) by mx1.freebsd.org (Postfix) with ESMTP id 90FE08FC27 for ; Tue, 2 Jun 2009 20:25:01 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: by fg-out-1718.google.com with SMTP id 22so2737917fge.12 for ; Tue, 02 Jun 2009 13:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:to:cc:subject:references :organization:from:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=Jg5jaa0M14/I1OtuMRBE44k6+kdtrKp25yY3GRST8tI=; b=UBcXAQEejoNGaW8aPdPkSw4cccRg8uzX8R/eyBs3SKB8mmSursc2iI2yyuYdQIFp8M 3pD63Dy4g8zoHKhiH0CSH+Sgl5cbRfwuZc81IqGKWPLuQrCyG58/urVN5uPN43gLUp6J TN8PswUlVF98YL5LMy3wlbz5PEKSDHT51p37U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=to:cc:subject:references:organization:from:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=T3pUCJVNrtpFHcNbVoKVwIrYqkv0Tk55iSonL/0fOnj8ajIdfjwLQ8r/K3LnzkD+IP 5KT8mspG+dPw3z21e6fDtUfmU4DTASkL6YXlxLxaeaiaT8SJspN/9KLpXft1qLP3pZCT ysi/2ouov9XU5Bo8coMzcn2l4kS9xTFQPhQ2M= Received: by 10.86.26.11 with SMTP id 11mr238176fgz.45.1243974300531; Tue, 02 Jun 2009 13:25:00 -0700 (PDT) Received: from localhost (vpn-193-138-134-227.customer.onet.com.ua [193.138.134.227]) by mx.google.com with ESMTPS id e20sm386327fga.25.2009.06.02.13.24.58 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 02 Jun 2009 13:24:59 -0700 (PDT) To: Asmodean Dark References: <813aajkrhs.fsf@zhuzha.ua1> Organization: TOA Ukraine From: Mikolaj Golub Date: Tue, 02 Jun 2009 23:24:54 +0300 In-Reply-To: (Asmodean Dark's message of "Tue\, 02 Jun 2009 13\:41\:40 +0400") Message-ID: <86ab4qz8mh.fsf@kopusha.onet> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-hackers@freebsd.org Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 20:25:02 -0000 On Tue, 02 Jun 2009 13:41:40 +0400 Asmodean Dark wrote: AD> # kgdb kernel.debug vmcore.0 AD> GNU gdb 6.1.1 [FreeBSD] AD> Copyright 2004 Free Software Foundation, Inc. AD> GDB is free software, covered by the GNU General Public License, and you are AD> welcome to change it and/or distribute copies of it under certain conditions. AD> Type "show copying" to see the conditions. AD> There is absolutely no warranty for GDB. Type "show warranty" for details. AD> This GDB was configured as "i386-marcel-freebsd"...No struct type named linker_file. AD> No struct type named linker_file. AD> No struct type named linker_file. AD> Attempt to extract a component of a value that is not a structure. AD> No struct type named linker_file. AD> No struct type named linker_file. AD> No struct type named linker_file. AD> Attempt to extract a component of a value that is not a structure. AD> Attempt to extract a component of a value that is not a structure pointer. AD> Attempt to extract a component of a value that is not a structure pointer. AD> Attempt to extract a component of a value that is not a structure pointer. AD> Attempt to extract a component of a value that is not a structure pointer. AD> #0 0x8063d6b0 in doadump () AD> (kgdb) bt AD> #0 0x8063d6b0 in doadump () AD> #1 0x8063dc44 in boot () AD> #2 0x8063e0ca in panic () AD> #3 0x807dab3d in trap_fatal () AD> #4 0x807daeba in trap_pfault () AD> #5 0x807db7bd in trap () AD> #6 0x807c2a3b in calltrap () AD> #7 0x806dcb88 in rn_match () AD> #8 0x806ddc8a in rn_lookup () AD> #9 0x8070e460 in ipfw_chk (args=0xe70175fc) at ../../../netinet/ip_fw2.c:1894 AD> #10 0x80710c3d in ipfw_check_in (arg=0x0, m0=0xe7017700, ifp=0x91c5a800, dir=1, inp=0x0) at ../../../netinet/ip_fw_pfil.c:125 AD> #11 0x806dc20f in pfil_run_hooks () AD> #12 0x80713984 in ip_input (m=0x91954c00) at ../../../netinet/ip_input.c:416 AD> #13 0x806ec0d9 in ng_iface_rcvdata () AD> #14 0x806e9570 in ng_apply_item () AD> #15 0x806e8569 in ng_snd_item () AD> #16 0x806e9570 in ng_apply_item () AD> #17 0x806e8569 in ng_snd_item () AD> #18 0x806e9570 in ng_apply_item () AD> #19 0x806e8569 in ng_snd_item () AD> #20 0x806f16a7 in ng_ppp_proto_recv () AD> #21 0x806f3ed2 in ng_ppp_rcvdata () AD> #22 0x806e9570 in ng_apply_item () AD> #23 0x806e8569 in ng_snd_item () AD> #24 0x806e9570 in ng_apply_item () AD> #25 0x806e8569 in ng_snd_item () AD> #26 0x806ee3c3 in ng_ksocket_incoming2 () AD> #27 0x806e969d in ng_apply_item () AD> #28 0x806ea8aa in ngintr () AD> #29 0x806dab72 in swi_net () AD> #30 0x8061e265 in ithread_loop () AD> #31 0x8061adf5 in fork_exit () AD> #32 0x807c2ab0 in fork_trampoline () AD> (kgdb) fr 9 AD> #9 0x8070e460 in ipfw_chk (args=0xe70175fc) at ../../../netinet/ip_fw2.c:1894 AD> 1894 sa.sin_len = 8; AD> (kgdb) list AD> 1889 struct sockaddr_in sa; AD> 1890 AD> 1891 if (tbl >= IPFW_TABLES_MAX) AD> 1892 return (0); AD> 1893 rnh = ch->tables[tbl]; AD> 1894 sa.sin_len = 8; ^^^^^^^^^ looks strange. On the line 1894 I expected to see rnh_lookup() call, which is two lines below. Are you sure your source matches the built kernel? AD> 1895 sa.sin_addr.s_addr = addr; AD> 1896 ent = (struct table_entry *)(rnh->rnh_lookup(&sa, NULL, rnh)); AD> 1897 if (ent != NULL) { AD> 1898 *val = ent->value; AD> (kgdb) p *cmd AD> $1 = {opcode = O_IP_SRC_LOOKUP, len = 1 '\001', arg1 = 2} AD> (kgdb) p cmd->arg1 AD> $2 = 2 It crashed looking for src IP in table 2. But from ps otput I don't see the process that could modify the table in that time. So the table might have been corrupted earlier. Unfortunately, reviewing provided info I don't have any good ideas what might have caused this. May be other people on the list could help... Recently I saw some backtrace of the crash in rn_match() too but then it was pf that was looking for IP in the table. It appeared that the guy was running ssh brute-force blocker and expiretable, which was run periodically, removed old entries from the table. He just disabled expiretable and this stopped the crashes. Actually some output from crashinfo looks suspicious. zero values for fork() calls, negative values in vmstat -m output... Does the userland where you were running crashinfo matched the crushed kernel? Also, does you kernel match userland on crashed box? And certainly it would be good to provide backtrace with full debugging info available :-). Do you remember that debugging symbols for modules are needed too? -- Mikolaj Golub From owner-freebsd-hackers@FreeBSD.ORG Wed Jun 3 09:03:47 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B8FB106566C for ; Wed, 3 Jun 2009 09:03:47 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id EC02C8FC0C for ; Wed, 3 Jun 2009 09:03:46 +0000 (UTC) (envelope-from des@des.no) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id F2A286D41D; Wed, 3 Jun 2009 11:03:45 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id CE3E0844C0; Wed, 3 Jun 2009 11:03:45 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: rea-fbsd@codelabs.ru References: <23727599.post@talk.nabble.com> <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> <86skiiri1p.fsf@ds4.des.no> Date: Wed, 03 Jun 2009 11:03:45 +0200 In-Reply-To: (Eygene Ryabinkin's message of "Wed, 3 Jun 2009 00:01:00 +0400") Message-ID: <86my8pelji.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-hackers@FreeBSD.org, Jakub Lach , Bruce Evans Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2009 09:03:47 -0000 Eygene Ryabinkin writes: > "Dag-Erling Sm=C3=B8rgrav" writes: > > Eygene Ryabinkin writes: > > > Perhaps 'XXX for direnter()' should be changed to something like > > > 'strip trailing slashes in cnp->cn_nameptr'. > > I'll just remove it, since the previous comment clearly explains > > what is going on. > May be it's better to leave the comment, but replace it with more > undestandable one: this instruction is a bit tricky and it makes one to > think what the hell is going on. Isn't it clearly described in the preceding comment? Specifically, by the first two sentences: "Replace multiple slashes by a single slash and trailing slashes by a null. This must be done before VOP_LOOKUP() because some fs's don't know about trailing slashes." DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-freebsd-hackers@FreeBSD.ORG Wed Jun 3 10:27:14 2009 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C2CB3106564A for ; Wed, 3 Jun 2009 10:27:14 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) Received: from 0.mx.codelabs.ru (0.mx.codelabs.ru [144.206.177.45]) by mx1.freebsd.org (Postfix) with ESMTP id 74AC58FC15 for ; Wed, 3 Jun 2009 10:27:14 +0000 (UTC) (envelope-from rea-fbsd@codelabs.ru) DomainKey-Signature: a=rsa-sha1; q=dns; c=simple; s=one; d=codelabs.ru; h=Received:Date:From:To:Cc:Subject:Message-ID:Reply-To:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:Sender; b=FVtC0aGfqd0AthicxBOxRkERDiRY0CMaoPsFu/a23aai1hKex+TI2CSUZtDrpQbnWdaoXfaHo5pOiObJn3EvrFxEJPP9feY7WhmAsduWbNBzfqrIHnDbLivpAFRy0305X73e6UaWAzg6aZ5+B1yBQGUS+QmEJbORTXyHmGG43G0=; Received: from void.codelabs.ru (void.codelabs.ru [144.206.177.25]) by 0.mx.codelabs.ru with esmtpsa (TLSv1:AES256-SHA:256) id 1MBngc-000P0X-ML; Wed, 03 Jun 2009 14:27:10 +0400 Date: Wed, 3 Jun 2009 14:27:08 +0400 From: Eygene Ryabinkin To: Dag-Erling Sm??rgrav Message-ID: References: <86prdvipwe.fsf@ds4.des.no> <20090527233110.E4243@delplex.bde.org> <86r5yaijef.fsf@ds4.des.no> <20090529210855.V1643@besplex.bde.org> <86vdnju9z1.fsf@ds4.des.no> <86r5y7u9r3.fsf@ds4.des.no> <86skiiri1p.fsf@ds4.des.no> <86my8pelji.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86my8pelji.fsf@ds4.des.no> Sender: rea-fbsd@codelabs.ru Cc: freebsd-hackers@FreeBSD.org, Jakub Lach , Bruce Evans Subject: Re: FYI Lighttpd 1.4.23 /kernel (trailing '/' on regular file symlink) vulnerability X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: rea-fbsd@codelabs.ru List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2009 10:27:15 -0000 Wed, Jun 03, 2009 at 11:03:45AM +0200, Dag-Erling Sm??rgrav wrote: > Isn't it clearly described in the preceding comment? Specifically, by > the first two sentences: "Replace multiple slashes by a single slash and > trailing slashes by a null. This must be done before VOP_LOOKUP() > because some fs's don't know about trailing slashes." Yes, it is clearly described. But I started to understand this description only after asking myself "what ndp->ni_next is doing here and why do we want to place '\0' to this address"? I could be a bit stupid, yeah ;)) But this code snippet can be a bit hard to read for others as well. May be not -- can't say for sure. -- Eygene _ ___ _.--. # \`.|\..----...-'` `-._.-'_.-'` # Remember that it is hard / ' ` , __.--' # to read the on-line manual )/' _/ \ `-_, / # while single-stepping the kernel. `-'" `"\_ ,_.-;_.-\_ ', fsc/as # _.-'_./ {_.' ; / # -- FreeBSD Developers handbook {_.-``-' {_/ # From owner-freebsd-hackers@FreeBSD.ORG Wed Jun 3 12:22:56 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D2071065676 for ; Wed, 3 Jun 2009 12:22:56 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.153]) by mx1.freebsd.org (Postfix) with ESMTP id 893608FC1F for ; Wed, 3 Jun 2009 12:22:55 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: by fg-out-1718.google.com with SMTP id e12so966203fga.12 for ; Wed, 03 Jun 2009 05:22:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:to:cc:subject:references :organization:from:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=mNQWaGpd9SrEjAMsALlONJNL4gP5ElR+JHVhvdZPccg=; b=b4IyzjiSCVwRugBoWrDaWHUGxtUXv/X1ABOTv3y5UPFBAeOf0FtUI/CSKEDPUXI2za 8dnwmFoYG/1UkG1AfCazYPsTiNaGMQVeyZc4szbwOd2A0kq4/TCu5UItPsI3EQnYAlnY kRTNtPYfQBUvSDsEFBEWNIyUI6aSm4EISNgqg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=to:cc:subject:references:organization:from:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=pXgDJHlt4rXykgjfi0KYoyyC8oTCnn47e2yU2JPHZH/B5SE+I9j2opYqVCjvfs4gML Ld+lcu+m74I/kSzOZU1KUGkOIL2aDxfU+oSbyP/dtfFO+atqmfjzQtkoBA1yydwQ5+Sz AkhBvFmh0riGQNxTeD9lUBMkPyPyfHyoX64ns= Received: by 10.86.90.2 with SMTP id n2mr1042711fgb.61.1244031774605; Wed, 03 Jun 2009 05:22:54 -0700 (PDT) Received: from localhost (ms.singlescrowd.net [80.85.90.67]) by mx.google.com with ESMTPS id e11sm14348246fga.21.2009.06.03.05.22.53 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 03 Jun 2009 05:22:53 -0700 (PDT) To: Mikolaj Golub References: <813aajkrhs.fsf@zhuzha.ua1> <86ab4qz8mh.fsf@kopusha.onet> Organization: TOA Ukraine From: Mikolaj Golub Date: Wed, 03 Jun 2009 15:22:52 +0300 In-Reply-To: <86ab4qz8mh.fsf@kopusha.onet> (Mikolaj Golub's message of "Tue\, 02 Jun 2009 23\:24\:54 +0300") Message-ID: <81oct5y09v.fsf@zhuzha.ua1> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-hackers@freebsd.org, Asmodean Dark Subject: Re: 7.1-STABLE crash X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2009 12:22:56 -0000 On Tue, 02 Jun 2009 23:24:54 +0300 Mikolaj Golub wrote: > Actually some output from crashinfo looks suspicious. zero values for fork() > calls, negative values in vmstat -m output... Does the userland where you were > running crashinfo matched the crushed kernel? It looks like the strange figures in vmstat output because its '-M' option is broken. I am observing the same issue on my system. I have rebuild the kernel and the world of today's RELENG_7 to make sure that this is not the issue with my kernel not in sync with the userland. zhuzha:~% uname -a FreeBSD zhuzha.ua1 7.2-STABLE FreeBSD 7.2-STABLE #18: Wed Jun 3 14:28:49 EEST 2009 root@zhuzha.ua1:/usr/obj/usr/src/sys/DEBUG i386 zhuzha:~% vmstat -m |head Type InUse MemUse HighUse Requests Size(s) ata_dma 3 1K - 3 128 GEOM 83 9K - 1176 16,32,64,128,256,512,1024,2048 isadev 20 2K - 20 64 ar_driver 0 0K - 6 512,2048 acd_driver 1 2K - 1 2048 cdev 27 4K - 28 128 kbdmux 6 9K - 6 16,128,256,2048,4096 sigio 8 1K - 8 32 filedesc 152 46K - 1637 16,32,64,128,256,512,1024,2048,4096 zhuzha:~% sudo vmstat -m -M /dev/mem -N /boot/kernel/kernel |head Type InUse MemUse HighUse Requests Size(s) ata_dma -3 0K - 0 GEOM 1124760 -1107K - 1125936 16,32,64,128,256,512,1024,2048,4096,8192 isadev -20 0K - 0 ar_driver 19450 -18K - 19456 32,64 acd_driver -1 -1K - 0 cdev 100 -2K - 128 16 kbdmux -6 -7K - 0 sigio -8 0K - 0 filedesc 384793 -422K - 386432 16,32,64,128,1024,2048,4096,8192 zhuzha:~% vmstat -s |head 2380238 cpu context switches 27952 device interrupts 573159 software interrupts 931165 traps 9997656 system calls 56 kernel threads created 1519 fork() calls 45 vfork() calls 0 rfork() calls 0 swap pager pageins zhuzha:~% sudo vmstat -s -M /dev/mem -N /boot/kernel/kernel |head 0 cpu context switches 0 device interrupts 0 software interrupts 0 traps 0 system calls 0 kernel threads created 0 fork() calls 0 vfork() calls 0 rfork() calls 0 swap pager pageins On CURRENT vmstat -m works ok but vmstat -s gives zero values: fbsd# uname -a FreeBSD fbsd.zhuzha.ua1 8.0-CURRENT FreeBSD 8.0-CURRENT #8 r193242M: Mon Jun 1 23:43:06 EEST 2009 root@zhuzha.ua1:/home/golub/freebsd/build/obj/home/golub/freebsd/src/sys/GENERIC i386 fbsd# vmstat -m |head Type InUse MemUse HighUse Requests Size(s) cdev 11 2K - 11 128 CAM dev queue 1 1K - 1 64 sigio 1 1K - 1 32 filedesc 49 13K - 1109 16,256,512 kenv 106 8K - 109 16,32,64,128,4096 kqueue 0 0K - 12 128,1024 proc-args 29 2K - 593 16,32,64,128 ithread 63 6K - 63 16,64,128 acpica 426 23K - 8140 16,32,64,128,256,512,1024 fbsd# vmstat -m -M /dev/mem -N /boot/kernel/kernel |head Type InUse MemUse HighUse Requests Size(s) cdev 11 2K - 11 128 CAM dev queue 1 1K - 1 64 sigio 1 1K - 1 32 filedesc 49 13K - 1111 16,256,512 kenv 106 8K - 109 16,32,64,128,4096 kqueue 0 0K - 12 128,1024 proc-args 29 2K - 599 16,32,64,128 ithread 63 6K - 63 16,64,128 acpica 426 23K - 8140 16,32,64,128,256,512,1024 fbsd# vmstat -s |head 88380 cpu context switches 5058 device interrupts 16851 software interrupts 138908 traps 140549 system calls 18 kernel threads created 1070 fork() calls 22 vfork() calls 0 rfork() calls 0 swap pager pageins fbsd# vmstat -s -M /dev/mem -N /boot/kernel/kernel |head 0 cpu context switches 0 device interrupts 0 software interrupts 0 traps 0 system calls 0 kernel threads created 0 fork() calls 0 vfork() calls 0 rfork() calls 0 swap pager pageins On 6.3-RELEASE vmstat -s gives zero values only for some counters: fbsd6# uname -a FreeBSD fbsd6.zhuzha.ua1 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 04:18:52 UTC 2008 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 fbsd6# vmstat -m |head Type InUse MemUse HighUse Requests Size(s) DEVFS 12 1K - 13 16,128 pfs_nodes 20 3K - 20 128 GEOM 52 6K - 259 16,32,64,128,256,512,1024,2048,4096 isadev 17 2K - 17 64 CAM queue 3 1K - 3 16 CAM dev queue 1 1K - 1 64 ata_generic 2 2K - 2 1024 cdev 24 3K - 24 128 file desc 64 17K - 685 16,256,512 fbsd6# vmstat -m -M /dev/mem -N /boot/kernel/kernel |head Type InUse MemUse HighUse Requests Size(s) DEVFS 12 1K - 13 16,128 pfs_nodes 20 3K - 20 128 GEOM 52 6K - 259 16,32,64,128,256,512,1024,2048,4096 isadev 17 2K - 17 64 CAM queue 3 1K - 3 16 CAM dev queue 1 1K - 1 64 ata_generic 2 2K - 2 1024 cdev 24 3K - 24 128 file desc 64 17K - 687 16,256,512 fbsd6# vmstat -s 70467 cpu context switches 23614 device interrupts 2136 software interrupts 46411 traps 83608 system calls 34 kernel threads created 654 fork() calls 22 vfork() calls 0 rfork() calls 0 swap pager pageins 0 swap pager pages paged in 0 swap pager pageouts 0 swap pager pages paged out 431 vnode pager pageins 3015 vnode pager pages paged in 0 vnode pager pageouts 0 vnode pager pages paged out 0 page daemon wakeups 0 pages examined by the page daemon 34 pages reactivated 18811 copy-on-write faults 116 copy-on-write optimized faults 13147 zero fill pages zeroed 13017 zero fill pages prezeroed 3 intransit blocking page faults 44963 total VM faults taken 0 pages affected by kernel thread creation 52028 pages affected by fork() 7493 pages affected by vfork() 0 pages affected by rfork() 34465 pages freed 0 pages freed by daemon 22467 pages freed by exiting processes 2172 pages active 2264 pages inactive 0 pages in VM cache 2800 pages wired down 6528 pages free 4096 bytes per page 23942 total name lookups cache hits (90% pos + 5% neg) system 0% per-directory deletions 0%, falsehits 0%, toolong 0% fbsd6# vmstat -s -M /dev/mem -N /boot/kernel/kernel 76024 cpu context switches 0 device interrupts 2144 software interrupts 0 traps 0 system calls 34 kernel threads created 654 fork() calls 23 vfork() calls 0 rfork() calls 0 swap pager pageins 0 swap pager pages paged in 0 swap pager pageouts 0 swap pager pages paged out 431 vnode pager pageins 3015 vnode pager pages paged in 0 vnode pager pageouts 0 vnode pager pages paged out 0 page daemon wakeups 0 pages examined by the page daemon 34 pages reactivated 18826 copy-on-write faults 116 copy-on-write optimized faults 13186 zero fill pages zeroed 13056 zero fill pages prezeroed 3 intransit blocking page faults 45035 total VM faults taken 0 pages affected by kernel thread creation 52028 pages affected by fork() 7967 pages affected by vfork() 0 pages affected by rfork() 34518 pages freed 0 pages freed by daemon 22502 pages freed by exiting processes 2177 pages active 2263 pages inactive 0 pages in VM cache 2800 pages wired down 6524 pages free 4096 bytes per page 23983 total name lookups cache hits (90% pos + 5% neg) system 0% per-directory deletions 0%, falsehits 0%, toolong 0% -- Mikolaj Golub From owner-freebsd-hackers@FreeBSD.ORG Wed Jun 3 13:17:08 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5ACE106566B for ; Wed, 3 Jun 2009 13:17:08 +0000 (UTC) (envelope-from tatsiana.severyna@gmail.com) Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com [209.85.218.213]) by mx1.freebsd.org (Postfix) with ESMTP id 320458FC0A for ; Wed, 3 Jun 2009 13:17:02 +0000 (UTC) (envelope-from tatsiana.severyna@gmail.com) Received: by bwz9 with SMTP id 9so8877563bwz.43 for ; Wed, 03 Jun 2009 06:17:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=TK3Pnt2Nqi/AxJUWVt8gWMR1Ht/wgBTDh2PJCukK4wY=; b=DjeOZ/2KhCsLcsKU7At4xLx76BohkRTDM8Ck/qk9sZBO5vBx8pIavTo2+wzgF+7Set mZ6B5m/iyxrm695hjS9QsqvoGhIjpjTx2mT+UHjvapcoKdSqTg7NcJ5LADse53gfSY6W z1ZY45qN6+0LqwZZESBXAvmM8o7yXqs9+k6CE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=v4dCbO2JBFlKwH2J9eKvXkczs7z1uWwdGs5afNwV9i7oa51WLWcBA7DfzAz5FjhI+3 MlDA5HZLqfNy6rQYs1vpf5kivlDZL9a40P4kJnR4SbGeHl6P9WB21WTORrNYGSCdfq97 QojdDbj51RnFapn1LMqKbbjDBtKSjg1Ks3ABI= MIME-Version: 1.0 Received: by 10.223.111.134 with SMTP id s6mr540410fap.37.1244033294916; Wed, 03 Jun 2009 05:48:14 -0700 (PDT) Date: Wed, 3 Jun 2009 15:48:14 +0300 Message-ID: From: Tatsiana Severyna To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Wed, 03 Jun 2009 15:56:40 +0000 Subject: SoC 2009: puffs port for FreeBSD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2009 13:17:08 -0000 Hi, I'm Tatsiana Severyna from Belarus. I'll be working on porting puffs from NetBSD as a part of this year's summer of code program. refuse library (fuse compatibility layer on top of puffs) will also be ported to FreeBSD as during the summer. My mentor is Konstantin Belousov. Detailed description is available on wiki: http://wiki.freebsd.org/SOC2009TatsianaSeveryna From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 09:22:12 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4D0E1065674 for ; Thu, 4 Jun 2009 09:22:12 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from mail.z8.ru (mail.z8.ru [80.93.58.56]) by mx1.freebsd.org (Postfix) with ESMTP id 62C4C8FC16 for ; Thu, 4 Jun 2009 09:22:11 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from [85.235.196.139] (helo=kostjn.pht) by mail.z8.ru with esmtpa (Exim 4.67 (FreeBSD)) (envelope-from ) id 1MC993-0003b9-IM for freebsd-hackers@freebsd.org; Thu, 04 Jun 2009 13:21:57 +0400 Message-ID: <4A2792B7.5010006@peterhost.ru> Date: Thu, 04 Jun 2009 13:24:07 +0400 From: Menshikov Konstantin User-Agent: Thunderbird 2.0.0.18 (X11/20090328) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 09:22:13 -0000 Hi. My system FreeBSD 7.1 RELEASE periodically freeze. I`m compiling kernel with WITNESS and get backtrace. #0 doadump () at pcpu.h:195 #1 0xffffffff801a899c in db_fncall (dummy1=Variable "dummy1" is not available. ) at /usr/src/sys/ddb/db_command.c:516 #2 0xffffffff801a8ecf in db_command (last_cmdp=0xffffffff80825688, cmd_table=0x0, dopager=1) at /usr/src/sys/ddb/db_command.c:413 #3 0xffffffff801a90e0 in db_command_loop () at /usr/src/sys/ddb/db_command.c:466 #4 0xffffffff801aaa19 in db_trap (type=Variable "type" is not available. ) at /usr/src/sys/ddb/db_main.c:228 #5 0xffffffff803d5e55 in kdb_trap (type=3, code=0, tf=0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 #6 0xffffffff8059a0e5 in trap (frame=0xffffffffabf284c0) at /usr/src/sys/amd64/amd64/trap.c:538 #7 0xffffffff8057f60e in calltrap () at /usr/src/sys/amd64/amd64/exception.S:209 #8 0xffffffff803d602d in kdb_enter_why (why=0xffffffff80628137 "witness", msg=0xa
) at cpufunc.h:63 #9 0xffffffff803e70c3 in witness_checkorder (lock=Variable "lock" is not available. ) at /usr/src/sys/kern/subr_witness.c:1126 #10 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff8084fad0, opts=0, file=dwarf2_read_address: Corrupted DWARF expression. ) at /usr/src/sys/kern/kern_mutex.c:227 #11 0xffffffff80319838 in sc_puts (scp=0xffffffff8084f980, buf=0xffffffffabf286a7 "a@\az\200ЪЪЪЪ", len=1) at /usr/src/sys/dev/syscons/syscons.c:2519 #12 0xffffffff8031b3da in sc_cnputc (cd=Variable "cd" is not available. ) at /usr/src/sys/dev/syscons/syscons.c:1561 #13 0xffffffff803f9d89 in cnputc (c=97) at /usr/src/sys/kern/tty_cons.c:632 #14 0xffffffff803d993b in putchar (c=97, arg=Variable "arg" is not available. ) at /usr/src/sys/kern/subr_prf.c:421 #15 0xffffffff803d7f22 in kvprintf (fmt=0xffffffff80628b89 "cquiring duplicate lock of same type: \"%s\"\n", func=0xffffffff803d98d0 , arg=0xffffffffabf28890, radix=10, ap=Variable "ap" is not available. ) at /usr/src/sys/kern/subr_prf.c:674 #16 0xffffffff803d9384 in printf (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/subr_prf.c:314 #17 0xffffffff803e705d in witness_checkorder (lock=0xffffffff808668f8, flags=0, file=0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) at /usr/src/sys/kern/subr_witness.c:948 #18 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff808668f8, opts=0, file=dwarf2_read_address: Corrupted DWARF expression. ) at /usr/src/sys/kern/kern_mutex.c:227 #19 0xffffffff803b2271 in wakeup (ident=0xffffffff80850ac0) at /usr/src/sys/kern/kern_synch.c:341 #20 0xffffffff803aed95 in tdsignal (p=0xffffff00017978f0, td=0xffffff000146a6e0, sig=14, ksi=Variable "ksi" is not available. ) at /usr/src/sys/kern/kern_sig.c:2292 #21 0xffffffff803ba2de in realitexpire (arg=Variable "arg" is not available. ) at /usr/src/sys/kern/kern_time.c:669 #22 0xffffffff803bbe1a in softclock (dummy=Variable "dummy" is not available. ) at /usr/src/sys/kern/kern_timeout.c:274 #23 0xffffffff8038c120 in ithread_loop (arg=0xffffff00010ebc00) at /usr/src/sys/kern/kern_intr.c:1088 #24 0xffffffff8038978a in fork_exit (callout=0xffffffff8038c040 , arg=0xffffff00010ebc00, frame=0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 #25 0xffffffff8057f9de in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:455 But file /usr/src/sys/kern/kern_sig.c:2292 hasn`t run function wake up on string 2292 I`m think, what compiler use inline function, therefore code and trace differ. Tell me please, how compile kernel without any inline function. -- Menshikov Konstantin From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 09:38:32 2009 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 956541065675; Thu, 4 Jun 2009 09:38:32 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 36EEF8FC26; Thu, 4 Jun 2009 09:38:32 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 578AA1D183; Thu, 4 Jun 2009 11:38:31 +0200 (CEST) Date: Thu, 4 Jun 2009 11:38:31 +0200 From: Ed Schouten To: hackers@FreeBSD.org Message-ID: <20090604093831.GE48776@hoeg.nl> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="OxpcHoRZqvs6WvX3" Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) Cc: current@FreeBSD.org Subject: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 09:38:33 -0000 --OxpcHoRZqvs6WvX3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Good news everyone! As I mentioned at BSDCan, I was going to import my FreeBSD+Clang branch into SVN. Tuesday I finally had some time to do it, so here's the result: http://svn.freebsd.org/viewvc/base/projects/clangbsd/ You can now build your very own version of FreeBSD with Clang installed as /usr/bin/cc as follows: - Check out the clangbsd branch from our SVN repository: svn co svn://svn.freebsd.org/base/projects/clangbsd - Put this in /etc/src.conf: WITH_CLANG=3D WITH_CLANG_IS_CC=3D NO_WERROR=3D WERROR=3D - Just run `make buildworld' and `make installworld'. You probably don't want to install it on top of your running system. I strongly advise you to create a separate jail to do all your testing with. When using a jail, you probably want to add NO_FSCHG=3D to /etc/src.conf as well to keep `make installworld' happy. So far we've only done testing on amd64 and i386. A lot of ports are probably still broken. Caveat emptor. Beware of dog. Slippery when wet. --=20 Ed Schouten WWW: http://80386.nl/ --OxpcHoRZqvs6WvX3 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkonlhcACgkQ52SDGA2eCwUf9gCfbBh/V2IuYpAD/VW4n2Mq8i1W Br0AnA6RAhNwu5AvoiL2tOrf0aP/Mb13 =RIvU -----END PGP SIGNATURE----- --OxpcHoRZqvs6WvX3-- From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 11:19:10 2009 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 312F81065674 for ; Thu, 4 Jun 2009 11:19:10 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190]) by mx1.freebsd.org (Postfix) with ESMTP id D8E9A8FC14 for ; Thu, 4 Jun 2009 11:19:09 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id A7D5B9CB12F; Thu, 4 Jun 2009 13:18:08 +0200 (CEST) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UdLZsOlsyqUb; Thu, 4 Jun 2009 13:18:06 +0200 (CEST) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id F2FF49CB256; Thu, 4 Jun 2009 13:18:01 +0200 (CEST) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id n54BI1r5091561; Thu, 4 Jun 2009 13:18:01 +0200 (CEST) (envelope-from rdivacky) Date: Thu, 4 Jun 2009 13:18:01 +0200 From: Roman Divacky To: Ed Schouten Message-ID: <20090604111801.GA91410@freebsd.org> References: <20090604093831.GE48776@hoeg.nl> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="y0ulUmNC+osPPQO6" Content-Disposition: inline In-Reply-To: <20090604093831.GE48776@hoeg.nl> User-Agent: Mutt/1.4.2.3i Cc: hackers@FreeBSD.org, current@FreeBSD.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 11:19:10 -0000 --y0ulUmNC+osPPQO6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Jun 04, 2009 at 11:38:31AM +0200, Ed Schouten wrote: > Good news everyone! >=20 > As I mentioned at BSDCan, I was going to import my FreeBSD+Clang branch > into SVN. Tuesday I finally had some time to do it, so here's the > result: >=20 > http://svn.freebsd.org/viewvc/base/projects/clangbsd/ >=20 > You can now build your very own version of FreeBSD with Clang installed > as /usr/bin/cc as follows: >=20 > - Check out the clangbsd branch from our SVN repository: > svn co svn://svn.freebsd.org/base/projects/clangbsd >=20 > - Put this in /etc/src.conf: > WITH_CLANG=3D > WITH_CLANG_IS_CC=3D > NO_WERROR=3D > WERROR=3D >=20 > - Just run `make buildworld' and `make installworld'. it should be able to compile a bootable kernel on amd64/i386 as well.. so feel free to test that too :) --y0ulUmNC+osPPQO6 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (FreeBSD) iEYEARECAAYFAkonrWkACgkQLVEj6D3CBEx9CQCePnPDveSWHA7JFJ66Iq3mi7jM 9twAn3/40NADwqPoZGwze+rW392O3D9v =OdiB -----END PGP SIGNATURE----- --y0ulUmNC+osPPQO6-- From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 12:22:19 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB4D11065679 for ; Thu, 4 Jun 2009 12:22:19 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id BE7F78FC18 for ; Thu, 4 Jun 2009 12:22:19 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 44D2646B23; Thu, 4 Jun 2009 08:22:19 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 433E18A02C; Thu, 4 Jun 2009 08:22:18 -0400 (EDT) From: John Baldwin To: freebsd-hackers@freebsd.org Date: Thu, 4 Jun 2009 07:49:16 -0400 User-Agent: KMail/1.9.7 References: <4A2792B7.5010006@peterhost.ru> In-Reply-To: <4A2792B7.5010006@peterhost.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200906040749.17206.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Thu, 04 Jun 2009 08:22:18 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Menshikov Konstantin Subject: Re: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 12:22:20 -0000 On Thursday 04 June 2009 5:24:07 am Menshikov Konstantin wrote: > Hi. > My system FreeBSD 7.1 RELEASE periodically freeze. >=20 > I`m compiling kernel with WITNESS and get backtrace. >=20 > #0 doadump () at pcpu.h:195 > #1 0xffffffff801a899c in db_fncall (dummy1=3DVariable "dummy1" is not=20 > available. > ) at /usr/src/sys/ddb/db_command.c:516 > #2 0xffffffff801a8ecf in db_command (last_cmdp=3D0xffffffff80825688,=20 > cmd_table=3D0x0, dopager=3D1) > at /usr/src/sys/ddb/db_command.c:413 > #3 0xffffffff801a90e0 in db_command_loop () at=20 > /usr/src/sys/ddb/db_command.c:466 > #4 0xffffffff801aaa19 in db_trap (type=3DVariable "type" is not available. > ) at /usr/src/sys/ddb/db_main.c:228 > #5 0xffffffff803d5e55 in kdb_trap (type=3D3, code=3D0,=20 > tf=3D0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 > #6 0xffffffff8059a0e5 in trap (frame=3D0xffffffffabf284c0) at=20 > /usr/src/sys/amd64/amd64/trap.c:538 > #7 0xffffffff8057f60e in calltrap () at=20 > /usr/src/sys/amd64/amd64/exception.S:209 > #8 0xffffffff803d602d in kdb_enter_why (why=3D0xffffffff80628137=20 > "witness", msg=3D0xa
) > at cpufunc.h:63 > #9 0xffffffff803e70c3 in witness_checkorder (lock=3DVariable "lock" is no= t=20 > available. > ) at /usr/src/sys/kern/subr_witness.c:1126 > #10 0xffffffff8039e341 in _mtx_lock_spin_flags (m=3D0xffffffff8084fad0,=20 > opts=3D0, file=3Ddwarf2_read_address: Corrupted DWARF expression. > ) at /usr/src/sys/kern/kern_mutex.c:227 > #11 0xffffffff80319838 in sc_puts (scp=3D0xffffffff8084f980,=20 > buf=3D0xffffffffabf286a7 "a@\az\200=D0=AA=D0=AA=D0=AA=D0=AA", len=3D1) > at /usr/src/sys/dev/syscons/syscons.c:2519 > #12 0xffffffff8031b3da in sc_cnputc (cd=3DVariable "cd" is not available. > ) at /usr/src/sys/dev/syscons/syscons.c:1561 > #13 0xffffffff803f9d89 in cnputc (c=3D97) at /usr/src/sys/kern/tty_cons.c= :632 > #14 0xffffffff803d993b in putchar (c=3D97, arg=3DVariable "arg" is not=20 > available. > ) at /usr/src/sys/kern/subr_prf.c:421 > #15 0xffffffff803d7f22 in kvprintf (fmt=3D0xffffffff80628b89 "cquiring=20 > duplicate lock of same type: \"%s\"\n", > func=3D0xffffffff803d98d0 , arg=3D0xffffffffabf28890, radix=3D10= ,=20 > ap=3DVariable "ap" is not available. > ) at /usr/src/sys/kern/subr_prf.c:674 > #16 0xffffffff803d9384 in printf (fmt=3DVariable "fmt" is not available. > ) at /usr/src/sys/kern/subr_prf.c:314 > #17 0xffffffff803e705d in witness_checkorder (lock=3D0xffffffff808668f8,= =20 > flags=3D0, > file=3D0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", line=3D2= 32)=20 > at /usr/src/sys/kern/subr_witness.c:948 > #18 0xffffffff8039e341 in _mtx_lock_spin_flags (m=3D0xffffffff808668f8,=20 > opts=3D0, file=3Ddwarf2_read_address: Corrupted DWARF expression. > ) at /usr/src/sys/kern/kern_mutex.c:227 > #19 0xffffffff803b2271 in wakeup (ident=3D0xffffffff80850ac0) at=20 > /usr/src/sys/kern/kern_synch.c:341 > #20 0xffffffff803aed95 in tdsignal (p=3D0xffffff00017978f0,=20 > td=3D0xffffff000146a6e0, sig=3D14, ksi=3DVariable "ksi" is not available. > ) > at /usr/src/sys/kern/kern_sig.c:2292 > #21 0xffffffff803ba2de in realitexpire (arg=3DVariable "arg" is not avail= able. > ) at /usr/src/sys/kern/kern_time.c:669 > #22 0xffffffff803bbe1a in softclock (dummy=3DVariable "dummy" is not=20 > available. > ) at /usr/src/sys/kern/kern_timeout.c:274 > #23 0xffffffff8038c120 in ithread_loop (arg=3D0xffffff00010ebc00) at=20 > /usr/src/sys/kern/kern_intr.c:1088 > #24 0xffffffff8038978a in fork_exit (callout=3D0xffffffff8038c040=20 > , arg=3D0xffffff00010ebc00, > frame=3D0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 > #25 0xffffffff8057f9de in fork_trampoline () at=20 > /usr/src/sys/amd64/amd64/exception.S:455 >=20 > But file /usr/src/sys/kern/kern_sig.c:2292 > hasn`t run function wake up on string 2292 > I`m think, what compiler use inline function, therefore code and trace=20 > differ. > Tell me please, how compile kernel without any inline function. makeoptions DEBUG=3D"-g -fno-inline" However. I think you already have enough information to debug this. Can yo= u=20 go to frame 17 and do an 'l'? I think the two things you want to print out= =20 are "i", "*lock", "*lock1", and "*lock2". =2D-=20 John Baldwin From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 12:39:04 2009 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF010106566B; Thu, 4 Jun 2009 12:39:04 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190]) by mx1.freebsd.org (Postfix) with ESMTP id 8868D8FC1A; Thu, 4 Jun 2009 12:39:03 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id 8E0E69CB102; Thu, 4 Jun 2009 14:38:04 +0200 (CEST) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 79yz6aMeQbnk; Thu, 4 Jun 2009 14:38:02 +0200 (CEST) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id 4687E9CB1C3; Thu, 4 Jun 2009 14:38:02 +0200 (CEST) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id n54Cc1C7035166; Thu, 4 Jun 2009 14:38:01 +0200 (CEST) (envelope-from rdivacky) Date: Thu, 4 Jun 2009 14:38:01 +0200 From: Roman Divacky To: Erik Cederstrand Message-ID: <20090604123801.GA34971@freebsd.org> References: <20090604093831.GE48776@hoeg.nl> <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> User-Agent: Mutt/1.4.2.3i Cc: Ed Schouten , hackers@FreeBSD.org, current@FreeBSD.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 12:39:05 -0000 On Thu, Jun 04, 2009 at 02:35:56PM +0200, Erik Cederstrand wrote: > Den 04/06/2009 kl. 11.38 skrev Ed Schouten: > > >You can now build your very own version of FreeBSD with Clang > >installed > >as /usr/bin/cc as follows: > > Thanks for your hard work, Ed. This is great news! > > You might want to mention that a few parts are still GCC-compiled due > to bugs in Clang ( see http://wiki.freebsd.org/ > BuildingFreeBSDWithClang). Also, it's very encouraging that the ports > run you did with Erwin > (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005274.html ) > compiles over 7000 ports with Clang. > > I've asked in the Clang list, but I'd like an opinion from FreeBSD > folks, too: Clang supports LTO > (http://llvm.org/docs/LinkTimeOptimization.html ), which has a potential > for performance improvements. It doesn't work on FreeBSD because the > linker we have (in binutils) doesn't know about the libLTO that LLVM > provides. There's a new linker from GNU called Gold, but as far as I know > it's GPLv3 licensed and therefore undesirable at least to have in base. > LLVM provides a linker (http://llvm.org/cmds/llvm-ld.html ) but "it doesn't > interact correctly with conventional nm/ar/etc" > (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005296.html ). > There's the ELF toolchain project (elftoolchain.sourceforge.net/) but a > BSD-licensed ld hasn't been developed yet. > > What would be the best way to get LTO to work on FreeBSD? you could use llvm-ld (see the wiki for instructions how to do it). there's also some effort to make gnu ld usable with llvm LTO and I guess the patch could be backported to our ld. I guess From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 13:00:53 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0AA93106566C for ; Thu, 4 Jun 2009 13:00:53 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from mail.z8.ru (mail.z8.ru [80.93.58.56]) by mx1.freebsd.org (Postfix) with ESMTP id 95B298FC19 for ; Thu, 4 Jun 2009 13:00:52 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from [85.235.196.139] (helo=kostjn.pht) by mail.z8.ru with esmtpa (Exim 4.67 (FreeBSD)) (envelope-from ) id 1MCCYP-0000i6-OE for freebsd-hackers@freebsd.org; Thu, 04 Jun 2009 17:00:21 +0400 Message-ID: <4A27C5E8.7020902@peterhost.ru> Date: Thu, 04 Jun 2009 17:02:32 +0400 From: Menshikov Konstantin User-Agent: Thunderbird 2.0.0.18 (X11/20090328) MIME-Version: 1.0 CC: freebsd-hackers@freebsd.org References: <4A2792B7.5010006@peterhost.ru> <200906040749.17206.jhb@freebsd.org> In-Reply-To: <200906040749.17206.jhb@freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 13:00:53 -0000 John Baldwin wrote: > On Thursday 04 June 2009 5:24:07 am Menshikov Konstantin wrote: > >> Hi. >> My system FreeBSD 7.1 RELEASE periodically freeze. >> >> I`m compiling kernel with WITNESS and get backtrace. >> >> #0 doadump () at pcpu.h:195 >> #1 0xffffffff801a899c in db_fncall (dummy1=Variable "dummy1" is not >> available. >> ) at /usr/src/sys/ddb/db_command.c:516 >> #2 0xffffffff801a8ecf in db_command (last_cmdp=0xffffffff80825688, >> cmd_table=0x0, dopager=1) >> at /usr/src/sys/ddb/db_command.c:413 >> #3 0xffffffff801a90e0 in db_command_loop () at >> /usr/src/sys/ddb/db_command.c:466 >> #4 0xffffffff801aaa19 in db_trap (type=Variable "type" is not available. >> ) at /usr/src/sys/ddb/db_main.c:228 >> #5 0xffffffff803d5e55 in kdb_trap (type=3, code=0, >> tf=0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 >> #6 0xffffffff8059a0e5 in trap (frame=0xffffffffabf284c0) at >> /usr/src/sys/amd64/amd64/trap.c:538 >> #7 0xffffffff8057f60e in calltrap () at >> /usr/src/sys/amd64/amd64/exception.S:209 >> #8 0xffffffff803d602d in kdb_enter_why (why=0xffffffff80628137 >> "witness", msg=0xa
) >> at cpufunc.h:63 >> #9 0xffffffff803e70c3 in witness_checkorder (lock=Variable "lock" is not >> available. >> ) at /usr/src/sys/kern/subr_witness.c:1126 >> #10 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff8084fad0, >> opts=0, file=dwarf2_read_address: Corrupted DWARF expression. >> ) at /usr/src/sys/kern/kern_mutex.c:227 >> #11 0xffffffff80319838 in sc_puts (scp=0xffffffff8084f980, >> buf=0xffffffffabf286a7 "a@\az\200ЪЪЪЪ", len=1) >> at /usr/src/sys/dev/syscons/syscons.c:2519 >> #12 0xffffffff8031b3da in sc_cnputc (cd=Variable "cd" is not available. >> ) at /usr/src/sys/dev/syscons/syscons.c:1561 >> #13 0xffffffff803f9d89 in cnputc (c=97) at /usr/src/sys/kern/tty_cons.c:632 >> #14 0xffffffff803d993b in putchar (c=97, arg=Variable "arg" is not >> available. >> ) at /usr/src/sys/kern/subr_prf.c:421 >> #15 0xffffffff803d7f22 in kvprintf (fmt=0xffffffff80628b89 "cquiring >> duplicate lock of same type: \"%s\"\n", >> func=0xffffffff803d98d0 , arg=0xffffffffabf28890, radix=10, >> ap=Variable "ap" is not available. >> ) at /usr/src/sys/kern/subr_prf.c:674 >> #16 0xffffffff803d9384 in printf (fmt=Variable "fmt" is not available. >> ) at /usr/src/sys/kern/subr_prf.c:314 >> #17 0xffffffff803e705d in witness_checkorder (lock=0xffffffff808668f8, >> flags=0, >> file=0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) >> at /usr/src/sys/kern/subr_witness.c:948 >> #18 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff808668f8, >> opts=0, file=dwarf2_read_address: Corrupted DWARF expression. >> ) at /usr/src/sys/kern/kern_mutex.c:227 >> #19 0xffffffff803b2271 in wakeup (ident=0xffffffff80850ac0) at >> /usr/src/sys/kern/kern_synch.c:341 >> #20 0xffffffff803aed95 in tdsignal (p=0xffffff00017978f0, >> td=0xffffff000146a6e0, sig=14, ksi=Variable "ksi" is not available. >> ) >> at /usr/src/sys/kern/kern_sig.c:2292 >> #21 0xffffffff803ba2de in realitexpire (arg=Variable "arg" is not available. >> ) at /usr/src/sys/kern/kern_time.c:669 >> #22 0xffffffff803bbe1a in softclock (dummy=Variable "dummy" is not >> available. >> ) at /usr/src/sys/kern/kern_timeout.c:274 >> #23 0xffffffff8038c120 in ithread_loop (arg=0xffffff00010ebc00) at >> /usr/src/sys/kern/kern_intr.c:1088 >> #24 0xffffffff8038978a in fork_exit (callout=0xffffffff8038c040 >> , arg=0xffffff00010ebc00, >> frame=0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 >> #25 0xffffffff8057f9de in fork_trampoline () at >> /usr/src/sys/amd64/amd64/exception.S:455 >> >> But file /usr/src/sys/kern/kern_sig.c:2292 >> hasn`t run function wake up on string 2292 >> I`m think, what compiler use inline function, therefore code and trace >> differ. >> Tell me please, how compile kernel without any inline function. >> > > makeoptions DEBUG="-g -fno-inline" > > However. I think you already have enough information to debug this. Can you > go to frame 17 and do an 'l'? I think the two things you want to print out > are "i", "*lock", "*lock1", and "*lock2". > > Unfortunately, the kernel is not compiled with an option-fno-inline. cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -g -fno-inline -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror /usr/src/sys/cam/cam_periph.c cc1: warnings being treated as errors /usr/src/sys/cam/cam_periph.c: In function 'scsi_extract_sense': /usr/src/sys/cam/scsi/scsi_all.h:1215: warning: function 'scsi_extract_sense' can never be inlined because it is suppressed using -fno-inline I`m try build with -O0 options. lock in frame 17 (kgdb) print {struct mtx} 0xffffffff808668f8 $4 = {lock_object = {lo_name = 0xffffffff806270eb "sleepq chain", lo_type = 0xffffffff806270eb "sleepq chain", lo_flags = 720896, lo_witness_data = {lod_list = {stqe_next = 0xffffffff808793e0}, lod_witness = 0xffffffff808793e0}}, mtx_lock = 4, mtx_recurse = 0} next in list (kgdb) print {struct mtx} 0xffffffff808793e0 $5 = {lock_object = {lo_name = 0xffffffff806270eb "sleepq chain", lo_type = 0xffffffff807e8860 "\031\006b\200ЪЪЪЪ\n", lo_flags = 2156368928, lo_witness_data = {lod_list = {stqe_next = 0xffffffff80879420}, lod_witness = 0xffffffff80879420}}, mtx_lock = 18446744071571216096, mtx_recurse = 2153913763} (kgdb) print {struct mtx} 0xffffffff80879420 next $6 = {lock_object = {lo_name = 0xffffffff806205df "process slock", lo_type = 0xffffffff807e8860 "\031\006b\200ЪЪЪЪ\n", lo_flags = 2156368992, lo_witness_data = {lod_list = {stqe_next = 0xffffffff80879460}, lod_witness = 0xffffffff80879460}}, mtx_lock = 18446744071571216160, mtx_recurse = 2153889520} As far as I understand, 2 times are requested blocking of one class. Besides, too great values mtx_recurse it is wrong. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 13:21:26 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BB17106564A for ; Thu, 4 Jun 2009 13:21:26 +0000 (UTC) (envelope-from unixmania@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.155]) by mx1.freebsd.org (Postfix) with ESMTP id C58FB8FC08 for ; Thu, 4 Jun 2009 13:21:25 +0000 (UTC) (envelope-from unixmania@gmail.com) Received: by fg-out-1718.google.com with SMTP id e12so1229250fga.12 for ; Thu, 04 Jun 2009 06:21:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=FLn7x2E6gWuFxS2BNGtzB8GfnPoRm0RRQbpGbPsfRi8=; b=Htpop+a5xmmb2KOTISibC/gCPueXjDkQzJBwH0qltifnWqzXKOCScKY6WhMAKFMq8U SB5VumZkaLl8V5dTf2c19lKsQmFTqgjwOXk45udOE742kGkzD01TAeD8KyQGPdZ6cK+l XMlp1seSCFmexrG6YKXoFSzhsgcuvKVbTWOtM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=JwjhZk/qaSZiAnZZ/k3oZ4hw2OCuA3pBY+3SomKNLidjtL7DzUz4+ga4kPfnX94YcE c+U7a3CNjA0KhoHTRU8sq+cz7TcfLs52fTydwT6Q44QhfofFnnRaITC9h2jNfxaGLqz8 FQALvOs05x5gIgP9m5PbrkvuaLLH6oteW/FSg= MIME-Version: 1.0 Received: by 10.239.133.67 with SMTP id 3mr151659hbu.63.1244121684672; Thu, 04 Jun 2009 06:21:24 -0700 (PDT) Date: Thu, 4 Jun 2009 10:21:24 -0300 Message-ID: From: "Carlos A. M. dos Santos" To: FreeBSD Hackers Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: looking for style(9) configuration for Eclipse X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 13:21:26 -0000 Is there any document describing how to configure Eclipse for style(9) compliance? Eclipse is the official IDE of the project I'm working on. We use code taken from FreeBSD, making some changes that my company plans to contribute back, so I'd like to keep the formatting compliant to style(9). The Developers' Handbook only mentions Emacs, however. Thanks in advance -- My preferred quotation of Robert Louis Stevenson is "You cannot make an omelette without breaking eggs". Not because I like the omelettes, but because I like the sound of eggs being broken. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 13:51:57 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52C31106566B for ; Thu, 4 Jun 2009 13:51:57 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from mail.z8.ru (mail.z8.ru [80.93.58.56]) by mx1.freebsd.org (Postfix) with ESMTP id DB79E8FC36 for ; Thu, 4 Jun 2009 13:51:55 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from [85.235.196.139] (helo=kostjn.pht) by mail.z8.ru with esmtpa (Exim 4.67 (FreeBSD)) (envelope-from ) id 1MCDMH-000IDn-0t for freebsd-hackers@freebsd.org; Thu, 04 Jun 2009 17:51:53 +0400 Message-ID: <4A27D1FC.1020408@peterhost.ru> Date: Thu, 04 Jun 2009 17:54:04 +0400 From: Menshikov Konstantin User-Agent: Thunderbird 2.0.0.18 (X11/20090328) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org References: <4A2792B7.5010006@peterhost.ru> <200906040749.17206.jhb@freebsd.org> <4A27C5E8.7020902@peterhost.ru> In-Reply-To: <4A27C5E8.7020902@peterhost.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 13:51:57 -0000 Menshikov Konstantin wrote: > John Baldwin wrote: >> On Thursday 04 June 2009 5:24:07 am Menshikov Konstantin wrote: >> >>> Hi. >>> My system FreeBSD 7.1 RELEASE periodically freeze. >>> >>> I`m compiling kernel with WITNESS and get backtrace. >>> >>> #0 doadump () at pcpu.h:195 >>> #1 0xffffffff801a899c in db_fncall (dummy1=Variable "dummy1" is not >>> available. >>> ) at /usr/src/sys/ddb/db_command.c:516 >>> #2 0xffffffff801a8ecf in db_command (last_cmdp=0xffffffff80825688, >>> cmd_table=0x0, dopager=1) >>> at /usr/src/sys/ddb/db_command.c:413 >>> #3 0xffffffff801a90e0 in db_command_loop () at >>> /usr/src/sys/ddb/db_command.c:466 >>> #4 0xffffffff801aaa19 in db_trap (type=Variable "type" is not >>> available. >>> ) at /usr/src/sys/ddb/db_main.c:228 >>> #5 0xffffffff803d5e55 in kdb_trap (type=3, code=0, >>> tf=0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 >>> #6 0xffffffff8059a0e5 in trap (frame=0xffffffffabf284c0) at >>> /usr/src/sys/amd64/amd64/trap.c:538 >>> #7 0xffffffff8057f60e in calltrap () at >>> /usr/src/sys/amd64/amd64/exception.S:209 >>> #8 0xffffffff803d602d in kdb_enter_why (why=0xffffffff80628137 >>> "witness", msg=0xa
) >>> at cpufunc.h:63 >>> #9 0xffffffff803e70c3 in witness_checkorder (lock=Variable "lock" is >>> not available. >>> ) at /usr/src/sys/kern/subr_witness.c:1126 >>> #10 0xffffffff8039e341 in _mtx_lock_spin_flags >>> (m=0xffffffff8084fad0, opts=0, file=dwarf2_read_address: Corrupted >>> DWARF expression. >>> ) at /usr/src/sys/kern/kern_mutex.c:227 >>> #11 0xffffffff80319838 in sc_puts (scp=0xffffffff8084f980, >>> buf=0xffffffffabf286a7 "a@\az\200ЪЪЪЪ", len=1) >>> at /usr/src/sys/dev/syscons/syscons.c:2519 >>> #12 0xffffffff8031b3da in sc_cnputc (cd=Variable "cd" is not available. >>> ) at /usr/src/sys/dev/syscons/syscons.c:1561 >>> #13 0xffffffff803f9d89 in cnputc (c=97) at >>> /usr/src/sys/kern/tty_cons.c:632 >>> #14 0xffffffff803d993b in putchar (c=97, arg=Variable "arg" is not >>> available. >>> ) at /usr/src/sys/kern/subr_prf.c:421 >>> #15 0xffffffff803d7f22 in kvprintf (fmt=0xffffffff80628b89 "cquiring >>> duplicate lock of same type: \"%s\"\n", >>> func=0xffffffff803d98d0 , arg=0xffffffffabf28890, radix=10, >>> ap=Variable "ap" is not available. >>> ) at /usr/src/sys/kern/subr_prf.c:674 >>> #16 0xffffffff803d9384 in printf (fmt=Variable "fmt" is not available. >>> ) at /usr/src/sys/kern/subr_prf.c:314 >>> #17 0xffffffff803e705d in witness_checkorder >>> (lock=0xffffffff808668f8, flags=0, >>> file=0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", >>> line=232) at /usr/src/sys/kern/subr_witness.c:948 >>> #18 0xffffffff8039e341 in _mtx_lock_spin_flags >>> (m=0xffffffff808668f8, opts=0, file=dwarf2_read_address: Corrupted >>> DWARF expression. >>> ) at /usr/src/sys/kern/kern_mutex.c:227 >>> #19 0xffffffff803b2271 in wakeup (ident=0xffffffff80850ac0) at >>> /usr/src/sys/kern/kern_synch.c:341 >>> #20 0xffffffff803aed95 in tdsignal (p=0xffffff00017978f0, >>> td=0xffffff000146a6e0, sig=14, ksi=Variable "ksi" is not available. >>> ) >>> at /usr/src/sys/kern/kern_sig.c:2292 >>> #21 0xffffffff803ba2de in realitexpire (arg=Variable "arg" is not >>> available. >>> ) at /usr/src/sys/kern/kern_time.c:669 >>> #22 0xffffffff803bbe1a in softclock (dummy=Variable "dummy" is not >>> available. >>> ) at /usr/src/sys/kern/kern_timeout.c:274 >>> #23 0xffffffff8038c120 in ithread_loop (arg=0xffffff00010ebc00) at >>> /usr/src/sys/kern/kern_intr.c:1088 >>> #24 0xffffffff8038978a in fork_exit (callout=0xffffffff8038c040 >>> , arg=0xffffff00010ebc00, >>> frame=0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 >>> #25 0xffffffff8057f9de in fork_trampoline () at >>> /usr/src/sys/amd64/amd64/exception.S:455 >>> >>> But file /usr/src/sys/kern/kern_sig.c:2292 >>> hasn`t run function wake up on string 2292 >>> I`m think, what compiler use inline function, therefore code and >>> trace differ. >>> Tell me please, how compile kernel without any inline function. >>> >> >> makeoptions DEBUG="-g -fno-inline" >> >> However. I think you already have enough information to debug this. >> Can you go to frame 17 and do an 'l'? I think the two things you >> want to print out are "i", "*lock", "*lock1", and "*lock2". >> >> > Unfortunately, the kernel is not compiled with an option-fno-inline. > cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -g > -fno-inline -Wall -Wredundant-decls -Wnested-externs > -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline > -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc > -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL > -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common > -finline-limit=8000 --param inline-unit-growth=100 --param > large-function-growth=1000 -fno-omit-frame-pointer -mcmodel=kernel > -mno-red-zone -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow > -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror > /usr/src/sys/cam/cam_periph.c > cc1: warnings being treated as errors > /usr/src/sys/cam/cam_periph.c: In function 'scsi_extract_sense': > /usr/src/sys/cam/scsi/scsi_all.h:1215: warning: function > 'scsi_extract_sense' can never be inlined because it is suppressed > using -fno-inline > > I`m try build with -O0 options. > > lock in frame 17 > (kgdb) print {struct mtx} 0xffffffff808668f8 > $4 = {lock_object = {lo_name = 0xffffffff806270eb "sleepq chain", > lo_type = 0xffffffff806270eb "sleepq chain", > lo_flags = 720896, lo_witness_data = {lod_list = {stqe_next = > 0xffffffff808793e0}, lod_witness = 0xffffffff808793e0}}, > mtx_lock = 4, mtx_recurse = 0} > next in list > (kgdb) print {struct mtx} 0xffffffff808793e0 > $5 = {lock_object = {lo_name = 0xffffffff806270eb "sleepq chain", > lo_type = 0xffffffff807e8860 "\031\006b\200ЪЪЪЪ\n", > lo_flags = 2156368928, lo_witness_data = {lod_list = {stqe_next = > 0xffffffff80879420}, > lod_witness = 0xffffffff80879420}}, mtx_lock = > 18446744071571216096, mtx_recurse = 2153913763} > (kgdb) print {struct mtx} 0xffffffff80879420 > next > $6 = {lock_object = {lo_name = 0xffffffff806205df "process slock", > lo_type = 0xffffffff807e8860 "\031\006b\200ЪЪЪЪ\n", > lo_flags = 2156368992, lo_witness_data = {lod_list = {stqe_next = > 0xffffffff80879460}, > lod_witness = 0xffffffff80879460}}, mtx_lock = > 18446744071571216160, mtx_recurse = 2153889520} > > As far as I understand, 2 times are requested blocking of one class. > Besides, too great values mtx_recurse it is wrong. > Sorry, I was mistaken. thread spin lock. $35 = {lock_object = {lo_name = 0xffffffff806270eb "sleepq chain", lo_type = 0xffffffff806270eb "sleepq chain", lo_flags = 720896, lo_witness_data = {lod_list = {stqe_next = 0xffffffff808793e0}, lod_witness = 0xffffffff808793e0}}, mtx_lock = 4, mtx_recurse = 0} (kgdb) print {struct witness} 0xffffffff808793e0 $36 = {w_name = 0xffffffff806270eb "sleepq chain", w_class = 0xffffffff807e8860, w_list = {stqe_next = 0xffffffff80879420}, w_typelist = {stqe_next = 0xffffffff80879420}, w_children = 0xffffffff808b96e0, w_file = 0xffffffff80621da3 "/usr/src/sys/kern/kern_sig.c", w_line = 2291, w_level = 0, w_refcount = 129, w_Giant_squawked = 0 '\0', w_other_squawked = 1 '\001', w_same_squawked = 1 '\001', w_displayed = 0 '\0'} next struct witness proc spin lock (kgdb) print {struct proc} 0xffffff00013a4478 $55 = {p_list = {le_next = 0xffffff00013a7000, le_prev = 0xffffff0001416000}, p_threads = {tqh_first = 0xffffff000144e370, tqh_last = 0xffffff000144e380}, p_upcalls = {tqh_first = 0x0, tqh_last = 0xffffff00013a4498}, p_slock = {lock_object = { lo_name = 0xffffffff806205df "process slock", lo_type = 0xffffffff806205df "process slock", lo_flags = 720896, lo_witness_data = {lod_list = {stqe_next = 0xffffffff80879420}, lod_witness = 0xffffffff80879420}}, mtx_lock = 18446742974215689072, mtx_recurse = 0}... $56 = {w_name = 0xffffffff806205df "process slock", w_class = 0xffffffff807e8860, w_list = { stqe_next = 0xffffffff80879460}, w_typelist = {stqe_next = 0xffffffff80879460}, w_children = 0xffffffff808b9720, w_file = 0xffffffff8061bef0 "/usr/src/sys/kern/kern_clock.c", w_line = 281, w_level = 0, w_refcount = 431, w_Giant_squawked = 0 '\0', w_other_squawked = 0 '\0', w_same_squawked = 0 '\0', w_displayed = 0 '\0'} If it is fair, while I do not know, where exactly a problem. If you are ready to try to help, I can give a kernel and dump to memory. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 14:27:32 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FD37106564A for ; Thu, 4 Jun 2009 14:27:32 +0000 (UTC) (envelope-from erdgeist@erdgeist.org) Received: from elektropost.org (elektropost.org [217.13.206.130]) by mx1.freebsd.org (Postfix) with ESMTP id CC8178FC15 for ; Thu, 4 Jun 2009 14:27:31 +0000 (UTC) (envelope-from erdgeist@erdgeist.org) Received: (qmail 85954 invoked from network); 4 Jun 2009 14:00:49 -0000 Received: from unknown (HELO bauklotz.local) (erdgeist@erdgeist.org@62.220.7.20) by elektropost.org with AES256-SHA encrypted SMTP; 4 Jun 2009 14:00:49 -0000 Message-ID: <4A27D38B.6040108@erdgeist.org> Date: Thu, 04 Jun 2009 16:00:43 +0200 From: Dirk Engling User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 14:27:32 -0000 Dear fellow hackers, since jail can be bound on multiple IP addresses I tend to clone multiple loopback interfaces and add one loopback address to each jail cloned_interfaces="lo1 lo2 lo3" ifconfig_lo1_alias0="inet 127.0.0.2 netmask 0xffffffff" ifconfig_lo2_alias0="inet 127.0.0.3 netmask 0xffffffff" ifconfig_lo3_alias0="inet 127.0.0.4 netmask 0xffffffff" .. no this is not yet optimal, since I can not run several jails on a single external IP anymore, but at least local daemons are not visible to the outside world, anymore. However, grep -R 127.0.0.1 /etc reveals, that sendmail in many places assumes localhost to be on 127.0.0.1 instead of looking it up in /etc/hosts or using 127.0.0.0/8 to identify a local connection. I worry that more programmers made those assumptions, possibly breaking more tools. My question is: Who's the right guy to beg to fix sendmail or alternatively would it be smart to allow each jail to have its own concept of 127.0.0.1 on a dummy interface mapped to all jails, that itself doesn't count as a bound IP address (thus allowing the jail to bind to an already bound ip address) and is not routed between jails? Any ideas? erdgeist From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 15:18:08 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 833DE1065673 for ; Thu, 4 Jun 2009 15:18:08 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [IPv6:2001:4070:101:2::1]) by mx1.freebsd.org (Postfix) with ESMTP id 813148FC1A for ; Thu, 4 Jun 2009 15:18:07 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (localhost [IPv6:::1]) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3) with ESMTP id n54FHto4034217; Thu, 4 Jun 2009 17:17:55 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.3/8.14.3/Submit) with ESMTP id n54FHtc1034214; Thu, 4 Jun 2009 17:17:55 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Thu, 4 Jun 2009 17:17:55 +0200 (CEST) From: Wojciech Puchar To: Dirk Engling In-Reply-To: <4A27D38B.6040108@erdgeist.org> Message-ID: References: <4A27D38B.6040108@erdgeist.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 15:18:08 -0000 > However, grep -R 127.0.0.1 /etc reveals, that sendmail in many places > assumes localhost to be on 127.0.0.1 instead of looking it up in > /etc/hosts or using 127.0.0.0/8 to identify a local connection. calling 127.0.0.1 from jail always loops back within jail. it's all fine. > > I worry that more programmers made those assumptions, possibly breaking > more tools. > > My question is: Who's the right guy to beg to fix sendmail or > alternatively would it be smart to allow each jail to have its own > concept of 127.0.0.1 on a dummy interface mapped to all jails, that it already have From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 15:46:59 2009 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9ED34106564A; Thu, 4 Jun 2009 15:46:59 +0000 (UTC) (envelope-from marius@nuenneri.ch) Received: from mail-fx0-f211.google.com (mail-fx0-f211.google.com [209.85.220.211]) by mx1.freebsd.org (Postfix) with ESMTP id 11D278FC32; Thu, 4 Jun 2009 15:46:58 +0000 (UTC) (envelope-from marius@nuenneri.ch) Received: by fxm7 with SMTP id 7so455380fxm.43 for ; Thu, 04 Jun 2009 08:46:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.247.14 with SMTP id z14mr1472259mur.70.1244128777953; Thu, 04 Jun 2009 08:19:37 -0700 (PDT) In-Reply-To: <20090604093831.GE48776@hoeg.nl> References: <20090604093831.GE48776@hoeg.nl> Date: Thu, 4 Jun 2009 17:19:37 +0200 Message-ID: From: =?ISO-8859-1?Q?Marius_N=FCnnerich?= To: current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: hackers@freebsd.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 15:47:00 -0000 Thanks to the team for this! On Thu, Jun 4, 2009 at 11:38, Ed Schouten wrote: > Good news everyone! > > As I mentioned at BSDCan, I was going to import my FreeBSD+Clang branch > into SVN. Tuesday I finally had some time to do it, so here's the > result: > > =A0 =A0 =A0 =A0http://svn.freebsd.org/viewvc/base/projects/clangbsd/ > > You can now build your very own version of FreeBSD with Clang installed > as /usr/bin/cc as follows: > > - Check out the clangbsd branch from our SVN repository: > =A0svn co svn://svn.freebsd.org/base/projects/clangbsd If one has a (recent) head checkout one can also use the faster and lighter svn switch svn://svn.freebsd.org/base/projects/clangbsd in the head working directory (less traffic for the server too). From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 12:36:00 2009 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB5CA1065675; Thu, 4 Jun 2009 12:35:59 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from mx2.itu.dk (mx2.itu.dk [130.226.142.29]) by mx1.freebsd.org (Postfix) with ESMTP id 74AD88FC24; Thu, 4 Jun 2009 12:35:59 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from [192.168.10.164] (0x573b9942.cpe.ge-1-2-0-1101.ronqu1.customer.tele.dk [87.59.153.66]) by mx2.itu.dk (Postfix) with ESMTP id 657F3F48072; Thu, 4 Jun 2009 14:35:57 +0200 (CEST) Message-Id: <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> From: Erik Cederstrand To: Ed Schouten In-Reply-To: <20090604093831.GE48776@hoeg.nl> Content-Type: multipart/signed; boundary=Apple-Mail-338--476216020; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) Date: Thu, 4 Jun 2009 14:35:56 +0200 References: <20090604093831.GE48776@hoeg.nl> X-Mailer: Apple Mail (2.935.3) X-Mailman-Approved-At: Thu, 04 Jun 2009 16:08:14 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: hackers@FreeBSD.org, current@FreeBSD.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 12:36:00 -0000 --Apple-Mail-338--476216020 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Den 04/06/2009 kl. 11.38 skrev Ed Schouten: > You can now build your very own version of FreeBSD with Clang > installed > as /usr/bin/cc as follows: Thanks for your hard work, Ed. This is great news! You might want to mention that a few parts are still GCC-compiled due to bugs in Clang ( see http://wiki.freebsd.org/ BuildingFreeBSDWithClang). Also, it's very encouraging that the ports run you did with Erwin (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005274.html ) compiles over 7000 ports with Clang. I've asked in the Clang list, but I'd like an opinion from FreeBSD folks, too: Clang supports LTO (http://llvm.org/docs/LinkTimeOptimization.html ), which has a potential for performance improvements. It doesn't work on FreeBSD because the linker we have (in binutils) doesn't know about the libLTO that LLVM provides. There's a new linker from GNU called Gold, but as far as I know it's GPLv3 licensed and therefore undesirable at least to have in base. LLVM provides a linker (http://llvm.org/cmds/llvm-ld.html ) but "it doesn't interact correctly with conventional nm/ar/etc" (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005296.html ). There's the ELF toolchain project (elftoolchain.sourceforge.net/) but a BSD-licensed ld hasn't been developed yet. What would be the best way to get LTO to work on FreeBSD? Thanks, Erik --Apple-Mail-338--476216020-- From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 16:32:58 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C055210656C9 for ; Thu, 4 Jun 2009 16:32:58 +0000 (UTC) (envelope-from glen.j.barber@gmail.com) Received: from mail-fx0-f211.google.com (mail-fx0-f211.google.com [209.85.220.211]) by mx1.freebsd.org (Postfix) with ESMTP id 50DF48FC14 for ; Thu, 4 Jun 2009 16:32:57 +0000 (UTC) (envelope-from glen.j.barber@gmail.com) Received: by fxm7 with SMTP id 7so491378fxm.43 for ; Thu, 04 Jun 2009 09:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Zxm2YDxUvICu2vKMiCTLvFZbHvW3vh3wNaYh3rsN+NM=; b=Ish7Iqn6rtPloq4n+olXJOs3Tba0lqB8ygm+D6QjP+ce0giuqcGHZxxPOLVCRxl8tb K5OFyozl83zsuGf8EXfTkcJi5ENAcWkX4x1UcsP1+txMgSYI/a2yV7jEwlfRrADK5Tma Uqa979H4MXT0mJAVp33xNPzITGDS2UR+NCAts= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=iQmQAzTRfmnkdBP40gCGeCKAZA1ppCzzWU/eDvrrJBRCG2XEgCWOmATTsm9tp3XOLn eA4yjJEwa9Qid31Zm6ycCC7sshc4CFQlxdCAD9E8qR0z7kaENGOfTULuFX8zM5ocgq6S j/iDeje1mVsW6F/WG+NhfAiJLiUddEUJg9B1U= MIME-Version: 1.0 Received: by 10.204.63.209 with SMTP id c17mr2185841bki.47.1244133176584; Thu, 04 Jun 2009 09:32:56 -0700 (PDT) In-Reply-To: <4A27D38B.6040108@erdgeist.org> References: <4A27D38B.6040108@erdgeist.org> Date: Thu, 4 Jun 2009 12:32:56 -0400 Message-ID: <4ad871310906040932n1e78c30do773c8bc92bf547fb@mail.gmail.com> From: Glen Barber To: Dirk Engling Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 16:32:59 -0000 Hi, Dirk On Thu, Jun 4, 2009 at 10:00 AM, Dirk Engling wrote: > Dear fellow hackers, > > since jail can be bound on multiple IP addresses I tend to clone > multiple loopback interfaces and add one loopback address to each jail > > cloned_interfaces="lo1 lo2 lo3" > ifconfig_lo1_alias0="inet 127.0.0.2 netmask 0xffffffff" > ifconfig_lo2_alias0="inet 127.0.0.3 netmask 0xffffffff" > ifconfig_lo3_alias0="inet 127.0.0.4 netmask 0xffffffff" > .. > > no this is not yet optimal, since I can not run several jails on a > single external IP anymore, but at least local daemons are not visible > to the outside world, anymore. > This doesn't answer your _real_ question, but here's a suggestion. There are a few other ways you could do this with the addressing -- maybe it'll be less confusing for you. The APIPA address pool (168.254.x.x/16) is also non-routable. You could change your aliased interfaces to use this range, which may clear things up for you, and the jails will still retain their loopback address. -- Glen Barber http://www.dev-urandom.com http://www.linkedin.com/in/glenjbarber From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 16:44:05 2009 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29C451065676 for ; Thu, 4 Jun 2009 16:44:05 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: from kientzle.com (kientzle.com [66.166.149.50]) by mx1.freebsd.org (Postfix) with ESMTP id C68058FC19 for ; Thu, 4 Jun 2009 16:44:04 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: (from root@localhost) by kientzle.com (8.14.3/8.14.3) id n54G6UHx044763; Thu, 4 Jun 2009 09:06:30 -0700 (PDT) (envelope-from kientzle@freebsd.org) Received: from dark.x.kientzle.com (fw2.kientzle.com [10.123.1.2]) by kientzle.com with SMTP id 9m2am8yks75j4wvpewrwbp5g5s; Thu, 04 Jun 2009 09:06:29 -0700 (PDT) (envelope-from kientzle@freebsd.org) Message-ID: <4A27F105.4040109@freebsd.org> Date: Thu, 04 Jun 2009 09:06:29 -0700 From: Tim Kientzle User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.21) Gecko/20090601 SeaMonkey/1.1.16 MIME-Version: 1.0 To: Erik Cederstrand References: <20090604093831.GE48776@hoeg.nl> <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> In-Reply-To: <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , hackers@freebsd.org, current@freebsd.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 16:44:05 -0000 Erik Cederstrand wrote: > > LLVM provides a linker (http://llvm.org/cmds/llvm-ld.html) but "it > doesn't interact correctly with conventional nm/ar/etc" > (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005296.html). In what way does it not interact correctly? Kai Wang wrote a new libarchive-based ar/nm that's in -CURRENT; we could possibly augment those to work with llvm-ld or modify llvm-ld to work with them, depending on the nature of the disagreement. Tim From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 21:01:19 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81042106566B for ; Thu, 4 Jun 2009 21:01:19 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3]) by mx1.freebsd.org (Postfix) with ESMTP id 3B3518FC12 for ; Thu, 4 Jun 2009 21:01:19 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id E6DB941C6FC; Thu, 4 Jun 2009 22:45:05 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([195.88.108.3]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id VvGXO5iKFRnZ; Thu, 4 Jun 2009 22:45:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id 7FE6F41C6F2; Thu, 4 Jun 2009 22:45:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 8EC464448E6; Thu, 4 Jun 2009 20:44:39 +0000 (UTC) Date: Thu, 4 Jun 2009 20:44:39 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Dirk Engling In-Reply-To: <4A27D38B.6040108@erdgeist.org> Message-ID: <20090604203905.B12292@maildrop.int.zabbadoz.net> References: <4A27D38B.6040108@erdgeist.org> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 21:01:19 -0000 On Thu, 4 Jun 2009, Dirk Engling wrote: Hi, > However, grep -R 127.0.0.1 /etc reveals, that sendmail in many places > assumes localhost to be on 127.0.0.1 instead of looking it up in > /etc/hosts or using 127.0.0.0/8 to identify a local connection. or possibly other methods that would find even more things to be "local". > I worry that more programmers made those assumptions, possibly breaking > more tools. yes, bind tools are another of those things that have problems with various address magics. > My question is: Who's the right guy to beg to fix sendmail or > alternatively would it be smart to allow each jail to have its own If programmers assume 127.0.0.1 is hte one and only loopback it's because of two things - 1) this has been done in the very old days where people updated the hosts file with uucp to know all hosts in the nwetwork and was never updated. or 2) they are clueless or lazy. > concept of 127.0.0.1 on a dummy interface mapped to all jails, that As others mentioned connection from/to 127.0.0.1 will be mapped to the primary address of the jail; if you listen on 127.0.0.1 and the primary address is a public address you will be visible to the world (given your base system routes and permits that address to be reached). But that's been like that since probably 4.0. With the virtual network stack you will be bale to have your own loopback with each jail do not even think about doing something like this; it would never ever hit the tree anymore and it has been done by others already (for you - and others;). /bz -- Bjoern A. Zeeb The greatest risk is not taking one. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 21:21:29 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D6EE1065686 for ; Thu, 4 Jun 2009 21:21:29 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from zim.gshapiro.net (zim.gshapiro.net [IPv6:2001:4f8:3:36::224]) by mx1.freebsd.org (Postfix) with ESMTP id 56FAE8FC12 for ; Thu, 4 Jun 2009 21:21:29 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from rugsucker.smi.sendmail.com (natted.sendmail.com [63.211.143.38]) (authenticated bits=128) by zim.gshapiro.net (8.14.3/8.14.3) with ESMTP id n54LLOHn012522 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 4 Jun 2009 14:21:25 -0700 (PDT) (envelope-from gshapiro@freebsd.org) Date: Thu, 4 Jun 2009 14:21:23 -0700 From: Gregory Shapiro To: "Bjoern A. Zeeb" Message-ID: <20090604212123.GK59532@rugsucker.smi.sendmail.com> References: <4A27D38B.6040108@erdgeist.org> <20090604203905.B12292@maildrop.int.zabbadoz.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090604203905.B12292@maildrop.int.zabbadoz.net> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: freebsd-hackers@freebsd.org, Dirk Engling Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 21:21:29 -0000 > If programmers assume 127.0.0.1 is hte one and only loopback it's > because of two things - 1) this has been done in the very old days > where people updated the hosts file with uucp to know all hosts in the > nwetwork and was never updated. or 2) they are clueless or lazy. To avoid being labeled clueless or lazy, I'll offer a third option. The software authors have to support a lot of systems with broken setups that can't actually resolve 'localhost'. We (the sendmail authors) originally had localhost in there but we got so many complaints that we switched it to 127.0.0.1: 8.12.7/8.12.7 2002/12/29 ... CONFIG: Use FEATURE(`msp', `[127.0.0.1]') in submit.mc by default to avoid problems with hostname resolution for localhost which on many systems does not resolve to 127.0.0.1 (or ::1 for IPv6). If you do not use IPv4 but only IPv6 then you need to change submit.mc accordingly, see the comment in the file itself. Note that it is only in the configuration file (via cf/feature/msp.m4 and cf/m4/proto.m4). The source code doesn't contain any references to 127.0.0.1. In the case of sendmail, you can change both the client (adjust parameter to FEATURE(msp) in your submit mc file) or server (use FEATURE(no_default_msp) and your own DAEMON_OPTIONS() definition in your MTA mc file) to not assume 127.0.0.1, it is just the default. In my opinion, assuming 127.0.0.1 will work is much safer than assuming localhost will resolve. Hopefully that will change at some point, but for now, sendmail will stick with the safer assumption. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 22:25:07 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B25281065677 for ; Thu, 4 Jun 2009 22:25:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3]) by mx1.freebsd.org (Postfix) with ESMTP id 66C488FC0C for ; Thu, 4 Jun 2009 22:25:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 1AA2741C70A; Fri, 5 Jun 2009 00:25:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([195.88.108.3]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id 0KQlMwM8s7zv; Fri, 5 Jun 2009 00:25:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id AF6F941C6DB; Fri, 5 Jun 2009 00:25:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 0468F4448E6; Thu, 4 Jun 2009 22:24:37 +0000 (UTC) Date: Thu, 4 Jun 2009 22:24:37 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Gregory Shapiro In-Reply-To: <20090604212123.GK59532@rugsucker.smi.sendmail.com> Message-ID: <20090604220734.H12292@maildrop.int.zabbadoz.net> References: <4A27D38B.6040108@erdgeist.org> <20090604203905.B12292@maildrop.int.zabbadoz.net> <20090604212123.GK59532@rugsucker.smi.sendmail.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 22:25:08 -0000 On Thu, 4 Jun 2009, Gregory Shapiro wrote: >> If programmers assume 127.0.0.1 is hte one and only loopback it's >> because of two things - 1) this has been done in the very old days >> where people updated the hosts file with uucp to know all hosts in the >> nwetwork and was never updated. or 2) they are clueless or lazy. > > To avoid being labeled clueless or lazy, I'll offer a third option. For sendmail I had much rather thought about option 1) and absolutely not about option 2) as if you have ever known what S5 was and could no longer read your $ sign and 4 on the keyb you know that sendmail people are not lazy or clueless! Back to the OI problem: > 8.12.7/8.12.7 2002/12/29 yes, that's not from stone age:( It's quite said, that systems not being able to poperly resolve hostnames are doing emails these days. Anyway, yeah, it's good that it's only config files; nethertheless I don't like it as you probably do not either. Have you ever thought about having those files changed just for FreeBSD? Or had there been porblems on FreeBSD systems with localhost as well? Has it been a special time with localhost and IPv6 that casued problems as 2002 has been rather late in terms of sendmail and resolver etc. What had started to cause those problems? /bz -- Bjoern A. Zeeb The greatest risk is not taking one. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 22:34:51 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5DF2106566B for ; Thu, 4 Jun 2009 22:34:51 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from zim.gshapiro.net (zim.gshapiro.net [IPv6:2001:4f8:3:36::224]) by mx1.freebsd.org (Postfix) with ESMTP id 9F01F8FC14 for ; Thu, 4 Jun 2009 22:34:51 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from rugsucker.smi.sendmail.com (natted.sendmail.com [63.211.143.38]) (authenticated bits=128) by zim.gshapiro.net (8.14.3/8.14.3) with ESMTP id n54MYm3d014334 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 4 Jun 2009 15:34:50 -0700 (PDT) (envelope-from gshapiro@freebsd.org) Date: Thu, 4 Jun 2009 15:34:48 -0700 From: Gregory Shapiro To: "Bjoern A. Zeeb" Message-ID: <20090604223448.GD465@rugsucker.smi.sendmail.com> References: <4A27D38B.6040108@erdgeist.org> <20090604203905.B12292@maildrop.int.zabbadoz.net> <20090604212123.GK59532@rugsucker.smi.sendmail.com> <20090604220734.H12292@maildrop.int.zabbadoz.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090604220734.H12292@maildrop.int.zabbadoz.net> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 22:34:52 -0000 >> 8.12.7/8.12.7 2002/12/29 > yes, that's not from stone age:( Well, the way things move, it almost is. :) > Have you ever thought about having those files changed just for > FreeBSD? Or had there been porblems on FreeBSD systems with localhost > as well? Now that you mention it, we are already using separate FreeBSD files in src/etc/sendmail/freebsd{,.submit}.mc so I can do something different for FreeBSD. I think we are still in code slush and not freeze for 8.0. I'll double check and if so, make the change tonight (with a note in UPDATING). As I recall, nobody reported a problem resolving localhost under FreeBSD. > Has it been a special time with localhost and IPv6 that caused > problems as 2002 has been rather late in terms of sendmail and > resolver etc. What had started to cause those problems? Sadly, that didn't stick in my memory. The MTA handles IPv4 fallback on a failed IPv6 connection if an IPv4 address is available so I don't think IPv6 enters into it. If I recall correctly, it was simply a matter of localhost returning h_errno == HOST_NOT_FOUND or the resolver returning NXDOMAIN. I'll check with Claus to see if he remembers. Another scenario that I still see today (as owner of localhost.org) is sites that have a bogus 'domain' or 'search' such that the lookup for 'localhost' returns information about 'localhost.com' or 'localhost.org'. I've tried to improve that situation by mapping localhost.org's A record to 127.0.0.1. Unfortunately, the owners of localhost.com and localhost.net (as well as possibly everything other TLD) have not done the same. From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 4 22:56:31 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 668B2106566B for ; Thu, 4 Jun 2009 22:56:31 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from zim.gshapiro.net (zim.gshapiro.net [IPv6:2001:4f8:3:36::224]) by mx1.freebsd.org (Postfix) with ESMTP id 4F3B28FC12 for ; Thu, 4 Jun 2009 22:56:31 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from rugsucker.smi.sendmail.com (natted.sendmail.com [63.211.143.38]) (authenticated bits=128) by zim.gshapiro.net (8.14.3/8.14.3) with ESMTP id n54MuSSQ014948 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 4 Jun 2009 15:56:30 -0700 (PDT) (envelope-from gshapiro@freebsd.org) Date: Thu, 4 Jun 2009 15:56:28 -0700 From: Gregory Shapiro To: "Bjoern A. Zeeb" Message-ID: <20090604225628.GE465@rugsucker.smi.sendmail.com> References: <4A27D38B.6040108@erdgeist.org> <20090604203905.B12292@maildrop.int.zabbadoz.net> <20090604212123.GK59532@rugsucker.smi.sendmail.com> <20090604220734.H12292@maildrop.int.zabbadoz.net> <20090604223448.GD465@rugsucker.smi.sendmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090604223448.GD465@rugsucker.smi.sendmail.com> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2009 22:56:31 -0000 > I'll check with Claus to see if he remembers. Claus still had the mail archive from back then. It was my scenario. Specifically, Linux systems with certain versions of glibc would append the domain/search in /etc/resolv.conf causing localhost lookups to possibly return offsite systems. This would of course cause problems with mail delivery. From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 5 04:26:20 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9088C106566B for ; Fri, 5 Jun 2009 04:26:20 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from zim.gshapiro.net (zim.gshapiro.net [IPv6:2001:4f8:3:36::224]) by mx1.freebsd.org (Postfix) with ESMTP id 5E5EF8FC15 for ; Fri, 5 Jun 2009 04:26:20 +0000 (UTC) (envelope-from gshapiro@freebsd.org) Received: from monkeyboy.local (monkeyboy.gshapiro.net [IPv6:2001:470:1f01:642:219:e3ff:fe06:6be9]) (authenticated bits=128) by zim.gshapiro.net (8.14.3/8.14.3) with ESMTP id n554QHAG020997 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 4 Jun 2009 21:26:19 -0700 (PDT) (envelope-from gshapiro@freebsd.org) Date: Thu, 4 Jun 2009 21:26:17 -0700 From: Gregory Shapiro To: "Bjoern A. Zeeb" Message-ID: <20090605042617.GC639@monkeyboy.local> References: <4A27D38B.6040108@erdgeist.org> <20090604203905.B12292@maildrop.int.zabbadoz.net> <20090604212123.GK59532@rugsucker.smi.sendmail.com> <20090604220734.H12292@maildrop.int.zabbadoz.net> <20090604223448.GD465@rugsucker.smi.sendmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090604223448.GD465@rugsucker.smi.sendmail.com> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: freebsd-hackers@freebsd.org Subject: Re: Jails, loopback interfaces and sendmail X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 04:26:21 -0000 > Now that you mention it, we are already using separate FreeBSD files in > src/etc/sendmail/freebsd{,.submit}.mc so I can do something different > for FreeBSD. I think we are still in code slush and not freeze for 8.0. > I'll double check and if so, make the change tonight (with a note in > UPDATING). As I recall, nobody reported a problem resolving localhost > under FreeBSD. I'm going to hold off making this change. It looks like sendmail will also add the domain in searching since the name isn't qualified: /* ** Build the search list. ** If there is at least one dot in name, start with a null ** domain to search the unmodified name first. ** If name does not end with a dot and search up local domain ** tree desired, append each local domain component to the ** search list; if name contains no dots and default domain ** name is desired, append default domain name to search list; ** else if name ends in a dot, remove that dot. */ This leads to lookups that can cause problems: dns_getcanonname(localhost, trymx=0) dns_getcanonname: trying localhost.gshapiro.net (AAAA) NO: errno=0, h_errno=4 dns_getcanonname: trying localhost.gshapiro.net (A) YES dns_getcanonname: localhost.gshapiro.net getmxrr([localhost]) returns 1 value(s): localhost.gshapiro.net. We will have to look deeper, perhaps changing the code not to add the default domain/search list in the case of "localhost". For now, users who want to use localhost instead of 127.0.0.1 can make the following change to their /etc/mail/`hostname`.submit.mc: @@ -22,6 +22,5 @@ define(`confTIME_ZONE', `USE_TZ')dnl define(`confDONT_INIT_GROUPS', `True')dnl define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl -dnl -dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1] -FEATURE(`msp', `[127.0.0.1]')dnl +DAEMON_OPTIONS(`Name=NoMTA, Addr=localhost, M=E')dnl +FEATURE(`msp', `[localhost]')dnl From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 5 07:45:46 2009 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB43D106566C; Fri, 5 Jun 2009 07:45:46 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from mx2.itu.dk (mx2.itu.dk [130.226.142.29]) by mx1.freebsd.org (Postfix) with ESMTP id 44D8A8FC16; Fri, 5 Jun 2009 07:45:46 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from [192.168.10.164] (0x573b9942.cpe.ge-1-2-0-1101.ronqu1.customer.tele.dk [87.59.153.66]) by mx2.itu.dk (Postfix) with ESMTP id 447C8F48073; Fri, 5 Jun 2009 09:45:45 +0200 (CEST) Message-Id: From: Erik Cederstrand To: Roman Divacky In-Reply-To: <20090604123801.GA34971@freebsd.org> Content-Type: multipart/signed; boundary=Apple-Mail-443--407227785; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) Date: Fri, 5 Jun 2009 09:45:44 +0200 References: <20090604093831.GE48776@hoeg.nl> <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> <20090604123801.GA34971@freebsd.org> X-Mailer: Apple Mail (2.935.3) X-Mailman-Approved-At: Fri, 05 Jun 2009 11:25:55 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Ed Schouten , hackers@FreeBSD.org, current@FreeBSD.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 07:45:47 -0000 --Apple-Mail-443--407227785 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Hi Roman Den 04/06/2009 kl. 14.38 skrev Roman Divacky: > > you could use llvm-ld (see the wiki for instructions how to do it). > there's also some > effort to make gnu ld usable with llvm LTO and I guess the patch > could be backported > to our ld. I guess As I understand the reply from Eli Friedman[1] this is not possible without at least some hacking. The LTO work in GNU ld[2] is under GPLv3[3], as is gold[4], which makes backporting patches a sticky issue. Erik [1] http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005296.html [2] http://gcc.gnu.org/wiki/LinkTimeOptimization [3] http://gcc.gnu.org/svn/gcc/branches/lto/lto-plugin/lto-plugin.c [4] http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/gold.cc?rev=1.63&content-type=text/x-cvsweb-markup&cvsroot=src --Apple-Mail-443--407227785-- From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 5 13:55:08 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FFC31065678 for ; Fri, 5 Jun 2009 13:55:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 1A0A68FC17 for ; Fri, 5 Jun 2009 13:55:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id C0FCA46B09; Fri, 5 Jun 2009 09:55:07 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id A2DB98A049; Fri, 5 Jun 2009 09:55:06 -0400 (EDT) From: John Baldwin To: freebsd-hackers@freebsd.org Date: Fri, 5 Jun 2009 09:38:25 -0400 User-Agent: KMail/1.9.7 References: <4A2792B7.5010006@peterhost.ru> <200906040749.17206.jhb@freebsd.org> <4A27C5E8.7020902@peterhost.ru> In-Reply-To: <4A27C5E8.7020902@peterhost.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200906050938.25706.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Fri, 05 Jun 2009 09:55:06 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Menshikov Konstantin Subject: Re: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 13:55:09 -0000 On Thursday 04 June 2009 9:02:32 am Menshikov Konstantin wrote: > John Baldwin wrote: > > On Thursday 04 June 2009 5:24:07 am Menshikov Konstantin wrote: > > =20 > >> Hi. > >> My system FreeBSD 7.1 RELEASE periodically freeze. > >> > >> I`m compiling kernel with WITNESS and get backtrace. > >> > >> #0 doadump () at pcpu.h:195 > >> #1 0xffffffff801a899c in db_fncall (dummy1=3DVariable "dummy1" is not= =20 > >> available. > >> ) at /usr/src/sys/ddb/db_command.c:516 > >> #2 0xffffffff801a8ecf in db_command (last_cmdp=3D0xffffffff80825688,=20 > >> cmd_table=3D0x0, dopager=3D1) > >> at /usr/src/sys/ddb/db_command.c:413 > >> #3 0xffffffff801a90e0 in db_command_loop () at=20 > >> /usr/src/sys/ddb/db_command.c:466 > >> #4 0xffffffff801aaa19 in db_trap (type=3DVariable "type" is not availa= ble. > >> ) at /usr/src/sys/ddb/db_main.c:228 > >> #5 0xffffffff803d5e55 in kdb_trap (type=3D3, code=3D0,=20 > >> tf=3D0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 > >> #6 0xffffffff8059a0e5 in trap (frame=3D0xffffffffabf284c0) at=20 > >> /usr/src/sys/amd64/amd64/trap.c:538 > >> #7 0xffffffff8057f60e in calltrap () at=20 > >> /usr/src/sys/amd64/amd64/exception.S:209 > >> #8 0xffffffff803d602d in kdb_enter_why (why=3D0xffffffff80628137=20 > >> "witness", msg=3D0xa
) > >> at cpufunc.h:63 > >> #9 0xffffffff803e70c3 in witness_checkorder (lock=3DVariable "lock" is= not=20 > >> available. > >> ) at /usr/src/sys/kern/subr_witness.c:1126 > >> #10 0xffffffff8039e341 in _mtx_lock_spin_flags (m=3D0xffffffff8084fad0= ,=20 > >> opts=3D0, file=3Ddwarf2_read_address: Corrupted DWARF expression. > >> ) at /usr/src/sys/kern/kern_mutex.c:227 > >> #11 0xffffffff80319838 in sc_puts (scp=3D0xffffffff8084f980,=20 > >> buf=3D0xffffffffabf286a7 "a@\az\200=D0=AA=D0=AA=D0=AA=D0=AA", len=3D1) > >> at /usr/src/sys/dev/syscons/syscons.c:2519 > >> #12 0xffffffff8031b3da in sc_cnputc (cd=3DVariable "cd" is not availab= le. > >> ) at /usr/src/sys/dev/syscons/syscons.c:1561 > >> #13 0xffffffff803f9d89 in cnputc (c=3D97)=20 at /usr/src/sys/kern/tty_cons.c:632 > >> #14 0xffffffff803d993b in putchar (c=3D97, arg=3DVariable "arg" is not= =20 > >> available. > >> ) at /usr/src/sys/kern/subr_prf.c:421 > >> #15 0xffffffff803d7f22 in kvprintf (fmt=3D0xffffffff80628b89 "cquiring= =20 > >> duplicate lock of same type: \"%s\"\n", > >> func=3D0xffffffff803d98d0 , arg=3D0xffffffffabf28890, radix= =3D10,=20 > >> ap=3DVariable "ap" is not available. > >> ) at /usr/src/sys/kern/subr_prf.c:674 > >> #16 0xffffffff803d9384 in printf (fmt=3DVariable "fmt" is not availabl= e. > >> ) at /usr/src/sys/kern/subr_prf.c:314 > >> #17 0xffffffff803e705d in witness_checkorder (lock=3D0xffffffff808668f= 8,=20 > >> flags=3D0, > >> file=3D0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", line= =3D232)=20 > >> at /usr/src/sys/kern/subr_witness.c:948 > >> #18 0xffffffff8039e341 in _mtx_lock_spin_flags (m=3D0xffffffff808668f8= ,=20 > >> opts=3D0, file=3Ddwarf2_read_address: Corrupted DWARF expression. > >> ) at /usr/src/sys/kern/kern_mutex.c:227 > >> #19 0xffffffff803b2271 in wakeup (ident=3D0xffffffff80850ac0) at=20 > >> /usr/src/sys/kern/kern_synch.c:341 > >> #20 0xffffffff803aed95 in tdsignal (p=3D0xffffff00017978f0,=20 > >> td=3D0xffffff000146a6e0, sig=3D14, ksi=3DVariable "ksi" is not availab= le. > >> ) > >> at /usr/src/sys/kern/kern_sig.c:2292 > >> #21 0xffffffff803ba2de in realitexpire (arg=3DVariable "arg" is not=20 available. > >> ) at /usr/src/sys/kern/kern_time.c:669 > >> #22 0xffffffff803bbe1a in softclock (dummy=3DVariable "dummy" is not=20 > >> available. > >> ) at /usr/src/sys/kern/kern_timeout.c:274 > >> #23 0xffffffff8038c120 in ithread_loop (arg=3D0xffffff00010ebc00) at=20 > >> /usr/src/sys/kern/kern_intr.c:1088 > >> #24 0xffffffff8038978a in fork_exit (callout=3D0xffffffff8038c040=20 > >> , arg=3D0xffffff00010ebc00, > >> frame=3D0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 > >> #25 0xffffffff8057f9de in fork_trampoline () at=20 > >> /usr/src/sys/amd64/amd64/exception.S:455 > >> > >> But file /usr/src/sys/kern/kern_sig.c:2292 > >> hasn`t run function wake up on string 2292 > >> I`m think, what compiler use inline function, therefore code and trace= =20 > >> differ. > >> Tell me please, how compile kernel without any inline function. > >> =20 > > > > makeoptions DEBUG=3D"-g -fno-inline" > > > > However. I think you already have enough information to debug this. Ca= n=20 you=20 > > go to frame 17 and do an 'l'? I think the two things you want to print= =20 out=20 > > are "i", "*lock", "*lock1", and "*lock2". > > > > =20 > Unfortunately, the kernel is not compiled with an option-fno-inline. > cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=3Dc99 -g=20 > -fno-inline -Wall -Wredundant-decls -Wnested-externs=20 > -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline=20 > -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc =20 > -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL=20 > -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common=20 > -finline-limit=3D8000 --param inline-unit-growth=3D100 --param=20 > large-function-growth=3D1000 -fno-omit-frame-pointer -mcmodel=3Dkernel=20 > -mno-red-zone -mfpmath=3D387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow =20 > -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -Werror =20 > /usr/src/sys/cam/cam_periph.c > cc1: warnings being treated as errors > /usr/src/sys/cam/cam_periph.c: In function 'scsi_extract_sense': > /usr/src/sys/cam/scsi/scsi_all.h:1215: warning: function=20 > 'scsi_extract_sense' can never be inlined because it is suppressed using= =20 > -fno-inline >=20 > I`m try build with -O0 options. >=20 > lock in frame 17 > (kgdb) print {struct mtx} 0xffffffff808668f8 > $4 =3D {lock_object =3D {lo_name =3D 0xffffffff806270eb "sleepq chain",=20 > lo_type =3D 0xffffffff806270eb "sleepq chain", > lo_flags =3D 720896, lo_witness_data =3D {lod_list =3D {stqe_next =3D= =20 > 0xffffffff808793e0}, lod_witness =3D 0xffffffff808793e0}}, > mtx_lock =3D 4, mtx_recurse =3D 0} > next in list > (kgdb) print {struct mtx} 0xffffffff808793e0 > $5 =3D {lock_object =3D {lo_name =3D 0xffffffff806270eb "sleepq chain",=20 > lo_type =3D 0xffffffff807e8860 "\031\006b\200=D0=AA=D0=AA=D0=AA=D0=AA\n", > lo_flags =3D 2156368928, lo_witness_data =3D {lod_list =3D {stqe_next= =3D=20 > 0xffffffff80879420}, > lod_witness =3D 0xffffffff80879420}}, mtx_lock =3D=20 > 18446744071571216096, mtx_recurse =3D 2153913763} > (kgdb) print {struct mtx} 0xffffffff80879420 > next > $6 =3D {lock_object =3D {lo_name =3D 0xffffffff806205df "process slock",= =20 > lo_type =3D 0xffffffff807e8860 "\031\006b\200=D0=AA=D0=AA=D0=AA=D0=AA\n", > lo_flags =3D 2156368992, lo_witness_data =3D {lod_list =3D {stqe_next= =3D=20 > 0xffffffff80879460}, > lod_witness =3D 0xffffffff80879460}}, mtx_lock =3D=20 > 18446744071571216160, mtx_recurse =3D 2153889520} Where did you get the pointer values from? I meant doing 'frame 17', 'p=20 i', 'p *lock', 'p *lock1', 'p *lock2' =2D-=20 John Baldwin From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 5 14:58:15 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35613106564A for ; Fri, 5 Jun 2009 14:58:15 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from mail.z8.ru (mail.z8.ru [80.93.58.56]) by mx1.freebsd.org (Postfix) with ESMTP id A26B78FC0C for ; Fri, 5 Jun 2009 14:58:14 +0000 (UTC) (envelope-from kostjn@peterhost.ru) Received: from [85.235.196.139] (helo=kostjn.pht) by mail.z8.ru with esmtpa (Exim 4.67 (FreeBSD)) (envelope-from ) id 1MCarv-000IsG-No for freebsd-hackers@freebsd.org; Fri, 05 Jun 2009 18:58:07 +0400 Message-ID: <4A293302.5040306@peterhost.ru> Date: Fri, 05 Jun 2009 19:00:18 +0400 From: Menshikov Konstantin User-Agent: Thunderbird 2.0.0.18 (X11/20090328) MIME-Version: 1.0 CC: freebsd-hackers@freebsd.org References: <4A2792B7.5010006@peterhost.ru> <200906040749.17206.jhb@freebsd.org> <4A27C5E8.7020902@peterhost.ru> <200906050938.25706.jhb@freebsd.org> In-Reply-To: <200906050938.25706.jhb@freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Inline function (difficult debug) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 14:58:15 -0000 John Baldwin wrote: > On Thursday 04 June 2009 9:02:32 am Menshikov Konstantin wrote: > >> John Baldwin wrote: >> >>> On Thursday 04 June 2009 5:24:07 am Menshikov Konstantin wrote: >>> >>> >>>> Hi. >>>> My system FreeBSD 7.1 RELEASE periodically freeze. >>>> >>>> I`m compiling kernel with WITNESS and get backtrace. >>>> >>>> #0 doadump () at pcpu.h:195 >>>> #1 0xffffffff801a899c in db_fncall (dummy1=Variable "dummy1" is not >>>> available. >>>> ) at /usr/src/sys/ddb/db_command.c:516 >>>> #2 0xffffffff801a8ecf in db_command (last_cmdp=0xffffffff80825688, >>>> cmd_table=0x0, dopager=1) >>>> at /usr/src/sys/ddb/db_command.c:413 >>>> #3 0xffffffff801a90e0 in db_command_loop () at >>>> /usr/src/sys/ddb/db_command.c:466 >>>> #4 0xffffffff801aaa19 in db_trap (type=Variable "type" is not available. >>>> ) at /usr/src/sys/ddb/db_main.c:228 >>>> #5 0xffffffff803d5e55 in kdb_trap (type=3, code=0, >>>> tf=0xffffffffabf284c0) at /usr/src/sys/kern/subr_kdb.c:524 >>>> #6 0xffffffff8059a0e5 in trap (frame=0xffffffffabf284c0) at >>>> /usr/src/sys/amd64/amd64/trap.c:538 >>>> #7 0xffffffff8057f60e in calltrap () at >>>> /usr/src/sys/amd64/amd64/exception.S:209 >>>> #8 0xffffffff803d602d in kdb_enter_why (why=0xffffffff80628137 >>>> "witness", msg=0xa
) >>>> at cpufunc.h:63 >>>> #9 0xffffffff803e70c3 in witness_checkorder (lock=Variable "lock" is not >>>> available. >>>> ) at /usr/src/sys/kern/subr_witness.c:1126 >>>> #10 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff8084fad0, >>>> opts=0, file=dwarf2_read_address: Corrupted DWARF expression. >>>> ) at /usr/src/sys/kern/kern_mutex.c:227 >>>> #11 0xffffffff80319838 in sc_puts (scp=0xffffffff8084f980, >>>> buf=0xffffffffabf286a7 "a@\az\200ЪЪЪЪ", len=1) >>>> at /usr/src/sys/dev/syscons/syscons.c:2519 >>>> #12 0xffffffff8031b3da in sc_cnputc (cd=Variable "cd" is not available. >>>> ) at /usr/src/sys/dev/syscons/syscons.c:1561 >>>> #13 0xffffffff803f9d89 in cnputc (c=97) >>>> > at /usr/src/sys/kern/tty_cons.c:632 > >>>> #14 0xffffffff803d993b in putchar (c=97, arg=Variable "arg" is not >>>> available. >>>> ) at /usr/src/sys/kern/subr_prf.c:421 >>>> #15 0xffffffff803d7f22 in kvprintf (fmt=0xffffffff80628b89 "cquiring >>>> duplicate lock of same type: \"%s\"\n", >>>> func=0xffffffff803d98d0 , arg=0xffffffffabf28890, radix=10, >>>> ap=Variable "ap" is not available. >>>> ) at /usr/src/sys/kern/subr_prf.c:674 >>>> #16 0xffffffff803d9384 in printf (fmt=Variable "fmt" is not available. >>>> ) at /usr/src/sys/kern/subr_prf.c:314 >>>> #17 0xffffffff803e705d in witness_checkorder (lock=0xffffffff808668f8, >>>> flags=0, >>>> file=0xffffffff80626cf8 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) >>>> at /usr/src/sys/kern/subr_witness.c:948 >>>> #18 0xffffffff8039e341 in _mtx_lock_spin_flags (m=0xffffffff808668f8, >>>> opts=0, file=dwarf2_read_address: Corrupted DWARF expression. >>>> ) at /usr/src/sys/kern/kern_mutex.c:227 >>>> #19 0xffffffff803b2271 in wakeup (ident=0xffffffff80850ac0) at >>>> /usr/src/sys/kern/kern_synch.c:341 >>>> #20 0xffffffff803aed95 in tdsignal (p=0xffffff00017978f0, >>>> td=0xffffff000146a6e0, sig=14, ksi=Variable "ksi" is not available. >>>> ) >>>> at /usr/src/sys/kern/kern_sig.c:2292 >>>> #21 0xffffffff803ba2de in realitexpire (arg=Variable "arg" is not >>>> > available. > >>>> ) at /usr/src/sys/kern/kern_time.c:669 >>>> #22 0xffffffff803bbe1a in softclock (dummy=Variable "dummy" is not >>>> available. >>>> ) at /usr/src/sys/kern/kern_timeout.c:274 >>>> #23 0xffffffff8038c120 in ithread_loop (arg=0xffffff00010ebc00) at >>>> /usr/src/sys/kern/kern_intr.c:1088 >>>> #24 0xffffffff8038978a in fork_exit (callout=0xffffffff8038c040 >>>> , arg=0xffffff00010ebc00, >>>> frame=0xffffffffabf28c80) at /usr/src/sys/kern/kern_fork.c:804 >>>> #25 0xffffffff8057f9de in fork_trampoline () at >>>> /usr/src/sys/amd64/amd64/exception.S:455 >>>> >>>> But file /usr/src/sys/kern/kern_sig.c:2292 >>>> hasn`t run function wake up on string 2292 >>>> I`m think, what compiler use inline function, therefore code and trace >>>> differ. >>>> Tell me please, how compile kernel without any inline function. >>>> > > > Where did you get the pointer values from? I meant doing 'frame 17', 'p > i', 'p *lock', 'p *lock1', 'p *lock2' > > Excuse I has not understood you. Disable optimization -O0, disable inline function. I`m get new backtrace #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:244 #1 0xffffffff801c58fc in db_fncall_generic (addr=-2142879744, rv=0xffffffffac0f9d88, nargs=0, args=0xffffffffac0f9d90) at /usr/src/sys/ddb/db_command.c:516 #2 0xffffffff801c5805 in db_fncall (dummy1=-2136396608, dummy2=0, dummy3=-1408262592, dummy4=0xffffffffac0f9e30 "`\224\224\200ЪЪЪЪЪЪЪЪ\r") at /usr/src/sys/ddb/db_command.c:568 #3 0xffffffff801c5546 in db_command (last_cmdp=0xffffffff809d14c0, cmd_table=0x0, dopager=1) at /usr/src/sys/ddb/db_command.c:413 #4 0xffffffff801c5644 in db_command_loop () at /usr/src/sys/ddb/db_command.c:466 #5 0xffffffff801c81e9 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:228 #6 0xffffffff8049d629 in kdb_trap (type=3, code=0, tf=0xffffffffac0fa0f0) at /usr/src/sys/kern/subr_kdb.c:524 #7 0xffffffff807180d2 in trap (frame=0xffffffffac0fa0f0) at /usr/src/sys/amd64/amd64/trap.c:538 #8 0xffffffff806f7cee in calltrap () at /usr/src/sys/amd64/amd64/exception.S:209 #9 0xffffffff8049d0c5 in breakpoint () at cpufunc.h:63 #10 0xffffffff8049d0b2 in kdb_enter_why (why=0xffffffff807c9140 "witness", msg=0xffffffff807c97f0 "witness_checkorder") at /usr/src/sys/kern/subr_kdb.c:315 #11 0xffffffff804b3db8 in witness_checkorder (lock=0xffffffff809fb8b0, flags=9, file=0xffffffff807aeb30 "/usr/src/sys/dev/syscons/syscons.c", line=2519) at /usr/src/sys/kern/subr_witness.c:1126 #12 0xffffffff80453ead in _mtx_lock_spin_flags (m=0xffffffff809fb8b0, opts=0, file=0xffffffff807aeb30 "/usr/src/sys/dev/syscons/syscons.c", line=2519) at /usr/src/sys/kern/kern_mutex.c:227 #13 0xffffffff803a0d4d in sc_puts (scp=0xffffffff809fb760, buf=0xffffffffac0fa337 "a`╥\237\200ЪЪЪЪ\200д)\001", len=1) at /usr/src/sys/dev/syscons/syscons.c:2519 #14 0xffffffff8039f063 in sc_cnputc (cd=0xffffffff80949460, c=97) at /usr/src/sys/dev/syscons/syscons.c:1561 #15 0xffffffff804cf82f in cnputc (c=97) at /usr/src/sys/kern/tty_cons.c:632 #16 0xffffffff804a0864 in putcons (c=97, ap=0xffffffffac0fa6b0) at /usr/src/sys/kern/subr_prf.c:372 #17 0xffffffff804a09a4 in putchar (c=97, arg=0xffffffffac0fa6b0) at /usr/src/sys/kern/subr_prf.c:413 #18 0xffffffff804a0ee9 in kvprintf (fmt=0xffffffff807c9911 "cquiring duplicate lock of same type: \"%s\"\n", func=0xffffffff804a0920 , arg=0xffffffffac0fa6b0, radix=10, ap=0xffffffffac0fa6e0) at /usr/src/sys/kern/subr_prf.c:599 #19 0xffffffff804a07a4 in printf (fmt=0xffffffff807c9910 "acquiring duplicate lock of same type: \"%s\"\n") at /usr/src/sys/kern/subr_prf.c:314 #20 0xffffffff804b374e in witness_checkorder (lock=0xffffffff80a13448, flags=9, file=0xffffffff807c7a38 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) at /usr/src/sys/kern/subr_witness.c:948 #21 0xffffffff80453ead in _mtx_lock_spin_flags (m=0xffffffff80a13448, opts=0, file=0xffffffff807c7a38 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) at /usr/src/sys/kern/kern_mutex.c:227 #22 0xffffffff804a8472 in sleepq_lock (wchan=0xffffffff809fc8a0) at /usr/src/sys/kern/subr_sleepqueue.c:232 #23 0xffffffff80470175 in wakeup (ident=0xffffffff809fc8a0) at /usr/src/sys/kern/kern_synch.c:341 #24 0xffffffff806cf110 in kick_proc0 () at /usr/src/sys/vm/vm_glue.c:761 #25 0xffffffff8046aa16 in tdsigwakeup (td=0xffffff000172a000, sig=14, action=0x2, intrval=4) at /usr/src/sys/kern/kern_sig.c:2422 #26 0xffffffff8046a5d1 in do_tdsignal (p=0xffffff0001727000, td=0xffffff000172a000, sig=14, ksi=0xffffff00017dfd68) at /usr/src/sys/kern/kern_sig.c:2292 #27 0xffffffff80469d48 in tdsignal (p=0xffffff0001727000, td=0x0, sig=14, ksi=0xffffff00017dfd68) at /usr/src/sys/kern/kern_sig.c:2029 #28 0xffffffff80469cd9 in psignal_event (p=0xffffff0001727000, sigev=0xffffff00017dfcd8, ksi=0xffffff00017dfd68) at /usr/src/sys/kern/kern_sig.c:2017 #29 0xffffffff8047c036 in itimer_fire (it=0xffffff00017dfca8) at /usr/src/sys/kern/kern_time.c:1419 #30 0xffffffff8047be84 in realtimer_expire (arg=0xffffff00017dfca8) at /usr/src/sys/kern/kern_time.c:1396 #31 0xffffffff8047c9a6 in softclock (dummy=0x0) at /usr/src/sys/kern/kern_timeout.c:274 #32 0xffffffff8043c057 in ithread_execute_handlers (p=0xffffff0001105000, ie=0xffffff000110c000) ---Type to continue, or q to quit--- at /usr/src/sys/kern/kern_intr.c:1088 #33 0xffffffff8043c28f in ithread_loop (arg=0xffffff00010ecbe0) at /usr/src/sys/kern/kern_intr.c:1175 #34 0xffffffff8043a3d7 in fork_exit (callout=0xffffffff8043c1d0 , arg=0xffffff00010ecbe0, frame=0xffffffffac0fac80) at /usr/src/sys/kern/kern_fork.c:804 #35 0xffffffff806f80be in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:455 Frame 20 (kgdb) f 20 #20 0xffffffff804b374e in witness_checkorder (lock=0xffffffff80a13448, flags=9, file=0xffffffff807c7a38 "/usr/src/sys/kern/subr_sleepqueue.c", line=232) at /usr/src/sys/kern/subr_witness.c:948 948 printf("acquiring duplicate lock of same type: \"%s\"\n", (kgdb) p *lock $1 = {lo_name = 0xffffffff807c7a20 "sleepq chain", lo_type = 0xffffffff807c7a20 "sleepq chain", lo_flags = 720896, lo_witness_data = {lod_list = {stqe_next = 0xffffffff80a251a0}, lod_witness = 0xffffffff80a251a0}} (kgdb) p *lock1 $2 = {li_lock = 0xffffffff80a12db8, li_file = 0xffffffff807c22f5 "/usr/src/sys/kern/kern_sig.c", li_line = 2291, li_flags = 65536} (kgdb) p *lock2 $3 = {li_lock = 0xffffffff80a10d40, li_file = 0xffffff0001105000 "xT\020\001", li_line = 0, li_flags = 0} (kgdb) p i $4 = -2139345904 Frame 11 (kgdb) f 11 #11 0xffffffff804b3db8 in witness_checkorder (lock=0xffffffff809fb8b0, flags=9, file=0xffffffff807aeb30 "/usr/src/sys/dev/syscons/syscons.c", line=2519) at /usr/src/sys/kern/subr_witness.c:1126 1126 kdb_enter_why(KDB_WHY_WITNESS, __func__); (kgdb) p *lock $6 = {lo_name = 0xffffffff807aebc5 "scrlock", lo_type = 0xffffffff807aebc5 "scrlock", lo_flags = 8585216, lo_witness_data = {lod_list = {stqe_next = 0xffffffff80a25320}, lod_witness = 0xffffffff80a25320}} (kgdb) p *lock1 $7 = {li_lock = 0xffffffff80a12db8, li_file = 0xffffffff807c22f5 "/usr/src/sys/kern/kern_sig.c", li_line = 2291, li_flags = 65536} (kgdb) p *lock2 $8 = {li_lock = 0xffffff0001727030, li_file = 0xffffffff807c22f5 "/usr/src/sys/kern/kern_sig.c", li_line = 2176, li_flags = 65536} (kgdb) p i $9 = -1 Thanks. From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 5 22:55:39 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB54E10656F8 for ; Fri, 5 Jun 2009 22:55:39 +0000 (UTC) (envelope-from james@mansionfamily.plus.com) Received: from relay.pcl-ipout01.plus.net (relay.pcl-ipout01.plus.net [212.159.7.99]) by mx1.freebsd.org (Postfix) with ESMTP id 8B5498FC1B for ; Fri, 5 Jun 2009 22:55:39 +0000 (UTC) (envelope-from james@mansionfamily.plus.com) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAAs5KUrUnw4U/2dsb2JhbADRKIQKBQ Received: from pih-relay08.plus.net ([212.159.14.20]) by relay.pcl-ipout01.plus.net with ESMTP; 05 Jun 2009 23:28:18 +0100 Received: from [80.229.150.39] (helo=pd600.barnhouse) by pih-relay08.plus.net with esmtp (Exim) id 1MChtZ-00055j-Qk for freebsd-hackers@freebsd.org; Fri, 05 Jun 2009 23:28:17 +0100 Received: from [192.168.0.132] (unknown [192.168.0.132]) by pd600.barnhouse (Postfix) with ESMTP id 4763E3A26A9 for ; Fri, 5 Jun 2009 23:30:33 +0100 (BST) Message-ID: <4A299C05.1030509@mansionfamily.plus.com> Date: Fri, 05 Jun 2009 23:28:21 +0100 From: James Mansion Organization: MsgWare User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Plusnet-Relay: 4ec22964aa9be298f2afb076e9b01ad5 Subject: pxeboot and http X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 22:55:40 -0000 Is the ability for pxeboot to load from an HTTP source merged - or due to be merged? It was a gsoc from 2007 wasn't it? James From owner-freebsd-hackers@FreeBSD.ORG Sat Jun 6 19:28:01 2009 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 958951065674; Sat, 6 Jun 2009 19:28:01 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from mx2.itu.dk (mx2.itu.dk [130.226.142.29]) by mx1.freebsd.org (Postfix) with ESMTP id 259CE8FC12; Sat, 6 Jun 2009 19:28:01 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from [192.168.10.164] (0x573b9942.cpe.ge-1-2-0-1101.ronqu1.customer.tele.dk [87.59.153.66]) by mx2.itu.dk (Postfix) with ESMTP id 4247DF48072; Sat, 6 Jun 2009 21:27:59 +0200 (CEST) Message-Id: <686A733E-2F33-4C40-A516-7D3A8E5E431E@cederstrand.dk> From: Erik Cederstrand To: Tim Kientzle In-Reply-To: <4A27F105.4040109@freebsd.org> Content-Type: multipart/signed; boundary=Apple-Mail-28--278694535; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) Date: Sat, 6 Jun 2009 21:27:57 +0200 References: <20090604093831.GE48776@hoeg.nl> <31BD4D08-6558-46FF-9B93-CF8249AAC461@cederstrand.dk> <4A27F105.4040109@freebsd.org> X-Mailer: Apple Mail (2.935.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Ed Schouten , hackers@freebsd.org, current@freebsd.org Subject: Re: Clang: now available from a SVN server near you! X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jun 2009 19:28:02 -0000 --Apple-Mail-28--278694535 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Den 04/06/2009 kl. 18.06 skrev Tim Kientzle: > Erik Cederstrand wrote: >> LLVM provides a linker (http://llvm.org/cmds/llvm-ld.html) but "it >> doesn't interact correctly with conventional nm/ar/etc" (http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-June/005296.html >> ). > > In what way does it not interact correctly? There was not much more help to get from the Clang list, unfortunately. The code lives at http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ld/ and looks very well-documented and structured. Unfortunately, it is a bit over my head to see what needs to be fixed and actually fix it. Thanks, Erik --Apple-Mail-28--278694535-- From owner-freebsd-hackers@FreeBSD.ORG Sat Jun 6 19:44:51 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57F6010656A5 for ; Sat, 6 Jun 2009 19:44:51 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id 0CF538FC1C for ; Sat, 6 Jun 2009 19:44:50 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1MD1ov-00052C-LD for freebsd-hackers@freebsd.org; Sat, 06 Jun 2009 19:44:49 +0000 Received: from 93-138-102-61.adsl.net.t-com.hr ([93.138.102.61]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 06 Jun 2009 19:44:49 +0000 Received: from ivoras by 93-138-102-61.adsl.net.t-com.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 06 Jun 2009 19:44:49 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-hackers@freebsd.org From: Ivan Voras Date: Sat, 06 Jun 2009 21:44:08 +0200 Lines: 31 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig174D9B52F98F5EB02D4D595C" X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 93-138-102-61.adsl.net.t-com.hr User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: X-Enigmail-Version: 0.95.7 Sender: news Subject: Re: SoC 2009: puffs port for FreeBSD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jun 2009 19:44:51 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig174D9B52F98F5EB02D4D595C Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Tatsiana Severyna wrote: > Hi, >=20 > I'm Tatsiana Severyna from Belarus. I'll be working on porting puffs > from NetBSD as a part of this year's summer of code program. refuse > library (fuse compatibility layer on top of puffs) will also be ported > to FreeBSD as during the summer. My mentor is Konstantin Belousov. This is very interesting! I hope it will go well! --------------enig174D9B52F98F5EB02D4D595C Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkoqxw4ACgkQldnAQVacBciEJACfS9M1gXRNF4kinvNHfFOyzoCs JHUAoJkSt8AJudU4a9fHIKR4wLI1qRYh =vctm -----END PGP SIGNATURE----- --------------enig174D9B52F98F5EB02D4D595C-- From owner-freebsd-hackers@FreeBSD.ORG Sat Jun 6 19:54:53 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65C84106564A for ; Sat, 6 Jun 2009 19:54:53 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id D4F6D8FC08 for ; Sat, 6 Jun 2009 19:54:52 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1MD1yc-0005kp-05 for freebsd-hackers@freebsd.org; Sat, 06 Jun 2009 19:54:50 +0000 Received: from 93-138-102-61.adsl.net.t-com.hr ([93.138.102.61]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 06 Jun 2009 19:54:49 +0000 Received: from ivoras by 93-138-102-61.adsl.net.t-com.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 06 Jun 2009 19:54:49 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-hackers@freebsd.org From: Ivan Voras Date: Sat, 06 Jun 2009 21:54:15 +0200 Lines: 103 Message-ID: References: <20090530175239.GA25604@logik.internal.network><20090530144354.2255f722@bhuda.mired.org><20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig8A4D4BEFD98B51E042DCFB4A" X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 93-138-102-61.adsl.net.t-com.hr User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: X-Enigmail-Version: 0.95.7 Sender: news Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jun 2009 19:54:53 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig8A4D4BEFD98B51E042DCFB4A Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Sorry to come into the discussion late, but I just want to confirm something. The configuration below is a stripe of four components, each of which is RAIDZ2, right? If, as was discussed later in the thread, RAIDZ(2) is more similar to RAID3 than RAID5 for random performance, the given configuration can be (very roughly, in the non-sequential access case) expected to deliver performance of four drives in a RAID0 array? krad wrote: > zpool create -O compression=3Dlzjb -O atime=3Doff data raidz2 c3t0d0 c4= t0d0 > c8t0d0 c10t0d0 c11t0d0 c3t1d0 c4t1d0 c8t1d0 c9t1d0 c10t1d0 c11t1d0 raid= z2 > c3t2d0 c4t2d0 c8t2d0 c9t2d0 c11t2d0 c3t3d0 c4t3d0 c8t3d0 c9t3d0 c10t3d0= > c11t3d0 raidz2 c3t4d0 c4t4d0 c8t4d0 c10t4d0 c11t4d0 c3t5d0 c4t5d0 c8t5d= 0 > c9t5d0 c10t5d0 c11t5d0 raidz2 c3t6d0 c4t6d0 c8t6d0 c9t6d0 c10t6d0 c11t6= d0 > c3t7d0 c4t7d0 c9t7d0 c10t7d0 c11t7d0 spare c10t2d0 c8t7d0 > NAME STATE READ WRITE CKSUM > archive-2 ONLINE 0 0 0 > raidz2 ONLINE 0 0 0 > c3t0d0 ONLINE 0 0 0 > c4t0d0 ONLINE 0 0 0 > c8t0d0 ONLINE 0 0 0 > c10t0d0 ONLINE 0 0 0 > c11t0d0 ONLINE 0 0 0 > c3t1d0 ONLINE 0 0 0 > c4t1d0 ONLINE 0 0 0 > c8t1d0 ONLINE 0 0 0 > c9t1d0 ONLINE 0 0 0 > c10t1d0 ONLINE 0 0 0 > c11t1d0 ONLINE 0 0 0 > raidz2 ONLINE 0 0 0 > c3t2d0 ONLINE 0 0 0 > c4t2d0 ONLINE 0 0 0 > c8t2d0 ONLINE 0 0 0 > c9t2d0 ONLINE 0 0 0 > c11t2d0 ONLINE 0 0 0 > c3t3d0 ONLINE 0 0 0 > c4t3d0 ONLINE 0 0 0 > c8t3d0 ONLINE 0 0 0 > c9t3d0 ONLINE 0 0 0 > c10t3d0 ONLINE 0 0 0 > c11t3d0 ONLINE 0 0 0 > raidz2 ONLINE 0 0 0 > c3t4d0 ONLINE 0 0 0 > c4t4d0 ONLINE 0 0 0 > c8t4d0 ONLINE 0 0 0 > c10t4d0 ONLINE 0 0 0 > c11t4d0 ONLINE 0 0 0 > c3t5d0 ONLINE 0 0 0 > c4t5d0 ONLINE 0 0 0 > c8t5d0 ONLINE 0 0 0 > c9t5d0 ONLINE 0 0 0 > c10t5d0 ONLINE 0 0 0 > c11t5d0 ONLINE 0 0 0 > raidz2 ONLINE 0 0 0 > c3t6d0 ONLINE 0 0 0 > c4t6d0 ONLINE 0 0 0 > c8t6d0 ONLINE 0 0 0 > c9t6d0 ONLINE 0 0 0 > c10t6d0 ONLINE 0 0 0 > c11t6d0 ONLINE 0 0 0 > c3t7d0 ONLINE 0 0 0 > c4t7d0 ONLINE 0 0 0 > c9t7d0 ONLINE 0 0 0 > c10t7d0 ONLINE 0 0 0 > c11t7d0 ONLINE 0 0 0 > spares > c10t2d0 AVAIL =20 > c8t7d0 AVAIL =20 >=20 > errors: No known data errors --------------enig8A4D4BEFD98B51E042DCFB4A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkoqyWcACgkQldnAQVacBch45QCg6gYkbS8wV11vCTKwWkg2rG8F enUAoNGL+BLfpqo44djV1WYynCcy8PyB =5Aly -----END PGP SIGNATURE----- --------------enig8A4D4BEFD98B51E042DCFB4A-- From owner-freebsd-hackers@FreeBSD.ORG Sat Jun 6 20:16:33 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E31871065673 for ; Sat, 6 Jun 2009 20:16:33 +0000 (UTC) (envelope-from fjwcash@gmail.com) Received: from mail-gx0-f207.google.com (mail-gx0-f207.google.com [209.85.217.207]) by mx1.freebsd.org (Postfix) with ESMTP id 9D07C8FC13 for ; Sat, 6 Jun 2009 20:16:33 +0000 (UTC) (envelope-from fjwcash@gmail.com) Received: by gxk3 with SMTP id 3so2966172gxk.19 for ; Sat, 06 Jun 2009 13:16:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=a/fCRP40s8GHDFsKaEd2Z9GZuzfeLKdTdZIBmblBbTw=; b=Izc6Uc2R06IDBzz/cyXeYv8VJ9E9awbjJTNHckbpc0BE4A4TXLzxsl71Fyyomkk+MJ M1gKFjZpUfKJUhKwrAzKOaSM9gpIVDqxkV5nFm1aEeD8tR0sx0Dk03a/sQjclgo1+9F4 vyJvX5e5dGe7m7IcDMZFfYUDk8VkdxH8VPC0U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=piniRMPZmJ1TLURjUdPJE6wS4cgZj3l+IRdUYXZpmgNB7uAezJrvUtsup4fmLHwYjo nNkpZeuAxnVD4DmsB2Y0gN2EWJreD1lmFzaPvPMvDfg+JPpi0yozBqpn5p1Ys6irbl59 +O9lSa5NzJxE7xvmp8l0zaNZ5oG16cZEwGsHM= MIME-Version: 1.0 Received: by 10.151.135.8 with SMTP id m8mr9053478ybn.185.1244319393021; Sat, 06 Jun 2009 13:16:33 -0700 (PDT) In-Reply-To: References: <20090530175239.GA25604@logik.internal.network> <20090530144354.2255f722@bhuda.mired.org> <20090530191840.GA68514@logik.internal.network> <20090530162744.5d77e9d1@bhuda.mired.org> Date: Sat, 6 Jun 2009 13:16:32 -0700 Message-ID: From: Freddie Cash To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: Request for opinions - gvinum or ccd? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Jun 2009 20:16:34 -0000 On Sat, Jun 6, 2009 at 12:54 PM, Ivan Voras wrote: > Sorry to come into the discussion late, but I just want to confirm > something. > > The configuration below is a stripe of four components, each of which is > RAIDZ2, right? > > If, as was discussed later in the thread, RAIDZ(2) is more similar to > RAID3 than RAID5 for random performance, the given configuration can be > (very roughly, in the non-sequential access case) expected to deliver > performance of four drives in a RAID0 array? According to all the Sun documentation, the I/O throughput of a raidz configuration is equal to that of a single drive. Hence their recommendation to not use more than 8 or 9 drives in a single raidz vdev, and to use multiple raidz vdevs. As you add vdevs, the throughput increases. We made the mistake early on of creating a 24-drive raidz2 vdev. Performance was not very good. And when we had to replace a drive, it spent over a week trying to resilver. But the resilver operation has to touch every single drive in the raidz vdev. :( We remade the pool using 3x 8-drive raidz2 vdevs, and performance has been great (400 MBytes/s write, almost 3 GBytes/s sequential read, 800 MBytes/s random read). -- Freddie Cash fjwcash@gmail.com