From owner-svn-src-stable-9@FreeBSD.ORG Sun Aug 25 13:10:04 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1C0979E1; Sun, 25 Aug 2013 13:10:04 +0000 (UTC) (envelope-from roberto@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0915D2CE1; Sun, 25 Aug 2013 13:10:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7PDA3xM090498; Sun, 25 Aug 2013 13:10:03 GMT (envelope-from roberto@svn.freebsd.org) Received: (from roberto@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7PDA3Yq090496; Sun, 25 Aug 2013 13:10:03 GMT (envelope-from roberto@svn.freebsd.org) Message-Id: <201308251310.r7PDA3Yq090496@svn.freebsd.org> From: Ollivier Robert Date: Sun, 25 Aug 2013 13:10:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254856 - stable/9/sys/crypto/aesni X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Aug 2013 13:10:04 -0000 Author: roberto Date: Sun Aug 25 13:10:03 2013 New Revision: 254856 URL: http://svnweb.freebsd.org/changeset/base/254856 Log: Merge r226837 & r226839 from head: r226837: Improve AES-NI performance for AES-XTS: - Operate on uint64_t types when doing XORing, etc. instead of uint8_t. - Don't bzero() temporary block for every AES block. Do it once for entire data block. - AES-NI is available only on little endian architectures. Simplify code that takes block number from IV. r226839: Update Copyright. Modified: stable/9/sys/crypto/aesni/aesni_wrap.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/crypto/aesni/aesni_wrap.c ============================================================================== --- stable/9/sys/crypto/aesni/aesni_wrap.c Sun Aug 25 12:58:34 2013 (r254855) +++ stable/9/sys/crypto/aesni/aesni_wrap.c Sun Aug 25 13:10:03 2013 (r254856) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2010 Konstantin Belousov - * Copyright (c) 2010 Pawel Jakub Dawidek + * Copyright (c) 2010-2011 Pawel Jakub Dawidek * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -87,33 +87,33 @@ aesni_decrypt_ecb(int rounds, const void #define AES_XTS_ALPHA 0x87 /* GF(2^128) generator polynomial */ static void -aesni_crypt_xts_block(int rounds, const void *key_schedule, uint8_t *tweak, - const uint8_t *from, uint8_t *to, int do_encrypt) +aesni_crypt_xts_block(int rounds, const void *key_schedule, uint64_t *tweak, + const uint64_t *from, uint64_t *to, uint64_t *block, int do_encrypt) { - uint8_t block[AES_XTS_BLOCKSIZE]; - u_int i, carry_in, carry_out; + int carry; - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) - block[i] = from[i] ^ tweak[i]; + block[0] = from[0] ^ tweak[0]; + block[1] = from[1] ^ tweak[1]; if (do_encrypt) - aesni_enc(rounds - 1, key_schedule, block, to, NULL); + aesni_enc(rounds - 1, key_schedule, (uint8_t *)block, (uint8_t *)to, NULL); else - aesni_dec(rounds - 1, key_schedule, block, to, NULL); + aesni_dec(rounds - 1, key_schedule, (uint8_t *)block, (uint8_t *)to, NULL); - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) - to[i] ^= tweak[i]; + to[0] ^= tweak[0]; + to[1] ^= tweak[1]; /* Exponentiate tweak. */ - carry_in = 0; - for (i = 0; i < AES_XTS_BLOCKSIZE; i++) { - carry_out = tweak[i] & 0x80; - tweak[i] = (tweak[i] << 1) | (carry_in ? 1 : 0); - carry_in = carry_out; - } - if (carry_in) - tweak[0] ^= AES_XTS_ALPHA; - bzero(block, sizeof(block)); + carry = ((tweak[0] & 0x8000000000000000ULL) > 0); + tweak[0] <<= 1; + if (tweak[1] & 0x8000000000000000ULL) { + uint8_t *twk = (uint8_t *)tweak; + + twk[0] ^= AES_XTS_ALPHA; + } + tweak[1] <<= 1; + if (carry) + tweak[1] |= 1; } static void @@ -121,32 +121,33 @@ aesni_crypt_xts(int rounds, const void * const void *tweak_schedule, size_t len, const uint8_t *from, uint8_t *to, const uint8_t iv[AES_BLOCK_LEN], int do_encrypt) { + uint64_t block[AES_XTS_BLOCKSIZE / 8]; uint8_t tweak[AES_XTS_BLOCKSIZE]; - uint64_t blocknum; size_t i; /* * Prepare tweak as E_k2(IV). IV is specified as LE representation * of a 64-bit block number which we allow to be passed in directly. */ - bcopy(iv, &blocknum, AES_XTS_IVSIZE); - for (i = 0; i < AES_XTS_IVSIZE; i++) { - tweak[i] = blocknum & 0xff; - blocknum >>= 8; - } +#if BYTE_ORDER == LITTLE_ENDIAN + bcopy(iv, tweak, AES_XTS_IVSIZE); /* Last 64 bits of IV are always zero. */ bzero(tweak + AES_XTS_IVSIZE, AES_XTS_IVSIZE); +#else +#error Only LITTLE_ENDIAN architectures are supported. +#endif aesni_enc(rounds - 1, tweak_schedule, tweak, tweak, NULL); len /= AES_XTS_BLOCKSIZE; for (i = 0; i < len; i++) { - aesni_crypt_xts_block(rounds, data_schedule, tweak, from, to, - do_encrypt); + aesni_crypt_xts_block(rounds, data_schedule, (uint64_t *)tweak, + (const uint64_t *)from, (uint64_t *)to, block, do_encrypt); from += AES_XTS_BLOCKSIZE; to += AES_XTS_BLOCKSIZE; } bzero(tweak, sizeof(tweak)); + bzero(block, sizeof(block)); } static void From owner-svn-src-stable-9@FreeBSD.ORG Sun Aug 25 14:29:48 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F31C1CF8; Sun, 25 Aug 2013 14:29:47 +0000 (UTC) (envelope-from roberto@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CFC012066; Sun, 25 Aug 2013 14:29:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7PETl86035522; Sun, 25 Aug 2013 14:29:47 GMT (envelope-from roberto@svn.freebsd.org) Received: (from roberto@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7PETlY7035520; Sun, 25 Aug 2013 14:29:47 GMT (envelope-from roberto@svn.freebsd.org) Message-Id: <201308251429.r7PETlY7035520@svn.freebsd.org> From: Ollivier Robert Date: Sun, 25 Aug 2013 14:29:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254859 - stable/9/sys/geom/eli X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Aug 2013 14:29:48 -0000 Author: roberto Date: Sun Aug 25 14:29:47 2013 New Revision: 254859 URL: http://svnweb.freebsd.org/changeset/base/254859 Log: MFC r226840: AESNI-related commit, from a long time ago: Before this change when GELI detected hardware crypto acceleration it will start only one worker thread. For software crypto it will start by default N worker threads where N is the number of available CPUs. This is not optimal if hardware crypto is AES-NI, which uses CPU for AES calculations. Change that to always start one worker thread for every available CPU. Number of worker threads per GELI provider can be easly reduced with kern.geom.eli.threads sysctl/tunable and even for software crypto it should be reduced when using more providers. While here, when number of threads exceeds number of CPUs avilable don't reduce this number, assume the user knows what he is doing. Submitted by: Michael Moll Modified: stable/9/sys/geom/eli/g_eli.c stable/9/sys/geom/eli/g_eli.h Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/geom/eli/g_eli.c ============================================================================== --- stable/9/sys/geom/eli/g_eli.c Sun Aug 25 14:27:14 2013 (r254858) +++ stable/9/sys/geom/eli/g_eli.c Sun Aug 25 14:29:47 2013 (r254859) @@ -444,16 +444,15 @@ g_eli_worker(void *arg) sc = wr->w_softc; #ifdef SMP /* Before sched_bind() to a CPU, wait for all CPUs to go on-line. */ - if (mp_ncpus > 1 && sc->sc_crypto == G_ELI_CRYPTO_SW && - g_eli_threads == 0) { + if (sc->sc_cpubind) { while (!smp_started) tsleep(wr, 0, "geli:smp", hz / 4); } #endif thread_lock(curthread); sched_prio(curthread, PUSER); - if (sc->sc_crypto == G_ELI_CRYPTO_SW && g_eli_threads == 0) - sched_bind(curthread, wr->w_number); + if (sc->sc_cpubind) + sched_bind(curthread, wr->w_number % mp_ncpus); thread_unlock(curthread); G_ELI_DEBUG(1, "Thread %s started.", curthread->td_proc->p_comm); @@ -810,11 +809,7 @@ g_eli_create(struct gctl_req *req, struc threads = g_eli_threads; if (threads == 0) threads = mp_ncpus; - else if (threads > mp_ncpus) { - /* There is really no need for too many worker threads. */ - threads = mp_ncpus; - G_ELI_DEBUG(0, "Reducing number of threads to %u.", threads); - } + sc->sc_cpubind = (mp_ncpus > 1 && threads == mp_ncpus); for (i = 0; i < threads; i++) { if (g_eli_cpu_is_disabled(i)) { G_ELI_DEBUG(1, "%s: CPU %u disabled, skipping.", @@ -854,9 +849,6 @@ g_eli_create(struct gctl_req *req, struc goto failed; } LIST_INSERT_HEAD(&sc->sc_workers, wr, w_next); - /* If we have hardware support, one thread is enough. */ - if (sc->sc_crypto == G_ELI_CRYPTO_HW) - break; } /* Modified: stable/9/sys/geom/eli/g_eli.h ============================================================================== --- stable/9/sys/geom/eli/g_eli.h Sun Aug 25 14:27:14 2013 (r254858) +++ stable/9/sys/geom/eli/g_eli.h Sun Aug 25 14:29:47 2013 (r254859) @@ -190,6 +190,7 @@ struct g_eli_softc { size_t sc_sectorsize; u_int sc_bytes_per_sector; u_int sc_data_per_sector; + boolean_t sc_cpubind; /* Only for software cryptography. */ struct bio_queue_head sc_queue; From owner-svn-src-stable-9@FreeBSD.ORG Mon Aug 26 06:26:16 2013 Return-Path: Delivered-To: svn-src-stable-9@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CDD72BB8; Mon, 26 Aug 2013 06:26:16 +0000 (UTC) (envelope-from jmg@h2.funkthat.com) Received: from h2.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8F8BF2B4F; Mon, 26 Aug 2013 06:26:16 +0000 (UTC) Received: from h2.funkthat.com (localhost [127.0.0.1]) by h2.funkthat.com (8.14.3/8.14.3) with ESMTP id r7Q6QAmT058689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 25 Aug 2013 23:26:10 -0700 (PDT) (envelope-from jmg@h2.funkthat.com) Received: (from jmg@localhost) by h2.funkthat.com (8.14.3/8.14.3/Submit) id r7Q6QA6H058688; Sun, 25 Aug 2013 23:26:10 -0700 (PDT) (envelope-from jmg) Date: Sun, 25 Aug 2013 23:26:10 -0700 From: John-Mark Gurney To: Ollivier Robert Subject: Re: svn commit: r254859 - stable/9/sys/geom/eli Message-ID: <20130826062610.GC29777@funkthat.com> References: <201308251429.r7PETlY7035520@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308251429.r7PETlY7035520@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Operating-System: FreeBSD 7.2-RELEASE i386 X-PGP-Fingerprint: 54BA 873B 6515 3F10 9E88 9322 9CB1 8F74 6D3F A396 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.2 (h2.funkthat.com [127.0.0.1]); Sun, 25 Aug 2013 23:26:10 -0700 (PDT) Cc: svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, svn-src-stable-9@FreeBSD.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 06:26:16 -0000 Ollivier Robert wrote this message on Sun, Aug 25, 2013 at 14:29 +0000: > Author: roberto > Date: Sun Aug 25 14:29:47 2013 > New Revision: 254859 > URL: http://svnweb.freebsd.org/changeset/base/254859 > > Log: > MFC r226840: AESNI-related commit, from a long time ago: > > Before this change when GELI detected hardware crypto acceleration it will > start only one worker thread. For software crypto it will start by default > N worker threads where N is the number of available CPUs. > > This is not optimal if hardware crypto is AES-NI, which uses CPU for AES > calculations. > > Change that to always start one worker thread for every available CPU. > Number of worker threads per GELI provider can be easly reduced with > kern.geom.eli.threads sysctl/tunable and even for software crypto it > should be reduced when using more providers. > > While here, when number of threads exceeds number of CPUs avilable don't > reduce this number, assume the user knows what he is doing. > > Submitted by: Michael Moll I'll just point out that if you have a large number of geli volumes, that this turns out to hurt performance rather than help it.. At least in my testing on a 6 core machine w/ an 8 disk zfs pool where all 8 disks are encrypted... I think the problem is that we launch threads on a per geli/disk instead of just having a generic set of threads that can work with any geli volume... When you have 17 geli volumes (like I do on my machine) * 6 threads, thats a lot of threads, imagine if the box had 32 or 64 cores? You're looking at 500-1000 threads just for encryption... In case someone asks, 8 zfs disks + 2 spares, swap, l2arc * 2, zil * 2 and zfs mirrored root all encrypted volumes... -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." From owner-svn-src-stable-9@FreeBSD.ORG Mon Aug 26 07:17:42 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 63103BF9; Mon, 26 Aug 2013 07:17:42 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4C6BF2D9D; Mon, 26 Aug 2013 07:17:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7Q7Hgep073299; Mon, 26 Aug 2013 07:17:42 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7Q7HgMF073297; Mon, 26 Aug 2013 07:17:42 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308260717.r7Q7HgMF073297@svn.freebsd.org> From: Erwin Lansing Date: Mon, 26 Aug 2013 07:17:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254897 - in stable/9: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec... X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 07:17:42 -0000 Author: erwin Date: Mon Aug 26 07:17:41 2013 New Revision: 254897 URL: http://svnweb.freebsd.org/changeset/base/254897 Log: MFC r254651: Update Bind to 9.9.3-P2 Notable new features: * Elliptic Curve Digital Signature Algorithm keys and signatures in DNSSEC are now supported per RFC 6605. [RT #21918] * Introduces a new tool "dnssec-verify" that validates a signed zone, checking for the correctness of signatures and NSEC/NSEC3 chains. [RT #23673] * BIND now recognizes the TLSA resource record type, created to support IETF DANE (DNS-based Authentication of Named Entities) [RT #28989] * The new "inline-signing" option, in combination with the "auto-dnssec" option that was introduced in BIND 9.7, allows named to sign zones completely transparently. Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Added: stable/9/contrib/bind9/bin/dnssec/dnssec-verify.8 - copied unchanged from r254651, head/contrib/bind9/bin/dnssec/dnssec-verify.8 stable/9/contrib/bind9/bin/dnssec/dnssec-verify.c - copied unchanged from r254651, head/contrib/bind9/bin/dnssec/dnssec-verify.c stable/9/contrib/bind9/bin/dnssec/dnssec-verify.docbook - copied unchanged from r254651, head/contrib/bind9/bin/dnssec/dnssec-verify.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-verify.html - copied unchanged from r254651, head/contrib/bind9/bin/dnssec/dnssec-verify.html stable/9/contrib/bind9/bin/named/bind9.ver3.xsl - copied unchanged from r254651, head/contrib/bind9/bin/named/bind9.ver3.xsl stable/9/contrib/bind9/bin/named/bind9.ver3.xsl.h - copied unchanged from r254651, head/contrib/bind9/bin/named/bind9.ver3.xsl.h stable/9/contrib/bind9/doc/arm/man.dnssec-verify.html - copied unchanged from r254651, head/contrib/bind9/doc/arm/man.dnssec-verify.html stable/9/contrib/bind9/lib/dns/clientinfo.c - copied unchanged from r254651, head/contrib/bind9/lib/dns/clientinfo.c stable/9/contrib/bind9/lib/dns/include/dns/clientinfo.h - copied unchanged from r254651, head/contrib/bind9/lib/dns/include/dns/clientinfo.h stable/9/contrib/bind9/lib/dns/include/dns/update.h - copied unchanged from r254651, head/contrib/bind9/lib/dns/include/dns/update.h stable/9/contrib/bind9/lib/dns/rdata/generic/naptr_35.c - copied unchanged from r254651, head/contrib/bind9/lib/dns/rdata/generic/naptr_35.c stable/9/contrib/bind9/lib/dns/rdata/generic/naptr_35.h - copied unchanged from r254651, head/contrib/bind9/lib/dns/rdata/generic/naptr_35.h stable/9/contrib/bind9/lib/dns/update.c - copied unchanged from r254651, head/contrib/bind9/lib/dns/update.c stable/9/contrib/bind9/lib/isc/include/isc/pool.h - copied unchanged from r254651, head/contrib/bind9/lib/isc/include/isc/pool.h stable/9/contrib/bind9/lib/isc/include/isc/queue.h - copied unchanged from r254651, head/contrib/bind9/lib/isc/include/isc/queue.h stable/9/contrib/bind9/lib/isc/pool.c - copied unchanged from r254651, head/contrib/bind9/lib/isc/pool.c stable/9/usr.sbin/dnssec-verify/ - copied from r254651, head/usr.sbin/dnssec-verify/ Deleted: stable/9/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c stable/9/contrib/bind9/lib/dns/rdata/in_1/naptr_35.h Modified: stable/9/contrib/bind9/CHANGES stable/9/contrib/bind9/COPYRIGHT stable/9/contrib/bind9/HISTORY stable/9/contrib/bind9/Makefile.in stable/9/contrib/bind9/README stable/9/contrib/bind9/bin/Makefile.in stable/9/contrib/bind9/bin/check/check-tool.c stable/9/contrib/bind9/bin/check/check-tool.h stable/9/contrib/bind9/bin/check/named-checkconf.c stable/9/contrib/bind9/bin/check/named-checkzone.8 stable/9/contrib/bind9/bin/check/named-checkzone.c stable/9/contrib/bind9/bin/check/named-checkzone.docbook stable/9/contrib/bind9/bin/check/named-checkzone.html stable/9/contrib/bind9/bin/confgen/ddns-confgen.c stable/9/contrib/bind9/bin/confgen/rndc-confgen.c stable/9/contrib/bind9/bin/dig/Makefile.in stable/9/contrib/bind9/bin/dig/dig.1 stable/9/contrib/bind9/bin/dig/dig.c stable/9/contrib/bind9/bin/dig/dig.docbook stable/9/contrib/bind9/bin/dig/dig.html stable/9/contrib/bind9/bin/dig/dighost.c stable/9/contrib/bind9/bin/dig/host.c stable/9/contrib/bind9/bin/dig/include/dig/dig.h stable/9/contrib/bind9/bin/dig/nslookup.c stable/9/contrib/bind9/bin/dnssec/Makefile.in stable/9/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8 stable/9/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c stable/9/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-dsfromkey.html stable/9/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.8 stable/9/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.c stable/9/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.html stable/9/contrib/bind9/bin/dnssec/dnssec-keygen.8 stable/9/contrib/bind9/bin/dnssec/dnssec-keygen.c stable/9/contrib/bind9/bin/dnssec/dnssec-keygen.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-keygen.html stable/9/contrib/bind9/bin/dnssec/dnssec-revoke.c stable/9/contrib/bind9/bin/dnssec/dnssec-revoke.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-settime.8 stable/9/contrib/bind9/bin/dnssec/dnssec-settime.c stable/9/contrib/bind9/bin/dnssec/dnssec-settime.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-settime.html stable/9/contrib/bind9/bin/dnssec/dnssec-signzone.8 stable/9/contrib/bind9/bin/dnssec/dnssec-signzone.c stable/9/contrib/bind9/bin/dnssec/dnssec-signzone.docbook stable/9/contrib/bind9/bin/dnssec/dnssec-signzone.html stable/9/contrib/bind9/bin/dnssec/dnssectool.c stable/9/contrib/bind9/bin/dnssec/dnssectool.h stable/9/contrib/bind9/bin/named/Makefile.in stable/9/contrib/bind9/bin/named/builtin.c stable/9/contrib/bind9/bin/named/client.c stable/9/contrib/bind9/bin/named/config.c stable/9/contrib/bind9/bin/named/control.c stable/9/contrib/bind9/bin/named/controlconf.c stable/9/contrib/bind9/bin/named/include/dlz/dlz_dlopen_driver.h stable/9/contrib/bind9/bin/named/include/named/client.h stable/9/contrib/bind9/bin/named/include/named/control.h stable/9/contrib/bind9/bin/named/include/named/globals.h stable/9/contrib/bind9/bin/named/include/named/interfacemgr.h stable/9/contrib/bind9/bin/named/include/named/server.h stable/9/contrib/bind9/bin/named/include/named/zoneconf.h stable/9/contrib/bind9/bin/named/interfacemgr.c stable/9/contrib/bind9/bin/named/logconf.c stable/9/contrib/bind9/bin/named/main.c stable/9/contrib/bind9/bin/named/named.8 stable/9/contrib/bind9/bin/named/named.conf.5 stable/9/contrib/bind9/bin/named/named.conf.docbook stable/9/contrib/bind9/bin/named/named.conf.html stable/9/contrib/bind9/bin/named/named.docbook stable/9/contrib/bind9/bin/named/named.html stable/9/contrib/bind9/bin/named/query.c stable/9/contrib/bind9/bin/named/server.c stable/9/contrib/bind9/bin/named/statschannel.c stable/9/contrib/bind9/bin/named/unix/Makefile.in stable/9/contrib/bind9/bin/named/unix/dlz_dlopen_driver.c stable/9/contrib/bind9/bin/named/unix/os.c stable/9/contrib/bind9/bin/named/update.c stable/9/contrib/bind9/bin/named/xfrout.c stable/9/contrib/bind9/bin/named/zoneconf.c stable/9/contrib/bind9/bin/nsupdate/Makefile.in stable/9/contrib/bind9/bin/nsupdate/nsupdate.1 stable/9/contrib/bind9/bin/nsupdate/nsupdate.c stable/9/contrib/bind9/bin/nsupdate/nsupdate.docbook stable/9/contrib/bind9/bin/nsupdate/nsupdate.html stable/9/contrib/bind9/bin/rndc/rndc.c stable/9/contrib/bind9/bin/tools/genrandom.8 stable/9/contrib/bind9/bin/tools/genrandom.docbook stable/9/contrib/bind9/bin/tools/genrandom.html stable/9/contrib/bind9/bin/tools/nsec3hash.c stable/9/contrib/bind9/config.h.in stable/9/contrib/bind9/config.threads.in stable/9/contrib/bind9/configure.in stable/9/contrib/bind9/doc/arm/Bv9ARM-book.xml stable/9/contrib/bind9/doc/arm/Bv9ARM.ch01.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch03.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch04.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch05.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch06.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch07.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch08.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch09.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch10.html stable/9/contrib/bind9/doc/arm/Bv9ARM.html stable/9/contrib/bind9/doc/arm/Bv9ARM.pdf stable/9/contrib/bind9/doc/arm/dnssec.xml stable/9/contrib/bind9/doc/arm/man.arpaname.html stable/9/contrib/bind9/doc/arm/man.ddns-confgen.html stable/9/contrib/bind9/doc/arm/man.dig.html stable/9/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html stable/9/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html stable/9/contrib/bind9/doc/arm/man.dnssec-keygen.html stable/9/contrib/bind9/doc/arm/man.dnssec-revoke.html stable/9/contrib/bind9/doc/arm/man.dnssec-settime.html stable/9/contrib/bind9/doc/arm/man.dnssec-signzone.html stable/9/contrib/bind9/doc/arm/man.genrandom.html stable/9/contrib/bind9/doc/arm/man.host.html stable/9/contrib/bind9/doc/arm/man.isc-hmac-fixup.html stable/9/contrib/bind9/doc/arm/man.named-checkconf.html stable/9/contrib/bind9/doc/arm/man.named-checkzone.html stable/9/contrib/bind9/doc/arm/man.named-journalprint.html stable/9/contrib/bind9/doc/arm/man.named.html stable/9/contrib/bind9/doc/arm/man.nsec3hash.html stable/9/contrib/bind9/doc/arm/man.nsupdate.html stable/9/contrib/bind9/doc/arm/man.rndc-confgen.html stable/9/contrib/bind9/doc/arm/man.rndc.conf.html stable/9/contrib/bind9/doc/arm/man.rndc.html stable/9/contrib/bind9/doc/arm/pkcs11.xml stable/9/contrib/bind9/doc/misc/options stable/9/contrib/bind9/lib/bind9/api stable/9/contrib/bind9/lib/bind9/check.c stable/9/contrib/bind9/lib/dns/Makefile.in stable/9/contrib/bind9/lib/dns/acache.c stable/9/contrib/bind9/lib/dns/acl.c stable/9/contrib/bind9/lib/dns/adb.c stable/9/contrib/bind9/lib/dns/api stable/9/contrib/bind9/lib/dns/byaddr.c stable/9/contrib/bind9/lib/dns/cache.c stable/9/contrib/bind9/lib/dns/callbacks.c stable/9/contrib/bind9/lib/dns/client.c stable/9/contrib/bind9/lib/dns/db.c stable/9/contrib/bind9/lib/dns/dbtable.c stable/9/contrib/bind9/lib/dns/diff.c stable/9/contrib/bind9/lib/dns/dispatch.c stable/9/contrib/bind9/lib/dns/dns64.c stable/9/contrib/bind9/lib/dns/dnssec.c stable/9/contrib/bind9/lib/dns/dst_api.c stable/9/contrib/bind9/lib/dns/dst_internal.h stable/9/contrib/bind9/lib/dns/dst_openssl.h stable/9/contrib/bind9/lib/dns/dst_parse.c stable/9/contrib/bind9/lib/dns/ecdb.c stable/9/contrib/bind9/lib/dns/gssapi_link.c stable/9/contrib/bind9/lib/dns/gssapictx.c stable/9/contrib/bind9/lib/dns/hmac_link.c stable/9/contrib/bind9/lib/dns/include/dns/Makefile.in stable/9/contrib/bind9/lib/dns/include/dns/acache.h stable/9/contrib/bind9/lib/dns/include/dns/acl.h stable/9/contrib/bind9/lib/dns/include/dns/adb.h stable/9/contrib/bind9/lib/dns/include/dns/cache.h stable/9/contrib/bind9/lib/dns/include/dns/callbacks.h stable/9/contrib/bind9/lib/dns/include/dns/db.h stable/9/contrib/bind9/lib/dns/include/dns/dispatch.h stable/9/contrib/bind9/lib/dns/include/dns/dlz_dlopen.h stable/9/contrib/bind9/lib/dns/include/dns/dnssec.h stable/9/contrib/bind9/lib/dns/include/dns/events.h stable/9/contrib/bind9/lib/dns/include/dns/journal.h stable/9/contrib/bind9/lib/dns/include/dns/log.h stable/9/contrib/bind9/lib/dns/include/dns/master.h stable/9/contrib/bind9/lib/dns/include/dns/masterdump.h stable/9/contrib/bind9/lib/dns/include/dns/nsec.h stable/9/contrib/bind9/lib/dns/include/dns/nsec3.h stable/9/contrib/bind9/lib/dns/include/dns/private.h stable/9/contrib/bind9/lib/dns/include/dns/rdata.h stable/9/contrib/bind9/lib/dns/include/dns/rdataset.h stable/9/contrib/bind9/lib/dns/include/dns/resolver.h stable/9/contrib/bind9/lib/dns/include/dns/result.h stable/9/contrib/bind9/lib/dns/include/dns/rpz.h stable/9/contrib/bind9/lib/dns/include/dns/rriterator.h stable/9/contrib/bind9/lib/dns/include/dns/sdb.h stable/9/contrib/bind9/lib/dns/include/dns/sdlz.h stable/9/contrib/bind9/lib/dns/include/dns/time.h stable/9/contrib/bind9/lib/dns/include/dns/types.h stable/9/contrib/bind9/lib/dns/include/dns/view.h stable/9/contrib/bind9/lib/dns/include/dns/zone.h stable/9/contrib/bind9/lib/dns/include/dns/zt.h stable/9/contrib/bind9/lib/dns/include/dst/dst.h stable/9/contrib/bind9/lib/dns/iptable.c stable/9/contrib/bind9/lib/dns/journal.c stable/9/contrib/bind9/lib/dns/key.c stable/9/contrib/bind9/lib/dns/keytable.c stable/9/contrib/bind9/lib/dns/log.c stable/9/contrib/bind9/lib/dns/lookup.c stable/9/contrib/bind9/lib/dns/master.c stable/9/contrib/bind9/lib/dns/masterdump.c stable/9/contrib/bind9/lib/dns/message.c stable/9/contrib/bind9/lib/dns/nsec.c stable/9/contrib/bind9/lib/dns/nsec3.c stable/9/contrib/bind9/lib/dns/openssldh_link.c stable/9/contrib/bind9/lib/dns/openssldsa_link.c stable/9/contrib/bind9/lib/dns/opensslecdsa_link.c stable/9/contrib/bind9/lib/dns/opensslgost_link.c stable/9/contrib/bind9/lib/dns/opensslrsa_link.c stable/9/contrib/bind9/lib/dns/private.c stable/9/contrib/bind9/lib/dns/rbt.c stable/9/contrib/bind9/lib/dns/rbtdb.c stable/9/contrib/bind9/lib/dns/rdata.c stable/9/contrib/bind9/lib/dns/rdata/any_255/tsig_250.c stable/9/contrib/bind9/lib/dns/rdata/generic/cert_37.c stable/9/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c stable/9/contrib/bind9/lib/dns/rdata/generic/dnskey_48.c stable/9/contrib/bind9/lib/dns/rdata/generic/ds_43.c stable/9/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.c stable/9/contrib/bind9/lib/dns/rdata/generic/key_25.c stable/9/contrib/bind9/lib/dns/rdata/generic/keydata_65533.c stable/9/contrib/bind9/lib/dns/rdata/generic/nsec3_50.c stable/9/contrib/bind9/lib/dns/rdata/generic/nsec3_50.h stable/9/contrib/bind9/lib/dns/rdata/generic/opt_41.c stable/9/contrib/bind9/lib/dns/rdata/generic/rrsig_46.c stable/9/contrib/bind9/lib/dns/rdata/generic/sig_24.c stable/9/contrib/bind9/lib/dns/rdata/generic/soa_6.c stable/9/contrib/bind9/lib/dns/rdata/generic/sshfp_44.c stable/9/contrib/bind9/lib/dns/rdata/generic/tkey_249.c stable/9/contrib/bind9/lib/dns/rdata/generic/uri_256.c stable/9/contrib/bind9/lib/dns/rdata/generic/uri_256.h stable/9/contrib/bind9/lib/dns/rdata/in_1/dhcid_49.c stable/9/contrib/bind9/lib/dns/resolver.c stable/9/contrib/bind9/lib/dns/sdb.c stable/9/contrib/bind9/lib/dns/sdlz.c stable/9/contrib/bind9/lib/dns/validator.c stable/9/contrib/bind9/lib/dns/view.c stable/9/contrib/bind9/lib/dns/xfrin.c stable/9/contrib/bind9/lib/dns/zone.c stable/9/contrib/bind9/lib/dns/zt.c stable/9/contrib/bind9/lib/irs/api stable/9/contrib/bind9/lib/isc/Makefile.in stable/9/contrib/bind9/lib/isc/api stable/9/contrib/bind9/lib/isc/include/isc/heap.h stable/9/contrib/bind9/lib/isc/include/isc/list.h stable/9/contrib/bind9/lib/isc/include/isc/mem.h stable/9/contrib/bind9/lib/isc/include/isc/namespace.h stable/9/contrib/bind9/lib/isc/include/isc/radix.h stable/9/contrib/bind9/lib/isc/include/isc/socket.h stable/9/contrib/bind9/lib/isc/include/isc/task.h stable/9/contrib/bind9/lib/isc/include/isc/taskpool.h stable/9/contrib/bind9/lib/isc/log.c stable/9/contrib/bind9/lib/isc/radix.c stable/9/contrib/bind9/lib/isc/socket_api.c stable/9/contrib/bind9/lib/isc/task.c stable/9/contrib/bind9/lib/isc/task_api.c stable/9/contrib/bind9/lib/isc/task_p.h stable/9/contrib/bind9/lib/isc/taskpool.c stable/9/contrib/bind9/lib/isc/unix/socket.c stable/9/contrib/bind9/lib/isccc/api stable/9/contrib/bind9/lib/isccfg/api stable/9/contrib/bind9/lib/isccfg/namedconf.c stable/9/contrib/bind9/lib/lwres/api stable/9/contrib/bind9/lib/lwres/man/lwres_config.3 stable/9/contrib/bind9/lib/lwres/man/lwres_config.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_config.html stable/9/contrib/bind9/lib/lwres/man/lwres_context.3 stable/9/contrib/bind9/lib/lwres/man/lwres_context.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_context.html stable/9/contrib/bind9/lib/lwres/man/lwres_gabn.3 stable/9/contrib/bind9/lib/lwres/man/lwres_gabn.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_gabn.html stable/9/contrib/bind9/lib/lwres/man/lwres_gai_strerror.3 stable/9/contrib/bind9/lib/lwres/man/lwres_gai_strerror.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html stable/9/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.3 stable/9/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html stable/9/contrib/bind9/lib/lwres/man/lwres_gethostent.3 stable/9/contrib/bind9/lib/lwres/man/lwres_gethostent.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_gethostent.html stable/9/contrib/bind9/lib/lwres/man/lwres_getipnode.3 stable/9/contrib/bind9/lib/lwres/man/lwres_getipnode.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_getipnode.html stable/9/contrib/bind9/lib/lwres/man/lwres_getnameinfo.3 stable/9/contrib/bind9/lib/lwres/man/lwres_getnameinfo.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html stable/9/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.3 stable/9/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html stable/9/contrib/bind9/lib/lwres/man/lwres_gnba.3 stable/9/contrib/bind9/lib/lwres/man/lwres_gnba.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_gnba.html stable/9/contrib/bind9/lib/lwres/man/lwres_hstrerror.3 stable/9/contrib/bind9/lib/lwres/man/lwres_hstrerror.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_hstrerror.html stable/9/contrib/bind9/lib/lwres/man/lwres_inetntop.3 stable/9/contrib/bind9/lib/lwres/man/lwres_inetntop.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_inetntop.html stable/9/contrib/bind9/lib/lwres/man/lwres_noop.3 stable/9/contrib/bind9/lib/lwres/man/lwres_noop.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_noop.html stable/9/contrib/bind9/lib/lwres/man/lwres_packet.3 stable/9/contrib/bind9/lib/lwres/man/lwres_packet.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_packet.html stable/9/contrib/bind9/lib/lwres/man/lwres_resutil.3 stable/9/contrib/bind9/lib/lwres/man/lwres_resutil.docbook stable/9/contrib/bind9/lib/lwres/man/lwres_resutil.html stable/9/contrib/bind9/lib/lwres/print_p.h stable/9/contrib/bind9/lib/lwres/strtoul.c stable/9/contrib/bind9/lib/lwres/unix/Makefile.in stable/9/contrib/bind9/lib/lwres/unix/include/Makefile.in stable/9/contrib/bind9/lib/lwres/unix/include/lwres/Makefile.in stable/9/contrib/bind9/lib/lwres/unix/include/lwres/net.h stable/9/contrib/bind9/lib/lwres/version.c stable/9/contrib/bind9/make/Makefile.in stable/9/contrib/bind9/make/includes.in stable/9/contrib/bind9/make/rules.in stable/9/contrib/bind9/mkinstalldirs stable/9/contrib/bind9/version stable/9/lib/bind/config.h stable/9/lib/bind/dns/Makefile stable/9/lib/bind/dns/code.h stable/9/lib/bind/dns/dns/rdatastruct.h stable/9/lib/bind/isc/Makefile stable/9/share/doc/bind9/Makefile stable/9/usr.bin/nslookup/Makefile stable/9/usr.bin/nsupdate/Makefile stable/9/usr.sbin/Makefile (contents, props changed) Directory Properties: stable/9/contrib/bind9/ (props changed) stable/9/lib/bind/ (props changed) stable/9/share/doc/bind9/ (props changed) stable/9/usr.bin/ (props changed) stable/9/usr.sbin/ (props changed) Modified: stable/9/contrib/bind9/CHANGES ============================================================================== --- stable/9/contrib/bind9/CHANGES Mon Aug 26 07:07:41 2013 (r254896) +++ stable/9/contrib/bind9/CHANGES Mon Aug 26 07:17:41 2013 (r254897) @@ -1,15 +1,15 @@ - --- 9.8.5-P2 released --- + --- 9.9.3-P2 released --- 3621. [security] Incorrect bounds checking on private type 'keydata' can lead to a remotely triggerable REQUIRE failure (CVE-2013-4854). [RT #34238] - --- 9.8.5-P1 released --- + --- 9.9.3-P1 released --- 3584. [security] Caching data from an incompletely signed zone could trigger an assertion failure in resolver.c [RT #33690] - --- 9.8.5 released --- + --- 9.9.3 released --- 3568. [cleanup] Add a product description line to the version file, to be reported by named -v/-V. [RT #33366] @@ -21,7 +21,7 @@ 3561. [bug] dig: issue a warning if an EDNS query returns FORMERR or NOTIMP. Adjust usage message. [RT #33363] - --- 9.8.5rc1 released --- + --- 9.9.3rc2 released --- 3560. [bug] isc-config.sh did not honor includedir and libdir when set via configure. [RT #33345] @@ -31,6 +31,8 @@ 3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331] +3557. [bug] Reloading redirect zones was broken. [RT #33292] + 3556. [maint] Added AAAA for D.ROOT-SERVERS.NET. 3555. [bug] Address theoretical race conditions in acache.c @@ -51,9 +53,7 @@ 3547. [bug] Some malformed unknown rdata records were not properly detected and rejected. [RT #33129] -3056. [func] Added support for URI resource record. [RT #23386] - - --- 9.8.5rc1 released --- + --- 9.9.3rc1 released --- 3546. [func] Add EUI48 and EUI64 types. [RT #33082] @@ -64,8 +64,6 @@ 3543. [bug] Update socket structure before attaching to socket manager after accept. [RT #33084] -3542. [bug] masterformat system test was broken. [RT #33086] - 3541. [bug] Parts of libdns were not properly initialized when built in libexport mode. [RT #33028] @@ -94,6 +92,17 @@ 3530. [contrib] Better RTT tracking in queryperf. [RT #30128] +3528. [func] New "dnssec-coverage" command scans the timing + metadata for a set of DNSSEC keys and reports if a + lapse in signing coverage has been scheduled + inadvertently. (Note: This tool depends on python; + it will not be built or installed on systems that + do not have a python interpreter.) [RT #28098] + +3527. [compat] Add a URI to allow applications to explicitly + request a particular XML schema from the statistics + channel, returning 404 if not supported. [RT #32481] + 3526. [cleanup] Set up dependencies for unit tests correctly during build. [RT #32803] @@ -102,7 +111,7 @@ 3520. [bug] 'mctx' was not being referenced counted in some places where it should have been. [RT #32794] - --- 9.8.5b2 released --- + --- 9.9.3b2 released --- 3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777] @@ -114,6 +123,8 @@ to 1024 bits for hmac-sha384 and hmac-sha512. [RT #32753] +3511. [doc] Improve documentation of redirect zones. [RT #32756] + 3509. [cleanup] Added a product line to version file to allow for easy naming of different products (BIND vs BIND ESV, for example). [RT #32755] @@ -121,8 +132,24 @@ 3508. [contrib] queryperf was incorrectly rejecting the -T option. [RT #32338] +3507. [bug] Statistics channel XSL (when built with + --enable-newstats) had a glitch when attempting + to chart query data before any queries had been + received. [RT #32620] + +3505. [bug] When setting "max-cache-size" and "max-acache-size", + larger values than 4 gigabytes could not be set + explicitly, though larger sizes were available + when setting cache size to 0. This has been + corrected; the full range is now available. + [RT #32358] + 3503. [doc] Clarify size_spec syntax. [RT #32449] +3501. [func] zone-statistics now takes three options: full, + terse, and none. "yes" and "no" are retained as + synonyms for full and terse, respectively. [RT #29165] + 3500. [security] Support NAPTR regular expression validation on all platforms without using libregex, which can be vulnerable to memory exhaustion attack @@ -141,6 +168,15 @@ NSIP and NSDNAME checking. --enable-rpz-nsip and --enable-rpz-nsdname are now the default. [RT #32251] +3493. [contrib] Added BDBHPT dynamically-lodable DLZ module, + contributed by Mark Goldfinch. [RT #32549] + +3492. [bug] Fixed a regression in zone loading performance + due to lock contention. [RT #30399] + +3491. [bug] Slave zones using inline-signing must specify a + file name. [RT #31946] + 3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT. When cloning a rdataset do not copy the link contents. [RT #32651] @@ -156,8 +192,14 @@ 3485. [cleanup] Only compile openssl_gostlink.c if we support GOST. +3483. [bug] Corrected XSL code in use with --enable-newstats. + [RT #32587] + 3481. [cleanup] Removed use of const const in atf. +3480. [bug] Silence logging noise when setting up zone + statistics. [RT #32525] + 3479. [bug] Address potential memory leaks in gssapi support code. [RT #32405] @@ -167,10 +209,18 @@ 3474. [bug] nsupdate could assert when the local and remote address families didn't match. [RT #22897] +3473. [bug] dnssec-signzone/verify could incorrectly report + an error condition due to an empty node above an + opt-out delegation lacking an NSEC3. [RT #32072] + +3471. [bug] The number of UDP dispatches now defaults to + the number of CPUs even if -n has been set to + a higher value. [RT #30964] + 3470. [bug] Slave zones could fail to dump when successfully refreshing after an initial failure. [RT #31276] - --- 9.8.5b1 released --- + --- 9.9.3b1 released --- 3468. [security] RPZ rules to generate A records (but not AAAA records) could trigger an assertion failure when used in @@ -179,6 +229,9 @@ 3467. [bug] Added checks in dnssec-keygen and dnssec-settime to check for delete date < inactive date. [RT #31719] +3466. [contrib] Corrected the DNS_CLIENTINFOMETHODS_VERSION check + in DLZ example driver. [RT #32275] + 3465. [bug] Handle isolated reserved ports. [RT #31778] 3464. [maint] Updates to PKCS#11 openssl patches, supporting @@ -192,6 +245,8 @@ 3461. [bug] Negative responses could incorrectly have AD=1 set. [RT #32237] +3460. [bug] Only link against readline where needed. [RT #29810] + 3458. [bug] Return FORMERR when presented with a overly long domain named in a request. [RT #29682] @@ -203,6 +258,9 @@ 3454. [port] sparc64: improve atomic support. [RT #25182] +3453. [bug] 'rndc addzone' of a zone with 'inline-signing yes;' + failed. [RT #31960] + 3452. [bug] Accept duplicate singleton records. [RT #32329] 3451. [port] Increase per thread stack size from 64K to 1M. @@ -266,9 +324,19 @@ 3427. [bug] dig +trace incorrectly displayed name server addresses instead of names. [RT #31641] +3426. [bug] dnssec-checkds: Clearer output when records are not + found. [RT #31968] + 3425. [bug] "acacheentry" reference counting was broken resulting in use after free. [RT #31908] +3424. [func] dnssec-dsfromkey now emits the hash without spaces. + [RT #31951] + +3423. [bug] "rndc signing -nsec3param" didn't accept the full + range of possible values. Address portability issues. + [RT #31938] + 3422. [bug] Added a clear error message for when the SOA does not match the referral. [RT #31281] @@ -279,9 +347,22 @@ 3419. [bug] Memory leak on validation cancel. [RT #31869] +3417. [func] Optional new XML schema (version 3.0) for the + statistics channel adds query type statistics at the + zone level, and flattens the XML tree and uses + compressed format to optimize parsing. Includes new XSL + that permits charting via the Google Charts API on + browsers that support javascript in XSL. To enable, + build with "configure --enable-newstats". [RT #30023] + +3416. [bug] Named could die on shutdown if running with 128 UDP + dispatches per interface. [RT #31743] + 3415. [bug] named could die with a REQUIRE failure if a validation was canceled. [RT #31804] +3414. [bug] Address locking issues found by Coverity. [RT #31626] + 3412. [bug] Copy timeval structure from control message data. [RT #31548] @@ -295,6 +376,11 @@ (DNS-based Authentication of Named Entities). [RT #30513] +3408. [bug] Some DNSSEC-related options (update-check-ksk, + dnssec-loadkeys-interval, dnssec-dnskey-kskonly) + are now legal in slave zones as long as + inline-signing is in use. [RT #31078] + 3406. [bug] mem.c: Fix compilation errors when building with ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled. Also, ISC_MEM_DEBUG is no longer optional. [RT #31559] @@ -316,6 +402,13 @@ in the "srcid" file in the build tree and normally set to the most recent git hash. [RT #31494] +3399. [port] netbsd: rename 'bool' parameter to avoid namespace + clash. [RT #31515] + +3398. [bug] SOA parameters were not being updated with inline + signed zones if the zone was modified while the + server was offline. [RT #29272] + 3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298] 3396. [bug] OPT records were incorrectly removed from signed, @@ -348,11 +441,10 @@ 3386. [bug] Address locking violation when generating new NSEC / NSEC3 chains. [RT #31224] -3384. [bug] Improved logging of crypto errors. [RT #30963] +3385. [bug] named-checkconf didn't detect missing master lists + in also-notify clauses. [RT #30810] -3383. [security] A certain combination of records in the RBT could - cause named to hang while populating the additional - section of a response. [RT #31090] +3384. [bug] Improved logging of crypto errors. [RT #30963] 3382. [bug] SOA query from slave used use-v6-udp-ports range, if set, regardless of the address family in use. @@ -370,6 +462,9 @@ 3378. [bug] Handle missing 'managed-keys-directory' better. [RT #30625] +3377. [bug] Removed spurious newline from NSEC3 multiline + output. [RT #31044] + 3376. [bug] Lack of EDNS support was being recorded without a successful response. [RT #30811] @@ -386,19 +481,34 @@ add NS RRsets to the additional section or not. [RT #30479] - --- 9.8.4 released --- +3316. [tuning] Improved locking performance when recursing. + [RT #28836] + +3315. [tuning] Use multiple dispatch objects for sending upstream + queries; this can improve performance on busy + multiprocessor systems by reducing lock contention. + [RT #28605] + + --- 9.9.2 released --- + +3383. [security] A certain combination of records in the RBT could + cause named to hang while populating the additional + section of a response. [RT #31090] 3373. [bug] win32: open raw files in binary mode. [RT #30944] 3364. [security] Named could die on specially crafted record. [RT #30416] - --- 9.8.4rc1 released --- + --- 9.9.2rc1 released --- + +3370. [bug] Address use after free while shutting down. [RT #30241] 3369. [bug] nsupdate terminated unexpectedly in interactive mode if built with readline support. [RT #29550] -3368. [bug] and were not C++ safe. +3368. [bug] , and + were not C++ safe. 3367. [bug] dns_dnsseckey_create() result was not being checked. [RT #30685] @@ -417,6 +527,9 @@ could trigger an assertion failure on startup. [RT #27730] +3361. [bug] "rndc signing -nsec3param" didn't work correctly + when salt was set to '-' (no salt). [RT #30099] + 3360. [bug] 'host -w' could die. [RT #18723] 3359. [bug] An improperly-formed TSIG secret could cause a @@ -428,10 +541,12 @@ approaching their expiry, so they don't remain in caches after expiry. [RT #26429] - --- 9.8.4b1 released --- +3355. [port] Use more portable awk in verify system test. 3354. [func] Improve OpenSSL error logging. [RT #29932] + --- 9.9.2b1 released --- + 3353. [bug] Use a single task for task exclusive operations. [RT #29872] @@ -446,6 +561,8 @@ ISC_MEM_DEBUGCTX memory debugging flag is set. [RT #30240] +3349. [bug] Change #3345 was incomplete. [RT #30233] + 3348. [bug] Prevent RRSIG data from being cached if a negative record matching the covering type exists at a higher trust level. Such data already can't be retrieved from @@ -459,16 +576,42 @@ 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] +3345. [bug] Addressed race condition when removing the last item + or inserting the first item in an ISC_QUEUE. + [RT #29539] + +3344. [func] New "dnssec-checkds" command checks a zone to + determine which DS records should be published + in the parent zone, or which DLV records should be + published in a DLV zone, and queries the DNS to + ensure that it exists. (Note: This tool depends + on python; it will not be built or installed on + systems that do not have a python interpreter.) + [RT #28099] + 3342. [bug] Change #3314 broke saving of stub zones to disk resulting in excessive cpu usage in some cases. [RT #29952] +3341. [func] New "dnssec-verify" command checks a signed zone + to ensure correctness of signatures and of NSEC/NSEC3 + chains. [RT #23673] + +3339. [func] Allow the maximum supported rsa exponent size to be + specified: "max-rsa-exponent-size ;" [RT #29228] + +3338. [bug] Address race condition in units tests: asyncload_zone + and asyncload_zt. [RT #26100] + 3337. [bug] Change #3294 broke support for the multiple keys in controls. [RT #29694] 3335. [func] nslookup: return a nonzero exit code when unable to get an answer. [RT #29492] +3334. [bug] Hold a zone table reference while performing a + asynchronous load of a zone. [RT #28326] + 3333. [bug] Setting resolver-query-timeout too low can cause named to not recover if it loses connectivity. [RT #29623] @@ -504,7 +647,7 @@ 3317. [func] Add ECDSA support (RFC 6605). [RT #21918] - --- 9.8.3 released --- + --- 9.9.1 released --- 3318. [tuning] Reduce the amount of work performed while holding a bucket lock when finished with a fetch context. @@ -536,6 +679,8 @@ 3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps. [RT #28571] +3303. [bug] named could die when reloading. [RT #28606] + 3302. [bug] dns_dnssec_findmatchingkeys could fail to find keys if the zone name contained character that required special mappings. [RT #28600] @@ -549,22 +694,15 @@ 3299. [bug] Make SDB handle errors from database drivers better. [RT #28534] -3232. [bug] Zero zone->curmaster before return in - dns_zone_setmasterswithkeys(). [RT #26732] - -3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] - -3197. [bug] Don't try to log the filename and line number when - the config parser can't open a file. [RT #22263] - - --- 9.8.2 released --- - 3298. [bug] Named could dereference a NULL pointer in zmgr_start_xfrin_ifquota if the zone was being removed. [RT #28419] 3297. [bug] Named could die on a malformed master file. [RT #28467] +3296. [bug] Named could die with a INSIST failure in + client.c:exit_check. [RT #28346] + 3295. [bug] Adjust isc_time_secondsastimet range check to be more portable. [RT # 26542] @@ -576,6 +714,16 @@ 3290. [bug] was not being installed. [RT #28169] +3273. [bug] AAAA responses could be returned in the additional + section even when filter-aaaa-on-v4 was in use. + [RT #27292] + + --- 9.9.0 released --- + + --- 9.9.0rc4 released --- + +3289. [bug] 'rndc retransfer' failed for inline zones. [RT #28036] + 3288. [bug] dlz_destroy() function wasn't correctly registered by the DLZ dlopen driver. [RT #28056] @@ -584,7 +732,7 @@ 3286. [bug] Managed key maintenance timer could fail to start after 'rndc reconfig'. [RT #26786] - --- 9.8.2rc2 released --- + --- 9.9.0rc3 released --- 3285. [bug] val-frdataset was incorrectly disassociated in proveunsecure after calling startfinddlvsep. @@ -607,24 +755,34 @@ 3280. [bug] Potential double free of a rdataset on out of memory with DNS64. [RT #27762] +3279. [bug] Hold a internal reference to the zone while performing + a asynchronous load. Address potential memory leak + if the asynchronous is cancelled. [RT #27750] + 3278. [bug] Make sure automatic key maintenance is started when "auto-dnssec maintain" is turned on during "rndc reconfig". [RT #26805] +3277. [bug] win32: isc_socket_dup is not implemented. [RT #27696] + 3276. [bug] win32: ns_os_openfile failed to return NULL on safe_open failure. [RT #27696] -3274. [bug] Log when a zone is not reusable. Only set loadtime - on successful loads. [RT #27650] - -3273. [bug] AAAA responses could be returned in the additional - section even when filter-aaaa-on-v4 was in use. - [RT #27292] +3275. [bug] Corrected rndc -h output; the 'rndc sync -clean' + option had been misspelled as '-clear'. (To avoid + future confusion, both options now work.) [RT #27173] 3271. [port] darwin: mksymtbl is not always stable, loop several times before giving up. mksymtbl was using non portable perl to covert 64 bit hex strings. [RT #27653] + --- 9.9.0rc2 released --- + +3270. [bug] "rndc reload" didn't reuse existing zones correctly + when inline-signing was in use. [RT #27650] + +3269. [port] darwin 11 and later now built threaded by default. + 3268. [bug] Convert RRSIG expiry times to 64 timestamps to work out the earliest expiry time. [RT #23311] @@ -636,14 +794,26 @@ DNSKEY RRset was not being properly computed. [RT #26543] +3265. [bug] Corrected a problem with lock ordering in the + inline-signing code. [RT #27557] + +3264. [bug] Automatic regeneration of signatures in an + inline-signing zone could stall when the server + was restarted. [RT #27344] + +3263. [bug] "rndc sync" did not affect the unsigned side of an + inline-signing zone. [RT #27337] + 3262. [bug] Signed responses were handled incorrectly by RPZ. [RT #27316] - --- 9.8.2rc1 released --- +3261. [func] RRset ordering now defaults to random. [RT #27174] 3260. [bug] "rrset-order cyclic" could appear not to rotate for some query patterns. [RT #27170/27185] + --- 9.9.0rc1 released --- + 3259. [bug] named-compilezone: Suppress "dump zone to " message when writing to stdout. [RT #27109] @@ -655,12 +825,21 @@ 3256. [bug] Disable empty zones for lwresd -C. [RT #27139] +3255. [func] No longer require that a empty zones be explicitly + enabled or that a empty zone is disabled for + RFC 1918 empty zones to be configured. [RT #27139] + 3254. [bug] Set isc_socket_ipv6only() on the IPv6 control channels. [RT #22249] 3253. [bug] Return DNS_R_SYNTAX when the input to a text field is too long. [RT #26956] +3252. [bug] When master zones using inline-signing were + updated while the server was offline, the source + zone could fall out of sync with the signed + copy. They can now resynchronize. [RT #26676] + 3251. [bug] Enforce a upper bound (65535 bytes) on the amount of memory dns_sdlz_putrr() can allocate per record to prevent run away memory consumption on ISC_R_NOSPACE. @@ -680,8 +859,34 @@ 3247. [bug] 'raw' format zones failed to preserve load order breaking 'fixed' sort order. [RT #27087] -3243. [port] netbsd,bsdi: the thread defaults were not being - properly set. +3246. [bug] Named failed to start with a empty also-notify list. + [RT #27087] + +3245. [bug] Don't report a error unchanged serials unless there + were other changes when thawing a zone with + ixfr-fromdifferences. [RT #26845] + +3244. [func] Added readline support to nslookup and nsupdate. + Also simplified nsupdate syntax to make "update" + and "prereq" optional. [RT #24659] + +3243. [port] freebsd,netbsd,bsdi: the thread defaults were not + being properly set. + +3242. [func] Extended the header of raw-format master files to + include the serial number of the zone from which + they were generated, if different (as in the case + of inline-signing zones). This is to be used in + inline-signing zones, to track changes between the + unsigned and signed versions of the zone, which may + have different serial numbers. + + (Note: raw zonefiles generated by this version of + BIND are no longer compatible with prior versions. + To generate a backward-compatible raw zonefile + using dnssec-signzone or named-compilezone, specify + output format "raw=0" instead of simply "raw".) + [RT #26587] 3241. [bug] Address race conditions in the resolver code. [RT #26889] @@ -696,10 +901,21 @@ 3237. [bug] dig -6 didn't work with +trace. [RT #26906] - --- 9.8.2b1 released --- +3236. [bug] Backed out changes #3182 and #3202, related to + EDNS(0) fallback behavior. [RT #26416] + +3235. [func] dns_db_diffx, a extended dns_db_diff which returns + the generated diff and optionally writes it to a + journal. [RT #26386] 3234. [bug] 'make depend' produced invalid makefiles. [RT #26830] +3233. [bug] 'rndc freeze/thaw' didn't work for inline zones. + [RT #26632] + +3232. [bug] Zero zone->curmaster before return in + dns_zone_setmasterswithkeys(). [RT #26732] + 3231. [bug] named could fail to send a incompressible zone. [RT #26796] @@ -717,14 +933,29 @@ 3226. [bug] Address minor resource leakages. [RT #26624] +3225. [bug] Silence spurious "setsockopt(517, IPV6_V6ONLY) failed" + messages. [RT #26507] + +3224. [bug] 'rndc signing' argument parsing was broken. [RT #26684] + +3223. [bug] 'task_test privilege_drop' generated false positives. + [RT #26766] + +3222. [cleanup] Replace dns_journal_{get,set}_bitws with + dns_journal_{get,set}_sourceserial. [RT #26634] + 3221. [bug] Fixed a potential core dump on shutdown due to referencing fetch context after it's been freed. [RT #26720] + --- 9.9.0b2 released --- + 3220. [bug] Change #3186 was incomplete; dns_db_rpz_findips() could fail to set the database version correctly, causing an assertion failure. [RT #26180] +3219. [bug] Disable NOEDNS caching following a timeout. + 3218. [security] Cache lookup could return RRSIG data associated with nonexistent records, leading to an assertion failure. [RT #26590] @@ -733,12 +964,24 @@ 3216. [bug] resolver.c:validated() was not thread-safe. [RT #26478] +3215. [bug] 'rndc recursing' could cause a core dump. [RT #26495] + +3214. [func] Add 'named -U' option to set the number of UDP + listener threads per interface. [RT #26485] + 3213. [doc] Clarify ixfr-from-differences behavior. [RT #25188] 3212. [bug] rbtdb.c: failed to remove a node from the deadnodes list prior to adding a reference to it leading a possible assertion failure. [RT #23219] +3211. [func] dnssec-signzone: "-f -" prints to stdout; "-O full" + option prints in single-line-per-record format. + [RT #20287] + +3210. [bug] Canceling the oldest query due to recursive-client + overload could trigger an assertion failure. [RT #26463] + 3209. [func] Add "dnssec-lookaside 'no'". [RT #24858] 3208. [bug] 'dig -y' handle unknown tsig algorithm better. @@ -748,6 +991,11 @@ 3206. [cleanup] Add ISC information to log at start time. [RT #25484] +3205. [func] Upgrade dig's defaults to better reflect modern + nameserver behavior. Enable "dig +adflag" and + "dig +edns=0" by default. Enable "+dnssec" when + running "dig +trace". [RT #23497] + 3204. [bug] When a master server that has been marked as unreachable sends a NOTIFY, mark it reachable again. [RT #25960] @@ -755,12 +1003,24 @@ 3203. [bug] Increase log level to 'info' for validation failures from expired or not-yet-valid RRSIGs. [RT #21796] +3202. [bug] NOEDNS caching on timeout was too aggressive. + [RT #26416] + +3201. [func] 'rndc querylog' can now be given an on/off parameter + instead of only being used as a toggle. [RT #18351] + 3200. [doc] Some rndc functions were undocumented or were missing from 'rndc -h' output. [RT #25555] +3199. [func] When logging client information, include the name + being queried. [RT #25944] + 3198. [doc] Clarified that dnssec-settime can alter keyfile permissions. [RT #24866] +3197. [bug] Don't try to log the filename and line number when + the config parser can't open a file. [RT #22263] + 3196. [bug] nsupdate: return nonzero exit code when target zone doesn't exist. [RT #25783] @@ -789,10 +1049,50 @@ 3187. [port] win32: support for Visual Studio 2008. [RT #26356] + --- 9.9.0b1 released --- + 3186. [bug] Version/db mis-match in rpz code. [RT #26180] +3185. [func] New 'rndc signing' option for auto-dnssec zones: + - 'rndc signing -list' displays the current + state of signing operations + - 'rndc signing -clear' clears the signing state + records for keys that have fully signed the zone + - 'rndc signing -nsec3param' sets the NSEC3 + parameters for the zone + The 'rndc keydone' syntax is removed. [RT #23729] + +3184. [bug] named had excessive cpu usage when a redirect zone was + configured. [RT #26013] + +3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] + +3182. [bug] Auth servers behind firewalls which block packets + greater than 512 bytes may cause other servers to + perform poorly. Now, adb retains edns information + and caches noedns servers. [RT #23392/24964] + +3181. [func] Inline-signing is now supported for master zones. + [RT #26224] + +3180. [func] Local copies of slave zones are now saved in raw + format by default, to improve startup performance. + 'masterfile-format text;' can be used to override + the default, if desired. [RT #25867] + 3179. [port] kfreebsd: build issues. [RT #26273] +3178. [bug] A race condition introduced by change #3163 could + cause an assertion failure on shutdown. [RT #26271] + +3177. [func] 'rndc keydone', remove the indicator record that + named has finished signing the zone with the + corresponding key. [RT #26206] + +3176. [doc] Corrected example code and added a README to the + sample external DLZ module in contrib/dlz/example. + [RT #26215] + 3175. [bug] Fix how DNSSEC positive wildcard responses from a NSEC3 signed zone are validated. Stop sending a unnecessary NSEC3 record when generating such @@ -803,9 +1103,14 @@ 3173. [port] Correctly validate root DS responses. [RT #25726] +3172. [port] darwin 10.* and freebsd [89] are now built threaded by + default. + 3171. [bug] Exclusively lock the task when adding a zone using 'rndc addzone'. [RT #25600] + --- 9.9.0a3 released --- + 3170. [func] RPZ update: - fix precedence among competing rules - improve ARM text including documenting rule precedence @@ -820,10 +1125,28 @@ 3169. [func] Catch db/version mis-matches when calling dns_db_*(). [RT #26017] +3168. [bug] Nxdomain redirection could trigger an assert with + a ANY query. [RT #26017] + 3167. [bug] Negative answers from forwarders were not being correctly tagged making them appear to not be cached. [RT #25380] +3166. [bug] Upgrading a zone to support inline-signing failed. + [RT #26014] + +3165. [bug] dnssec-signzone could generate new signatures when + resigning, even when valid signatures were already + present. [RT #26025] + +3164. [func] Enable DLZ modules to retrieve client information, + so that responses can be changed depending on the + source address of the query. [RT #25768] + +3163. [bug] Use finer-grained locking in client.c to address + concurrency problems with large numbers of threads. + [RT #26044] + 3162. [test] start.pl: modified to allow for "named.args" in ns*/ subdirectory to override stock arguments to named. Largely from RT#26044, but no separate ticket. @@ -831,24 +1154,52 @@ 3161. [bug] zone.c:del_sigs failed to always reset rdata leading assertion failures. [RT #25880] +3160. [bug] When printing out a NSEC3 record in multiline form + the newline was not being printed causing type codes + to be run together. [RT #25873] + +3159. [bug] On some platforms, named could assert on startup + when running in a chrooted environment without + /proc. [RT #25863] + +3158. [bug] Recursive servers would prefer a particular UDP + socket instead of using all available sockets. + [RT #26038] + 3157. [tuning] Reduce the time spent in "rndc reconfig" by parsing the config file before pausing the server. [RT #21373] +3156. [placeholder] + + --- 9.9.0a2 released --- + 3155. [bug] Fixed a build failure when using contrib DLZ drivers (e.g., mysql, postgresql, etc). [RT #25710] 3154. [bug] Attempting to print an empty rdataset could trigger an assert. [RT #25452] +3153. [func] Extend request-ixfr to zone level and remove the + side effect of forcing an AXFR. [RT #25156] + 3152. [cleanup] Some versions of gcc and clang failed due to incorrect use of __builtin_expect. [RT #25183] 3151. [bug] Queries for type RRSIG or SIG could be handled incorrectly. [RT #21050] +3150. [func] Improved startup and reconfiguration time by + enabling zones to load in multiple threads. [RT #25333] + +3149. [placeholder] + 3148. [bug] Processing of normal queries could be stalled when forwarding a UPDATE message. [RT #24711] +3147. [func] Initial inline signing support. [RT #23657] + + --- 9.9.0a1 released --- + 3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598] 3145. [test] Capture output of ATF unit tests in "./atf.out" if @@ -859,29 +1210,31 @@ 3143. [bug] Silence clang compiler warnings. [RT #25174] -3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 - for the hashing algorithms (md5, sha1 - sha512, and - their hmac counterparts). [RT #25067] - - --- 9.8.1 released --- - - --- 9.8.1rc1 released --- +3142. [bug] NAPTR is class agnostic. [RT #25429] 3141. [bug] Silence spurious "zone serial (0) unchanged" messages associated with empty zones. [RT #25079] +3140. [func] New command "rndc flushtree " clears the + specified name from the server cache along with + all names under it. [RT #19970] + +3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 + for the hashing algorithms (md5, sha1 - sha512, and + their hmac counterparts). [RT #25067] + 3138. [bug] Address memory leaks and out-of-order operations when shutting named down. [RT #25210] +3137. [func] Improve hardware scalability by allowing multiple + worker threads to process incoming UDP packets. + This can significantly increase query throughput + on some systems. [RT #22992] + 3136. [func] Add RFC 1918 reverse zones to the list of built-in empty zones switched on by the 'empty-zones-enable' option. [RT #24990] - Note: empty-zones-enable must be "yes;" or a empty - zone needs to be disabled in named.conf for RFC 1918 - zones to be activated. This requirement may be - removed in future releases. - 3135. [port] FreeBSD: workaround broken IPV6_USE_MIN_MTU processing. See http://www.freebsd.org/cgi/query-pr.cgi?pr=158307 [RT #24950] @@ -889,19 +1242,34 @@ 3134. [bug] Improve the accuracy of dnssec-signzone's signing statistics. [RT #16030] - --- 9.8.1b3 released --- - 3133. [bug] Change #3114 was incomplete. [RT #24577] +3132. [placeholder] + 3131. [tuning] Improve scalability by allocating one zone task per 100 zones at startup time, rather than using a fixed-size task table. [RT #24406] +3130. [func] Support alternate methods for managing a dynamic + zone's serial number. Two methods are currently + defined using serial-update-method, "increment" + (default) and "unixtime". [RT #23849] + 3129. [bug] Named could crash on 'rndc reconfig' when allow-new-zones was set to yes and named ACLs were used. [RT #22739] - --- 9.8.1b2 released --- +3128. [func] Inserting an NSEC3PARAM via dynamic update in an + auto-dnssec zone that has not been signed yet + will cause it to be signed with the specified NSEC3 + parameters when keys are activated. The + NSEC3PARAM record will not appear in the zone until + it is signed, but the parameters will be stored. + [RT #23684] + +3127. [bug] 'rndc thaw' will now remove a zone's journal file + if the zone serial number has been changed and + ixfr-from-differences is not in use. [RT #24687] 3126. [security] Using DNAME record to generate replacements caused RPZ to exit with a assertion failure. [RT #24766] @@ -941,6 +1309,12 @@ never-implemented 'auto-dnssec create' option. [RT #24533] +3116. [func] New 'dnssec-update-mode' option controls updates + of DNSSEC records in signed dynamic zones. Set to + 'no-resign' to disable automatic RRSIG regeneration + while retaining the ability to sign new or changed + data. [RT #24533] + 3115. [bug] Named could fail to return requested data when following a CNAME that points into the same zone. [RT #24455] @@ -951,8 +1325,6 @@ 3113. [doc] Document the relationship between serial-query-rate and NOTIFY messages. - --- 9.8.1b1 released --- - 3112. [doc] Add missing descriptions of the update policy name types "ms-self", "ms-subdomain", "krb5-self" and "krb5-subdomain", which allow machines to update @@ -965,9 +1337,23 @@ 3110. [bug] dnssec-signzone: Wrong error message could appear when attempting to sign with no KSK. [RT #24369] +3109. [func] The also-notify option now uses the same syntax + as a zone's masters clause. This means it is + now possible to specify a TSIG key to use when + sending notifies to a given server, or to include + an explicit named masters list in an also-notfiy + statement. [RT #23508] + +3108. [cleanup] dnssec-signzone: Clarified some error and + warning messages; removed #ifdef ALLOW_KSKLESS_ZONES + code (use -P instead). [RT #20852] + 3107. [bug] dnssec-signzone: Report the correct number of ZSKs when using -x. [RT #20852] +3106. [func] When logging client requests, include the name of + the TSIG key if any. [RT #23619] + 3105. [bug] GOST support can be suppressed by "configure --without-gost" [RT #24367] @@ -977,6 +1363,12 @@ instead of in the options statement could trigger an assertion failure in named-checkconf. [RT #24382] *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-9@FreeBSD.ORG Mon Aug 26 21:34:44 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E5DA21C7; Mon, 26 Aug 2013 21:34:44 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D10A1228D; Mon, 26 Aug 2013 21:34:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7QLYil5043491; Mon, 26 Aug 2013 21:34:44 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7QLYiot043484; Mon, 26 Aug 2013 21:34:44 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308262134.r7QLYiot043484@svn.freebsd.org> From: "Kenneth D. Merry" Date: Mon, 26 Aug 2013 21:34:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254938 - in stable/9/sys: cam dev/mps sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 21:34:45 -0000 Author: ken Date: Mon Aug 26 21:34:43 2013 New Revision: 254938 URL: http://svnweb.freebsd.org/changeset/base/254938 Log: MFC mps(4) driver changes 253460, 253549, 253550 and 254615. There are some slight changes here from the version in head. __FreeBSD_version has been bumped to 902502 for the inclusion of the PIM_RESCAN CAM path inquiry flag. The ifdefs in the mps(4) driver have been changed accordingly. In head, the TDP_NOSLEEPING thread flag has been removed but it still exists in stable/9. ------------------------------------------------------------------------ r253460 | scottl | 2013-07-18 18:12:41 -0600 (Thu, 18 Jul 2013) | 5 lines Overhaul error, information, and debug logging. Obtained from: Netflix ------------------------------------------------------------------------ r253549 | ken | 2013-07-22 12:37:07 -0600 (Mon, 22 Jul 2013) | 57 lines CAM and mps(4) driver scanning changes. Add a PIM_NOSCAN flag to the CAM path inquiry CCB. This tells CAM not to perform a rescan on a bus when it is registered. We now use this flag in the mps(4) driver. Since it knows what devices it has attached, it is more efficient for it to just issue a target rescan on the targets that are attached. Also, remove the private rescan thread from the mps(4) driver in favor of the rescan thread already built into CAM. Without this change, but with the change above, the MPS scanner could run before or during CAM's initial setup, which would cause duplicate device reprobes and announcements. sys/param.h: Bump __FreeBSD_version to 1000039 for the inclusion of the PIM_RESCAN CAM path inquiry flag. sys/cam/cam_ccb.h: sys/cam/cam_xpt.c: Added a PIM_NOSCAN flag. If a SIM sets this in the path inquiry ccb, then CAM won't rescan the bus in xpt_bus_regsister. sys/dev/mps/mps_sas.c For versions of FreeBSD that have the PIM_NOSCAN path inquiry flag, don't freeze the sim queue during scanning, because CAM won't be scanning this bus. Instead, hold up the boot. Don't call mpssas_rescan_target in mpssas_startup_decrement; it's redundant and I don't know why it was in there. Set PIM_NOSCAN in path inquiry CCBs. Remove methods related to the internal rescan daemon. Always use async events to trigger a probe for EEDP support. In older versions of FreeBSD where AC_ADVINFO_CHANGED is not available, use AC_FOUND_DEVICE and issue the necessary READ CAPACITY manually. Provide a path to xpt_register_async() so that we only receive events for our own SCSI domain. Improve error reporting in cases where setup for EEDP detection fails. sys/dev/mps/mps_sas.h: Remove softc flags and data related to the scanner thread. sys/dev/mps/mps_sas_lsi.c: Unconditionally rescan the target whenever a device is added. Sponsored by: Spectra Logic ------------------------------------------------------------------------ r253550 | ken | 2013-07-22 12:41:53 -0600 (Mon, 22 Jul 2013) | 93 lines Merge in phase 14+ -> 16 mps driver fixes from LSI: --------------------------------------------------------------- System panics during a Port reset with ouststanding I/O --------------------------------------------------------------- It is possible to call mps_mapping_free_memory after this memory is already freed, causing a panic. Removed this extra call to mps_mappiing_free_memory and call mps_mapping_exit in place of the mps_mapping_free_memory call so that any outstanding mapping items can be flushed before memory is freed. --------------------------------------------------------------- Correct memory leak during a Port reset with ouststanding I/O --------------------------------------------------------------- In mps_reinit function, the mapping memory was not being freed before being re-allocated. Added line to call the memory free function for mapping memory. --------------------------------------------------------------- Use CAM_SIM_QUEUED flag in Driver IO path. --------------------------------------------------------------- This flag informs the XPT that successful abort of a CCB requires an abort ccb to be issued to the SIM. While processing SCSI IO's, set the CAM_SIM_QUEUED flag in the status for the IO. When the command completes, clear this flag. --------------------------------------------------------------- Check for CAM_REQ_INPROG in I/O path. --------------------------------------------------------------- Added a check in mpssas_action_scsiio for the In Progress status for the IO. If this flag is set, the IO has already been aborted by the upper layer (before CAM_SIM_QUEUED was set) and there is no need to send the IO. The request will be completed without error. --------------------------------------------------------------- Improve "doorbell handshake method" for mps_get_iocfacts --------------------------------------------------------------- Removed call to get Port Facts since this information is not used currently. Added mps_iocfacts_allocate function to allocate memory that is based on IOC Facts data. Added mps_iocfacts_free function to free memory that is based on IOC Facts data. Both of the functions are used when a Diag Reset is performed or when the driver is attached/detached. This is needed in case IOC Facts changes after a Diag Reset, which could happen if FW is upgraded. Moved call of mps_bases_static_config_pages from the attach routine to after the IOC is ready to process accesses based on the new memory allocations (instead of polling through the Doorbell). --------------------------------------------------------------- Set TimeStamp in INIT message in millisecond format Set the IOC --------------------------------------------------------------- --------------------------------------------------------------- Prefer mps_wait_command to mps_request_polled --------------------------------------------------------------- Instead of using mps_request_polled, call mps_wait_command whenever possible. Change the mps_wait_command function to check the current context and either use interrupt context or poll if required by using the pause or DELAY function. Added a check after waiting 50mSecs to see if the command has timed out. This is only done if polliing, the msleep command will automatically timeout if the command has taken too long to complete. --------------------------------------------------------------- Integrated RAID: Volume Activation Failed error message is displayed though the volume has been activated. --------------------------------------------------------------- Instead of failing an IOCTL request that does not have a large enough buffer to hold the complete reply, copy as much data from the reply as possible into the user's buffer and log a message saying that the user's buffer was smaller than the returned data. --------------------------------------------------------------- mapping_add_new_device failure due to persistent table FULL --------------------------------------------------------------- When a new device is added, if it is determined that the device persistent table is being used and is full, instead of displaying a message for this condition every time, only log a message if the MPS_INFO bit is set in the debug_flags. Submitted by: LSI ------------------------------------------------------------------------ r254615 | ken | 2013-08-21 15:30:56 -0600 (Wed, 21 Aug 2013) | 32 lines Fix mps(4) driver breakage that came in in change 253550 that manifested itself in out of chain frame conditions. When the driver ran out of chain frames, the request in question would get completed early, and go through mpssas_scsiio_complete(). In mpssas_scsiio_complete(), the negation of the CAM status values (CAM_STATUS_MASK | CAM_SIM_QUEUED) was ORed in instead of being ANDed in. This resulted in a bogus CAM CCB status value. This didn't show up in the non-error case, because the status was reset to something valid (e.g. CAM_REQ_CMP) later on in the function. But in the error case, such as when the driver ran out of chain frames, the CAM_REQUEUE_REQ status was ORed in to the bogus status value. This led to the CAM transport layer repeatedly releasing the SIM queue, because it though that the CAM_RELEASE_SIMQ flag had been set. The symptom was messages like this on the console when INVARIANTS were enabled: xpt_release_simq: requested 1 > present 0 xpt_release_simq: requested 1 > present 0 xpt_release_simq: requested 1 > present 0 mps_sas.c: In mpssas_scsiio_complete(), use &= to take status bits out. |= adds them in. In the error case in mpssas_scsiio_complete(), set the status to CAM_REQUEUE_REQ, don't OR it in. Sponsored by: Spectra Logic ------------------------------------------------------------------------ Modified: stable/9/sys/cam/cam_ccb.h stable/9/sys/cam/cam_xpt.c stable/9/sys/dev/mps/mps.c stable/9/sys/dev/mps/mps_config.c stable/9/sys/dev/mps/mps_mapping.c stable/9/sys/dev/mps/mps_pci.c stable/9/sys/dev/mps/mps_sas.c stable/9/sys/dev/mps/mps_sas.h stable/9/sys/dev/mps/mps_sas_lsi.c stable/9/sys/dev/mps/mps_table.c stable/9/sys/dev/mps/mps_user.c stable/9/sys/dev/mps/mpsvar.h stable/9/sys/sys/param.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/sys/cam/cam_ccb.h ============================================================================== --- stable/9/sys/cam/cam_ccb.h Mon Aug 26 21:15:50 2013 (r254937) +++ stable/9/sys/cam/cam_ccb.h Mon Aug 26 21:34:43 2013 (r254938) @@ -578,6 +578,7 @@ typedef enum { PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ PIM_SEQSCAN = 0x04, /* Do bus scans sequentially, not in parallel */ PIM_UNMAPPED = 0x02, + PIM_NOSCAN = 0x01 /* SIM does its own scanning */ } pi_miscflag; /* Path Inquiry CCB */ Modified: stable/9/sys/cam/cam_xpt.c ============================================================================== --- stable/9/sys/cam/cam_xpt.c Mon Aug 26 21:15:50 2013 (r254937) +++ stable/9/sys/cam/cam_xpt.c Mon Aug 26 21:34:43 2013 (r254938) @@ -4012,15 +4012,23 @@ xpt_bus_register(struct cam_sim *sim, de /* Notify interested parties */ if (sim->path_id != CAM_XPT_PATH_ID) { - union ccb *scan_ccb; xpt_async(AC_PATH_REGISTERED, path, &cpi); - /* Initiate bus rescan. */ - scan_ccb = xpt_alloc_ccb_nowait(); - scan_ccb->ccb_h.path = path; - scan_ccb->ccb_h.func_code = XPT_SCAN_BUS; - scan_ccb->crcn.flags = 0; - xpt_rescan(scan_ccb); + if ((cpi.hba_misc & PIM_NOSCAN) == 0) { + union ccb *scan_ccb; + + /* Initiate bus rescan. */ + scan_ccb = xpt_alloc_ccb_nowait(); + if (scan_ccb != NULL) { + scan_ccb->ccb_h.path = path; + scan_ccb->ccb_h.func_code = XPT_SCAN_BUS; + scan_ccb->crcn.flags = 0; + xpt_rescan(scan_ccb); + } else + xpt_print(path, + "Can't allocate CCB to scan bus\n"); + } else + xpt_free_path(path); } else xpt_free_path(path); return (CAM_SUCCESS); Modified: stable/9/sys/dev/mps/mps.c ============================================================================== --- stable/9/sys/dev/mps/mps.c Mon Aug 26 21:15:50 2013 (r254937) +++ stable/9/sys/dev/mps/mps.c Mon Aug 26 21:34:43 2013 (r254938) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -61,6 +62,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include @@ -73,21 +75,29 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include static int mps_diag_reset(struct mps_softc *sc, int sleep_flag); static int mps_init_queues(struct mps_softc *sc); static int mps_message_unit_reset(struct mps_softc *sc, int sleep_flag); static int mps_transition_operational(struct mps_softc *sc); +static int mps_iocfacts_allocate(struct mps_softc *sc, uint8_t attaching); +static void mps_iocfacts_free(struct mps_softc *sc); static void mps_startup(void *arg); static int mps_send_iocinit(struct mps_softc *sc); +static int mps_alloc_queues(struct mps_softc *sc); +static int mps_alloc_replies(struct mps_softc *sc); +static int mps_alloc_requests(struct mps_softc *sc); static int mps_attach_log(struct mps_softc *sc); -static __inline void mps_complete_command(struct mps_command *cm); +static __inline void mps_complete_command(struct mps_softc *sc, + struct mps_command *cm); static void mps_dispatch_event(struct mps_softc *sc, uintptr_t data, MPI2_EVENT_NOTIFICATION_REPLY *reply); static void mps_config_complete(struct mps_softc *sc, struct mps_command *cm); static void mps_periodic(void *); static int mps_reregister_events(struct mps_softc *sc); static void mps_enqueue_request(struct mps_softc *sc, struct mps_command *cm); +static int mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts); static int mps_wait_db_ack(struct mps_softc *sc, int timeout, int sleep_flag); SYSCTL_NODE(_hw, OID_AUTO, mps, CTLFLAG_RD, 0, "MPS Driver Parameters"); @@ -148,7 +158,8 @@ mps_diag_reset(struct mps_softc *sc,int mpt2_reset_magic[i]); /* wait 100 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) - msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, "mpsdiag", hz/10); + msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, + "mpsdiag", hz/10); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/10); else @@ -172,7 +183,8 @@ mps_diag_reset(struct mps_softc *sc,int for (i = 0; i < 60000; i++) { /* wait 50 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) - msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, "mpsdiag", hz/20); + msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, + "mpsdiag", hz/20); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/20); else @@ -195,7 +207,7 @@ static int mps_message_unit_reset(struct mps_softc *sc, int sleep_flag) { - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); mps_regwrite(sc, MPI2_DOORBELL_OFFSET, MPI2_FUNCTION_IOC_MESSAGE_UNIT_RESET << @@ -217,14 +229,14 @@ mps_transition_ready(struct mps_softc *s int error, tries = 0; int sleep_flags; - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); /* If we are in attach call, do not sleep */ sleep_flags = (sc->mps_flags & MPS_FLAGS_ATTACH_DONE) ? CAN_SLEEP:NO_SLEEP; error = 0; while (tries++ < 5) { reg = mps_regread(sc, MPI2_DOORBELL_OFFSET); - mps_dprint(sc, MPS_INFO, "Doorbell= 0x%x\n", reg); + mps_dprint(sc, MPS_INIT, "Doorbell= 0x%x\n", reg); /* * Ensure the IOC is ready to talk. If it's not, try @@ -250,7 +262,7 @@ mps_transition_ready(struct mps_softc *s error = 0; break; } else if (state == MPI2_IOC_STATE_FAULT) { - mps_dprint(sc, MPS_INFO, "IOC in fault state 0x%x\n", + mps_dprint(sc, MPS_FAULT, "IOC in fault state 0x%x, resetting\n", state & MPI2_DOORBELL_FAULT_CODE_MASK); mps_diag_reset(sc, sleep_flags); } else if (state == MPI2_IOC_STATE_OPERATIONAL) { @@ -283,11 +295,11 @@ mps_transition_operational(struct mps_so uint32_t reg, state; int error; - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); error = 0; reg = mps_regread(sc, MPI2_DOORBELL_OFFSET); - mps_dprint(sc, MPS_INFO, "Doorbell= 0x%x\n", reg); + mps_dprint(sc, MPS_INIT, "Doorbell= 0x%x\n", reg); state = reg & MPI2_IOC_STATE_MASK; if (state != MPI2_IOC_STATE_READY) { @@ -302,9 +314,357 @@ mps_transition_operational(struct mps_so return (error); } +/* + * This is called during attach and when re-initializing due to a Diag Reset. + * IOC Facts is used to allocate many of the structures needed by the driver. + * If called from attach, de-allocation is not required because the driver has + * not allocated any structures yet, but if called from a Diag Reset, previously + * allocated structures based on IOC Facts will need to be freed and re- + * allocated bases on the latest IOC Facts. + */ +static int +mps_iocfacts_allocate(struct mps_softc *sc, uint8_t attaching) +{ + int error, i; + Mpi2IOCFactsReply_t saved_facts; + uint8_t saved_mode, reallocating; + struct mpssas_lun *lun, *lun_tmp; + struct mpssas_target *targ; + + mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + + /* Save old IOC Facts and then only reallocate if Facts have changed */ + if (!attaching) { + bcopy(sc->facts, &saved_facts, sizeof(MPI2_IOC_FACTS_REPLY)); + } + + /* + * Get IOC Facts. In all cases throughout this function, panic if doing + * a re-initialization and only return the error if attaching so the OS + * can handle it. + */ + if ((error = mps_get_iocfacts(sc, sc->facts)) != 0) { + if (attaching) { + mps_dprint(sc, MPS_FAULT, "%s failed to get IOC Facts " + "with error %d\n", __func__, error); + return (error); + } else { + panic("%s failed to get IOC Facts with error %d\n", + __func__, error); + } + } + + mps_print_iocfacts(sc, sc->facts); + + snprintf(sc->fw_version, sizeof(sc->fw_version), + "%02d.%02d.%02d.%02d", + sc->facts->FWVersion.Struct.Major, + sc->facts->FWVersion.Struct.Minor, + sc->facts->FWVersion.Struct.Unit, + sc->facts->FWVersion.Struct.Dev); + + mps_printf(sc, "Firmware: %s, Driver: %s\n", sc->fw_version, + MPS_DRIVER_VERSION); + mps_printf(sc, "IOCCapabilities: %b\n", sc->facts->IOCCapabilities, + "\20" "\3ScsiTaskFull" "\4DiagTrace" "\5SnapBuf" "\6ExtBuf" + "\7EEDP" "\10BiDirTarg" "\11Multicast" "\14TransRetry" "\15IR" + "\16EventReplay" "\17RaidAccel" "\20MSIXIndex" "\21HostDisc"); + + /* + * If the chip doesn't support event replay then a hard reset will be + * required to trigger a full discovery. Do the reset here then + * retransition to Ready. A hard reset might have already been done, + * but it doesn't hurt to do it again. Only do this if attaching, not + * for a Diag Reset. + */ + if (attaching) { + if ((sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY) == 0) { + mps_diag_reset(sc, NO_SLEEP); + if ((error = mps_transition_ready(sc)) != 0) { + mps_dprint(sc, MPS_FAULT, "%s failed to " + "transition to ready with error %d\n", + __func__, error); + return (error); + } + } + } + + /* + * Set flag if IR Firmware is loaded. If the RAID Capability has + * changed from the previous IOC Facts, log a warning, but only if + * checking this after a Diag Reset and not during attach. + */ + saved_mode = sc->ir_firmware; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID) + sc->ir_firmware = 1; + if (!attaching) { + if (sc->ir_firmware != saved_mode) { + mps_dprint(sc, MPS_FAULT, "%s new IR/IT mode in IOC " + "Facts does not match previous mode\n", __func__); + } + } + + /* Only deallocate and reallocate if relevant IOC Facts have changed */ + reallocating = FALSE; + if ((!attaching) && + ((saved_facts.MsgVersion != sc->facts->MsgVersion) || + (saved_facts.HeaderVersion != sc->facts->HeaderVersion) || + (saved_facts.MaxChainDepth != sc->facts->MaxChainDepth) || + (saved_facts.RequestCredit != sc->facts->RequestCredit) || + (saved_facts.ProductID != sc->facts->ProductID) || + (saved_facts.IOCCapabilities != sc->facts->IOCCapabilities) || + (saved_facts.IOCRequestFrameSize != + sc->facts->IOCRequestFrameSize) || + (saved_facts.MaxTargets != sc->facts->MaxTargets) || + (saved_facts.MaxSasExpanders != sc->facts->MaxSasExpanders) || + (saved_facts.MaxEnclosures != sc->facts->MaxEnclosures) || + (saved_facts.HighPriorityCredit != sc->facts->HighPriorityCredit) || + (saved_facts.MaxReplyDescriptorPostQueueDepth != + sc->facts->MaxReplyDescriptorPostQueueDepth) || + (saved_facts.ReplyFrameSize != sc->facts->ReplyFrameSize) || + (saved_facts.MaxVolumes != sc->facts->MaxVolumes) || + (saved_facts.MaxPersistentEntries != + sc->facts->MaxPersistentEntries))) { + reallocating = TRUE; + } + + /* + * Some things should be done if attaching or re-allocating after a Diag + * Reset, but are not needed after a Diag Reset if the FW has not + * changed. + */ + if (attaching || reallocating) { + /* + * Check if controller supports FW diag buffers and set flag to + * enable each type. + */ + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_TRACE]. + enabled = TRUE; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_SNAPSHOT]. + enabled = TRUE; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_EXTENDED]. + enabled = TRUE; + + /* + * Set flag if EEDP is supported and if TLR is supported. + */ + if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_EEDP) + sc->eedp_enabled = TRUE; + if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR) + sc->control_TLR = TRUE; + + /* + * Size the queues. Since the reply queues always need one free + * entry, we'll just deduct one reply message here. + */ + sc->num_reqs = MIN(MPS_REQ_FRAMES, sc->facts->RequestCredit); + sc->num_replies = MIN(MPS_REPLY_FRAMES + MPS_EVT_REPLY_FRAMES, + sc->facts->MaxReplyDescriptorPostQueueDepth) - 1; + + /* + * Initialize all Tail Queues + */ + TAILQ_INIT(&sc->req_list); + TAILQ_INIT(&sc->high_priority_req_list); + TAILQ_INIT(&sc->chain_list); + TAILQ_INIT(&sc->tm_list); + } + + /* + * If doing a Diag Reset and the FW is significantly different + * (reallocating will be set above in IOC Facts comparison), then all + * buffers based on the IOC Facts will need to be freed before they are + * reallocated. + */ + if (reallocating) { + mps_iocfacts_free(sc); + + /* + * The number of targets is based on IOC Facts, so free all of + * the allocated LUNs for each target and then the target buffer + * itself. + */ + for (i=0; i< saved_facts.MaxTargets; i++) { + targ = &sc->sassc->targets[i]; + SLIST_FOREACH_SAFE(lun, &targ->luns, lun_link, + lun_tmp) { + free(lun, M_MPT2); + } + } + free(sc->sassc->targets, M_MPT2); + + sc->sassc->targets = malloc(sizeof(struct mpssas_target) * + sc->facts->MaxTargets, M_MPT2, M_WAITOK|M_ZERO); + if (!sc->sassc->targets) { + panic("%s failed to alloc targets with error %d\n", + __func__, ENOMEM); + } + } + + /* + * Any deallocation has been completed. Now start reallocating + * if needed. Will only need to reallocate if attaching or if the new + * IOC Facts are different from the previous IOC Facts after a Diag + * Reset. Targets have already been allocated above if needed. + */ + if (attaching || reallocating) { + if (((error = mps_alloc_queues(sc)) != 0) || + ((error = mps_alloc_replies(sc)) != 0) || + ((error = mps_alloc_requests(sc)) != 0)) { + if (attaching ) { + mps_dprint(sc, MPS_FAULT, "%s failed to alloc " + "queues with error %d\n", __func__, error); + mps_free(sc); + return (error); + } else { + panic("%s failed to alloc queues with error " + "%d\n", __func__, error); + } + } + } + + /* Always initialize the queues */ + bzero(sc->free_queue, sc->fqdepth * 4); + mps_init_queues(sc); + + /* + * Always get the chip out of the reset state, but only panic if not + * attaching. If attaching and there is an error, that is handled by + * the OS. + */ + error = mps_transition_operational(sc); + if (error != 0) { + if (attaching) { + mps_printf(sc, "%s failed to transition to operational " + "with error %d\n", __func__, error); + mps_free(sc); + return (error); + } else { + panic("%s failed to transition to operational with " + "error %d\n", __func__, error); + } + } + + /* + * Finish the queue initialization. + * These are set here instead of in mps_init_queues() because the + * IOC resets these values during the state transition in + * mps_transition_operational(). The free index is set to 1 + * because the corresponding index in the IOC is set to 0, and the + * IOC treats the queues as full if both are set to the same value. + * Hence the reason that the queue can't hold all of the possible + * replies. + */ + sc->replypostindex = 0; + mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); + mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, 0); + + /* + * Attach the subsystems so they can prepare their event masks. + */ + /* XXX Should be dynamic so that IM/IR and user modules can attach */ + if (attaching) { + if (((error = mps_attach_log(sc)) != 0) || + ((error = mps_attach_sas(sc)) != 0) || + ((error = mps_attach_user(sc)) != 0)) { + mps_printf(sc, "%s failed to attach all subsystems: " + "error %d\n", __func__, error); + mps_free(sc); + return (error); + } + + if ((error = mps_pci_setup_interrupts(sc)) != 0) { + mps_printf(sc, "%s failed to setup interrupts\n", + __func__); + mps_free(sc); + return (error); + } + } + + /* + * Set flag if this is a WD controller. This shouldn't ever change, but + * reset it after a Diag Reset, just in case. + */ + sc->WD_available = FALSE; + if (pci_get_device(sc->mps_dev) == MPI2_MFGPAGE_DEVID_SSS6200) + sc->WD_available = TRUE; + + return (error); +} + +/* + * This is called if memory is being free (during detach for example) and when + * buffers need to be reallocated due to a Diag Reset. + */ +static void +mps_iocfacts_free(struct mps_softc *sc) +{ + struct mps_command *cm; + int i; + + mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + + if (sc->post_busaddr != 0) + bus_dmamap_unload(sc->queues_dmat, sc->queues_map); + if (sc->post_queue != NULL) + bus_dmamem_free(sc->queues_dmat, sc->post_queue, + sc->queues_map); + if (sc->queues_dmat != NULL) + bus_dma_tag_destroy(sc->queues_dmat); + + if (sc->chain_busaddr != 0) + bus_dmamap_unload(sc->chain_dmat, sc->chain_map); + if (sc->chain_frames != NULL) + bus_dmamem_free(sc->chain_dmat, sc->chain_frames, + sc->chain_map); + if (sc->chain_dmat != NULL) + bus_dma_tag_destroy(sc->chain_dmat); + + if (sc->sense_busaddr != 0) + bus_dmamap_unload(sc->sense_dmat, sc->sense_map); + if (sc->sense_frames != NULL) + bus_dmamem_free(sc->sense_dmat, sc->sense_frames, + sc->sense_map); + if (sc->sense_dmat != NULL) + bus_dma_tag_destroy(sc->sense_dmat); + + if (sc->reply_busaddr != 0) + bus_dmamap_unload(sc->reply_dmat, sc->reply_map); + if (sc->reply_frames != NULL) + bus_dmamem_free(sc->reply_dmat, sc->reply_frames, + sc->reply_map); + if (sc->reply_dmat != NULL) + bus_dma_tag_destroy(sc->reply_dmat); + + if (sc->req_busaddr != 0) + bus_dmamap_unload(sc->req_dmat, sc->req_map); + if (sc->req_frames != NULL) + bus_dmamem_free(sc->req_dmat, sc->req_frames, sc->req_map); + if (sc->req_dmat != NULL) + bus_dma_tag_destroy(sc->req_dmat); + + if (sc->chains != NULL) + free(sc->chains, M_MPT2); + if (sc->commands != NULL) { + for (i = 1; i < sc->num_reqs; i++) { + cm = &sc->commands[i]; + bus_dmamap_destroy(sc->buffer_dmat, cm->cm_dmamap); + } + free(sc->commands, M_MPT2); + } + if (sc->buffer_dmat != NULL) + bus_dma_tag_destroy(sc->buffer_dmat); +} + /* - * XXX Some of this should probably move to mps.c - * * The terms diag reset and hard reset are used interchangeably in the MPI * docs to mean resetting the controller chip. In this code diag reset * cleans everything up, and the hard reset function just sends the reset @@ -316,27 +676,32 @@ int mps_reinit(struct mps_softc *sc) { int error; - uint32_t db; - mps_printf(sc, "%s sc %p\n", __func__, sc); + MPS_FUNCTRACE(sc); mtx_assert(&sc->mps_mtx, MA_OWNED); if (sc->mps_flags & MPS_FLAGS_DIAGRESET) { - mps_printf(sc, "%s reset already in progress\n", __func__); + mps_dprint(sc, MPS_INIT, "%s reset already in progress\n", + __func__); return 0; } + mps_dprint(sc, MPS_INFO, "Reinitializing controller,\n"); /* make sure the completion callbacks can recognize they're getting * a NULL cm_reply due to a reset. */ sc->mps_flags |= MPS_FLAGS_DIAGRESET; - mps_printf(sc, "%s mask interrupts\n", __func__); + /* + * Mask interrupts here. + */ + mps_dprint(sc, MPS_INIT, "%s mask interrupts\n", __func__); mps_mask_intr(sc); error = mps_diag_reset(sc, CAN_SLEEP); if (error != 0) { + /* XXXSL No need to panic here */ panic("%s hard reset failed with error %d\n", __func__, error); } @@ -347,48 +712,49 @@ mps_reinit(struct mps_softc *sc) /* Give the I/O subsystem special priority to get itself prepared */ mpssas_handle_reinit(sc); - /* reinitialize queues after the reset */ - bzero(sc->free_queue, sc->fqdepth * 4); - mps_init_queues(sc); - - /* get the chip out of the reset state */ - error = mps_transition_operational(sc); - if (error != 0) - panic("%s transition operational failed with error %d\n", + /* + * Get IOC Facts and allocate all structures based on this information. + * The attach function will also call mps_iocfacts_allocate at startup. + * If relevant values have changed in IOC Facts, this function will free + * all of the memory based on IOC Facts and reallocate that memory. + */ + if ((error = mps_iocfacts_allocate(sc, FALSE)) != 0) { + panic("%s IOC Facts based allocation failed with error %d\n", __func__, error); + } - /* Reinitialize the reply queue. This is delicate because this - * function is typically invoked by task mgmt completion callbacks, - * which are called by the interrupt thread. We need to make sure - * the interrupt handler loop will exit when we return to it, and - * that it will recognize the indexes we've changed. + /* + * Mapping structures will be re-allocated after getting IOC Page8, so + * free these structures here. */ - sc->replypostindex = 0; - mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); - mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, sc->replypostindex); - - db = mps_regread(sc, MPI2_DOORBELL_OFFSET); - mps_printf(sc, "%s doorbell 0x%08x\n", __func__, db); - - mps_printf(sc, "%s unmask interrupts post %u free %u\n", __func__, - sc->replypostindex, sc->replyfreeindex); + mps_mapping_exit(sc); + /* + * The static page function currently read is IOC Page8. Others can be + * added in future. It's possible that the values in IOC Page8 have + * changed after a Diag Reset due to user modification, so always read + * these. Interrupts are masked, so unmask them before getting config + * pages. + */ mps_unmask_intr(sc); + sc->mps_flags &= ~MPS_FLAGS_DIAGRESET; + mps_base_static_config_pages(sc); - mps_printf(sc, "%s restarting post %u free %u\n", __func__, - sc->replypostindex, sc->replyfreeindex); + /* + * Some mapping info is based in IOC Page8 data, so re-initialize the + * mapping tables. + */ + mps_mapping_initialize(sc); - /* restart will reload the event masks clobbered by the reset, and + /* + * Restart will reload the event masks clobbered by the reset, and * then enable the port. */ mps_reregister_events(sc); /* the end of discovery will release the simq, so we're done. */ - mps_printf(sc, "%s finished sc %p post %u free %u\n", - __func__, sc, - sc->replypostindex, sc->replyfreeindex); - - sc->mps_flags &= ~MPS_FLAGS_DIAGRESET; + mps_dprint(sc, MPS_INFO, "%s finished sc %p post %u free %u\n", + __func__, sc, sc->replypostindex, sc->replyfreeindex); return 0; } @@ -411,7 +777,7 @@ mps_wait_db_ack(struct mps_softc *sc, in do { int_status = mps_regread(sc, MPI2_HOST_INTERRUPT_STATUS_OFFSET); if (!(int_status & MPI2_HIS_SYS2IOC_DB_STATUS)) { - mps_dprint(sc, MPS_INFO, + mps_dprint(sc, MPS_INIT, "%s: successfull count(%d), timeout(%d)\n", __func__, count, timeout); return 0; @@ -546,7 +912,7 @@ mps_request_sync(struct mps_softc *sc, v count = MIN((reply_sz / 4), ioc_sz) * 2; if (count < ioc_sz * 2) { residual = ioc_sz * 2 - count; - mps_dprint(sc, MPS_FAULT, "Driver error, throwing away %d " + mps_dprint(sc, MPS_ERROR, "Driver error, throwing away %d " "residual message words\n", residual); } @@ -592,7 +958,8 @@ static void mps_enqueue_request(struct mps_softc *sc, struct mps_command *cm) { reply_descriptor rd; - mps_dprint(sc, MPS_TRACE, "%s SMID %u cm %p ccb %p\n", __func__, + MPS_FUNCTRACE(sc); + mps_dprint(sc, MPS_TRACE, "SMID %u cm %p ccb %p\n", cm->cm_desc.Default.SMID, cm, cm->cm_ccb); if (sc->mps_flags & MPS_FLAGS_ATTACH_DONE && !(sc->mps_flags & MPS_FLAGS_SHUTDOWN)) @@ -620,7 +987,7 @@ mps_get_iocfacts(struct mps_softc *sc, M MPI2_IOC_FACTS_REQUEST request; int error, req_sz, reply_sz; - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); req_sz = sizeof(MPI2_IOC_FACTS_REQUEST); reply_sz = sizeof(MPI2_IOC_FACTS_REPLY); @@ -634,50 +1001,15 @@ mps_get_iocfacts(struct mps_softc *sc, M } static int -mps_get_portfacts(struct mps_softc *sc, MPI2_PORT_FACTS_REPLY *facts, int port) -{ - MPI2_PORT_FACTS_REQUEST *request; - MPI2_PORT_FACTS_REPLY *reply; - struct mps_command *cm; - int error; - - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); - - if ((cm = mps_alloc_command(sc)) == NULL) - return (EBUSY); - request = (MPI2_PORT_FACTS_REQUEST *)cm->cm_req; - request->Function = MPI2_FUNCTION_PORT_FACTS; - request->PortNumber = port; - cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; - cm->cm_data = NULL; - error = mps_request_polled(sc, cm); - reply = (MPI2_PORT_FACTS_REPLY *)cm->cm_reply; - if (reply == NULL) { - mps_printf(sc, "%s NULL reply\n", __func__); - goto done; - } - if ((reply->IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) { - mps_printf(sc, - "%s error %d iocstatus 0x%x iocloginfo 0x%x type 0x%x\n", - __func__, error, reply->IOCStatus, reply->IOCLogInfo, - reply->PortType); - error = ENXIO; - } - bcopy(reply, facts, sizeof(MPI2_PORT_FACTS_REPLY)); -done: - mps_free_command(sc, cm); - - return (error); -} - -static int mps_send_iocinit(struct mps_softc *sc) { MPI2_IOC_INIT_REQUEST init; MPI2_DEFAULT_REPLY reply; int req_sz, reply_sz, error; + struct timeval now; + uint64_t time_in_msec; - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); req_sz = sizeof(MPI2_IOC_INIT_REQUEST); reply_sz = sizeof(MPI2_IOC_INIT_REPLY); @@ -704,14 +1036,16 @@ mps_send_iocinit(struct mps_softc *sc) init.ReplyDescriptorPostQueueAddress.Low = htole32((uint32_t)sc->post_busaddr); init.ReplyFreeQueueAddress.High = 0; init.ReplyFreeQueueAddress.Low = htole32((uint32_t)sc->free_busaddr); - init.TimeStamp.High = 0; - init.TimeStamp.Low = htole32((uint32_t)time_uptime); + getmicrotime(&now); + time_in_msec = (now.tv_sec * 1000 + now.tv_usec/1000); + init.TimeStamp.High = htole32((time_in_msec >> 32) & 0xFFFFFFFF); + init.TimeStamp.Low = htole32(time_in_msec & 0xFFFFFFFF); error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) error = ENXIO; - mps_dprint(sc, MPS_INFO, "IOCInit status= 0x%x\n", reply.IOCStatus); + mps_dprint(sc, MPS_INIT, "IOCInit status= 0x%x\n", reply.IOCStatus); return (error); } @@ -1008,7 +1342,7 @@ mps_get_tunables(struct mps_softc *sc) char tmpstr[80]; /* XXX default to some debugging for now */ - sc->mps_debug = MPS_FAULT; + sc->mps_debug = MPS_INFO|MPS_FAULT; sc->disable_msix = 0; sc->disable_msi = 0; sc->max_chains = MPS_CHAIN_FRAMES; @@ -1119,11 +1453,11 @@ mps_setup_sysctl(struct mps_softc *sc) int mps_attach(struct mps_softc *sc) { - int i, error; + int error; mps_get_tunables(sc); - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + MPS_FUNCTRACE(sc); mtx_init(&sc->mps_mtx, "MPT2SAS lock", NULL, MTX_DEF); callout_init_mtx(&sc->periodic, &sc->mps_mtx, 0); @@ -1141,151 +1475,20 @@ mps_attach(struct mps_softc *sc) __func__, __LINE__); return (ENOMEM); } - if ((error = mps_get_iocfacts(sc, sc->facts)) != 0) - return (error); - - mps_print_iocfacts(sc, sc->facts); - - snprintf(sc->fw_version, sizeof(sc->fw_version), - "%02d.%02d.%02d.%02d", - sc->facts->FWVersion.Struct.Major, - sc->facts->FWVersion.Struct.Minor, - sc->facts->FWVersion.Struct.Unit, - sc->facts->FWVersion.Struct.Dev); - - mps_printf(sc, "Firmware: %s, Driver: %s\n", sc->fw_version, - MPS_DRIVER_VERSION); - mps_printf(sc, "IOCCapabilities: %b\n", sc->facts->IOCCapabilities, - "\20" "\3ScsiTaskFull" "\4DiagTrace" "\5SnapBuf" "\6ExtBuf" - "\7EEDP" "\10BiDirTarg" "\11Multicast" "\14TransRetry" "\15IR" - "\16EventReplay" "\17RaidAccel" "\20MSIXIndex" "\21HostDisc"); - - /* - * If the chip doesn't support event replay then a hard reset will be - * required to trigger a full discovery. Do the reset here then - * retransition to Ready. A hard reset might have already been done, - * but it doesn't hurt to do it again. - */ - if ((sc->facts->IOCCapabilities & - MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY) == 0) { - mps_diag_reset(sc, NO_SLEEP); - if ((error = mps_transition_ready(sc)) != 0) - return (error); - } - - /* - * Set flag if IR Firmware is loaded. - */ - if (sc->facts->IOCCapabilities & - MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID) - sc->ir_firmware = 1; /* - * Check if controller supports FW diag buffers and set flag to enable - * each type. - */ - if (sc->facts->IOCCapabilities & - MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER) - sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_TRACE].enabled = - TRUE; - if (sc->facts->IOCCapabilities & - MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER) - sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_SNAPSHOT].enabled = - TRUE; - if (sc->facts->IOCCapabilities & - MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER) - sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_EXTENDED].enabled = - TRUE; - - /* - * Set flag if EEDP is supported and if TLR is supported. - */ - if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_EEDP) - sc->eedp_enabled = TRUE; - if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR) - sc->control_TLR = TRUE; - - /* - * Size the queues. Since the reply queues always need one free entry, - * we'll just deduct one reply message here. - */ - sc->num_reqs = MIN(MPS_REQ_FRAMES, sc->facts->RequestCredit); - sc->num_replies = MIN(MPS_REPLY_FRAMES + MPS_EVT_REPLY_FRAMES, - sc->facts->MaxReplyDescriptorPostQueueDepth) - 1; - TAILQ_INIT(&sc->req_list); - TAILQ_INIT(&sc->high_priority_req_list); - TAILQ_INIT(&sc->chain_list); - TAILQ_INIT(&sc->tm_list); - - if (((error = mps_alloc_queues(sc)) != 0) || - ((error = mps_alloc_replies(sc)) != 0) || - ((error = mps_alloc_requests(sc)) != 0)) { - mps_printf(sc, "%s failed to alloc\n", __func__); - mps_free(sc); - return (error); - } - - if (((error = mps_init_queues(sc)) != 0) || - ((error = mps_transition_operational(sc)) != 0)) { - mps_printf(sc, "%s failed to transition operational\n", __func__); - mps_free(sc); + * Get IOC Facts and allocate all structures based on this information. + * A Diag Reset will also call mps_iocfacts_allocate and re-read the IOC + * Facts. If relevant values have changed in IOC Facts, this function + * will free all of the memory based on IOC Facts and reallocate that + * memory. If this fails, any allocated memory should already be freed. + */ + if ((error = mps_iocfacts_allocate(sc, TRUE)) != 0) { + mps_dprint(sc, MPS_FAULT, "%s IOC Facts based allocation " + "failed with error %d\n", __func__, error); return (error); } - /* - * Finish the queue initialization. - * These are set here instead of in mps_init_queues() because the - * IOC resets these values during the state transition in - * mps_transition_operational(). The free index is set to 1 - * because the corresponding index in the IOC is set to 0, and the - * IOC treats the queues as full if both are set to the same value. - * Hence the reason that the queue can't hold all of the possible - * replies. - */ - sc->replypostindex = 0; - mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); - mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, 0); - - sc->pfacts = malloc(sizeof(MPI2_PORT_FACTS_REPLY) * - sc->facts->NumberOfPorts, M_MPT2, M_ZERO|M_WAITOK); - if(!sc->pfacts) { - device_printf(sc->mps_dev, "Cannot allocate memory %s %d\n", - __func__, __LINE__); - return (ENOMEM); - } - for (i = 0; i < sc->facts->NumberOfPorts; i++) { - if ((error = mps_get_portfacts(sc, &sc->pfacts[i], i)) != 0) { - mps_printf(sc, "%s failed to get portfacts for port %d\n", - __func__, i); - mps_free(sc); - return (error); - } - mps_print_portfacts(sc, &sc->pfacts[i]); - } - - /* Attach the subsystems so they can prepare their event masks. */ - /* XXX Should be dynamic so that IM/IR and user modules can attach */ - if (((error = mps_attach_log(sc)) != 0) || - ((error = mps_attach_sas(sc)) != 0) || - ((error = mps_attach_user(sc)) != 0)) { - mps_printf(sc, "%s failed to attach all subsystems: error %d\n", - __func__, error); - mps_free(sc); - return (error); - } - - if ((error = mps_pci_setup_interrupts(sc)) != 0) { - mps_printf(sc, "%s failed to setup interrupts\n", __func__); - mps_free(sc); - return (error); - } - - /* - * The static page function currently read is ioc page8. Others can be - * added in future. - */ - mps_base_static_config_pages(sc); - /* Start the periodic watchdog check on the IOC Doorbell */ mps_periodic(sc); @@ -1297,7 +1500,7 @@ mps_attach(struct mps_softc *sc) sc->mps_ich.ich_func = mps_startup; sc->mps_ich.ich_arg = sc; if (config_intrhook_establish(&sc->mps_ich) != 0) { - mps_dprint(sc, MPS_FAULT, "Cannot establish MPS config hook\n"); + mps_dprint(sc, MPS_ERROR, "Cannot establish MPS config hook\n"); error = EINVAL; } @@ -1308,7 +1511,7 @@ mps_attach(struct mps_softc *sc) mpssas_ir_shutdown, sc, SHUTDOWN_PRI_DEFAULT); if (sc->shutdown_eh == NULL) - mps_dprint(sc, MPS_FAULT, "shutdown event registration " + mps_dprint(sc, MPS_ERROR, "shutdown event registration " "failed\n"); mps_setup_sysctl(sc); @@ -1328,7 +1531,9 @@ mps_startup(void *arg) mps_lock(sc); mps_unmask_intr(sc); + /* initialize device mapping tables */ + mps_base_static_config_pages(sc); mps_mapping_initialize(sc); mpssas_startup(sc); mps_unlock(sc); @@ -1347,8 +1552,7 @@ mps_periodic(void *arg) db = mps_regread(sc, MPI2_DOORBELL_OFFSET); if ((db & MPI2_IOC_STATE_MASK) == MPI2_IOC_STATE_FAULT) { - device_printf(sc->mps_dev, "IOC Fault 0x%08x, Resetting\n", db); - + mps_dprint(sc, MPS_FAULT, "IOC Fault 0x%08x, Resetting\n", db); mps_reinit(sc); } @@ -1365,12 +1569,13 @@ mps_log_evt_handler(struct mps_softc *sc switch (event->Event) { case MPI2_EVENT_LOG_DATA: - device_printf(sc->mps_dev, "MPI2_EVENT_LOG_DATA:\n"); - hexdump(event->EventData, event->EventDataLength, NULL, 0); + mps_dprint(sc, MPS_EVENT, "MPI2_EVENT_LOG_DATA:\n"); + if (sc->mps_debug & MPS_EVENT) + hexdump(event->EventData, event->EventDataLength, NULL, 0); break; case MPI2_EVENT_LOG_ENTRY_ADDED: entry = (MPI2_EVENT_DATA_LOG_ENTRY_ADDED *)event->EventData; - mps_dprint(sc, MPS_INFO, "MPI2_EVENT_LOG_ENTRY_ADDED event " + mps_dprint(sc, MPS_EVENT, "MPI2_EVENT_LOG_ENTRY_ADDED event " "0x%x Sequence %d:\n", entry->LogEntryQualifier, entry->LogSequence); break; @@ -1411,8 +1616,7 @@ mps_detach_log(struct mps_softc *sc) int mps_free(struct mps_softc *sc) { - struct mps_command *cm; - int i, error; + int error; /* Turn off the watchdog */ mps_lock(sc); @@ -1438,62 +1642,15 @@ mps_free(struct mps_softc *sc) if (sc->facts != NULL) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 03:11:50 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 05F7EC42; Tue, 27 Aug 2013 03:11:50 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E386624E6; Tue, 27 Aug 2013 03:11:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7R3BnKa035342; Tue, 27 Aug 2013 03:11:49 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7R3Bnr0035339; Tue, 27 Aug 2013 03:11:49 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201308270311.r7R3Bnr0035339@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 27 Aug 2013 03:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254947 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 03:11:50 -0000 Author: kib Date: Tue Aug 27 03:11:49 2013 New Revision: 254947 URL: http://svnweb.freebsd.org/changeset/base/254947 Log: Partial MFC of r253927 (by attilio): Remove unnecessary soft busy of the page before to do vn_rdwr() in kern_sendfile() which is unnecessary. MFC note: NFS implementation of VOP_READ() sometimes upgrades the vnode lock, which causes drop of the shared lock and sleep for exclusive. As result, busying of the page before the call to vn_rdwr() makes NFS code to wait for vnode lock while page is busy, which contradicts the proper order of vnode lock -> busy. The r250027, merged as part of r250907, started calling vm_page_grab() under the vnode lock. The page grab waits for the page busy state to drain, which makes the parallel sendfile(2) invocations on the same vnode vulnerable to the LOR described above. Note that r250027 only exposed the problem, which might be caused by other means as well, e.g. by parallel sendfile(2) and truncate(2). Sponsored by: The FreeBSD Foundation Modified: stable/9/sys/kern/uipc_syscalls.c Modified: stable/9/sys/kern/uipc_syscalls.c ============================================================================== --- stable/9/sys/kern/uipc_syscalls.c Tue Aug 27 01:40:13 2013 (r254946) +++ stable/9/sys/kern/uipc_syscalls.c Tue Aug 27 03:11:49 2013 (r254947) @@ -2124,11 +2124,6 @@ retry_space: else { ssize_t resid; - /* - * Ensure that our page is still around - * when the I/O completes. - */ - vm_page_io_start(pg); VM_OBJECT_UNLOCK(obj); /* @@ -2144,10 +2139,8 @@ retry_space: IO_VMIO | ((MAXBSIZE / bsize) << IO_SEQSHIFT), td->td_ucred, NOCRED, &resid, td); VFS_UNLOCK_GIANT(vfslocked); - VM_OBJECT_LOCK(obj); - vm_page_io_finish(pg); - if (!error) - VM_OBJECT_UNLOCK(obj); + if (error) + VM_OBJECT_LOCK(obj); mbstat.sf_iocnt++; } if (error) { From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 03:25:28 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 23233ECD; Tue, 27 Aug 2013 03:25:28 +0000 (UTC) (envelope-from john@saltant.com) Received: from hapkido.dreamhost.com (hapkido.dreamhost.com [66.33.216.122]) by mx1.freebsd.org (Postfix) with ESMTP id 037DE259D; Tue, 27 Aug 2013 03:25:27 +0000 (UTC) Received: from homiemail-a65.g.dreamhost.com (caiajhbdcaib.dreamhost.com [208.97.132.81]) by hapkido.dreamhost.com (Postfix) with ESMTP id 445C0DD24F; Mon, 26 Aug 2013 20:15:53 -0700 (PDT) Received: from homiemail-a65.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a65.g.dreamhost.com (Postfix) with ESMTP id 404957E406F; Mon, 26 Aug 2013 20:15:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=saltant.com; h=message-id :date:from:mime-version:to:cc:subject:content-type; s= saltant.com; bh=sotx0dYHCDpi3Spaov7hvmcXdvU=; b=kTAZaP1agJCLfuMN wi4+YRwQr2suO9VBTqNvmz+WPXddUmX8U+IBKytZaLZPdvpPsIMFuJnlif4iLxLd hP9IjJwYBpTz/34Yed/EHavR2/sEjlSHl3Bza8SXTy0l84W0AsNQ7BkpcsA1rKji zeVu8UIeJ05Pn0qoeCddpDI5oE4= Received: from omnific.local (drivel.saltant.net [72.78.188.146]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: john@saltant.com) by homiemail-a65.g.dreamhost.com (Postfix) with ESMTPSA id EDA8D7E405D; Mon, 26 Aug 2013 20:15:46 -0700 (PDT) Message-ID: <521C19E0.5030407@saltant.com> Date: Mon, 26 Aug 2013 23:15:44 -0400 From: "John W. O'Brien" Organization: Saltant Solutions User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: Ollivier Robert Subject: svn commit: r254859 - stable/9/sys/geom/eli X-Enigmail-Version: 1.5.2 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="3el90GT2UPMVIdp8U5Kwg4eM7mxOgGRlT" Cc: svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 03:25:28 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --3el90GT2UPMVIdp8U5Kwg4eM7mxOgGRlT Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Ollivier, Don't forget r234770 [0] from docs/167382 [1]. [0] http://svnweb.freebsd.org/base?view=3Drevision&revision=3D234770 [1] http://www.freebsd.org/cgi/query-pr.cgi?pr=3Ddocs/167382 Cheers, John P.S. I find it entertaining that I haven't looked at commit logs for over five months, and just happened to recognize this one. :-) --3el90GT2UPMVIdp8U5Kwg4eM7mxOgGRlT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCgAGBQJSHBnkAAoJEBRzAKlhyP/FjmQH/iPwmU4YczLryfVSOseOZW6M NnoBUImhOlKsc3MkzheEBVjqY/CYuJYeHDL1v+2vhTR6SYCZK1D4ZCHjPGwO6WpZ HR1o2h5PUXPemXtBhgjQqtDXwrsB46MQpWR+M1iLKO1jm9S7/5n6qOmGrQpWRJPg 9iSkV69OAzNZNORAh9s5EOS0PYtU4SQW8SANlM4pLb1Uu/oTqA+lVu99ywWNwDvX AK97ta0sa/5dwv8RcXP2sGkiCbVBDzs/9JKNqyq3jIzlFIVmmiIApH7ZFxnARMK6 WliZc0n47OaZowps55dwUpQPVzEN/clADoApAPQo3EHnqbWgZO84IrrMT9jnnaM= =uYWC -----END PGP SIGNATURE----- --3el90GT2UPMVIdp8U5Kwg4eM7mxOgGRlT-- From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 06:31:52 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F0C48CC9; Tue, 27 Aug 2013 06:31:51 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DD7362EA4; Tue, 27 Aug 2013 06:31:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7R6Vp1X048518; Tue, 27 Aug 2013 06:31:51 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7R6VpuR048515; Tue, 27 Aug 2013 06:31:51 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308270631.r7R6VpuR048515@svn.freebsd.org> From: Devin Teske Date: Tue, 27 Aug 2013 06:31:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254953 - stable/9/sys/boot/forth X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 06:31:52 -0000 Author: dteske Date: Tue Aug 27 06:31:50 2013 New Revision: 254953 URL: http://svnweb.freebsd.org/changeset/base/254953 Log: MFC revisions 254942 and 254952: Make alternate layout ``opt-in'' and add support for named releases. Minor edit to version.4th(8) manual and stack-leak fixes while here. Modified: stable/9/sys/boot/forth/beastie.4th stable/9/sys/boot/forth/version.4th stable/9/sys/boot/forth/version.4th.8 Directory Properties: stable/9/sys/ (props changed) stable/9/sys/boot/ (props changed) stable/9/sys/boot/forth/ (props changed) Modified: stable/9/sys/boot/forth/beastie.4th ============================================================================== --- stable/9/sys/boot/forth/beastie.4th Tue Aug 27 06:09:28 2013 (r254952) +++ stable/9/sys/boot/forth/beastie.4th Tue Aug 27 06:31:50 2013 (r254953) @@ -134,7 +134,7 @@ variable logoY \ Move the menu to the center of the screen s" set loader_menu_x=26" evaluate - s" set loader_menu_y=13" evaluate + s" set loader_menu_y=12" evaluate s" set loader_menu_timeout_x=21" evaluate s" set loader_menu_timeout_y=24" evaluate @@ -275,21 +275,9 @@ variable logoY s" loader_logo" getenv dup -1 = if logoX @ logoY @ loader_color? if - s" tribute-logo" - sfind if - execute - else - drop - orb-logo - then + orb-logo else - s" tributebw-logo" - sfind if - execute - else - drop - orbbw-logo - then + orbbw-logo then drop exit then @@ -319,7 +307,7 @@ variable logoY s" tribute-logo" sfind if execute else - orb-logo + drop orb-logo then 2drop exit then @@ -328,7 +316,7 @@ variable logoY s" tributebw-logo" sfind if execute else - orbbw-logo + drop orbbw-logo then 2drop exit then Modified: stable/9/sys/boot/forth/version.4th ============================================================================== --- stable/9/sys/boot/forth/version.4th Tue Aug 27 06:09:28 2013 (r254952) +++ stable/9/sys/boot/forth/version.4th Tue Aug 27 06:31:50 2013 (r254953) @@ -1,4 +1,4 @@ -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -29,6 +29,9 @@ marker task-version.4th variable versionX variable versionY +\ Default $loader_version value if not overridden or using tribute screen +: str_loader_version ( -- C-ADDR/U|-1 ) s" FreeBSD `Nakatomi Socrates' 9.2" ; + \ Initialize text placement to defaults 80 versionX ! \ NOTE: this is the ending column (text is right-justified) 24 versionY ! @@ -43,9 +46,33 @@ variable versionY ?number drop versionY ! -1 then drop - \ Exit if a version was not set + \ Default version if none was set s" loader_version" getenv dup -1 = if - drop exit + drop + \ Default version if no logo is requested + s" loader_logo" getenv dup -1 = if + drop str_loader_version + else + 2dup s" tribute" compare-insensitive 0= if + 2drop + s" tribute-logo" sfind if + drop exit \ see beastie tribute-text + else + drop str_loader_version + then + else 2dup s" tributebw" compare-insensitive 0= if + 2drop + s" tributebw-logo" sfind if + drop exit \ see beastie tribute-text + else + drop str_loader_version + then + else + 2drop str_loader_version + then then + then + then dup -1 = if + drop exit \ default version (above) is disabled then \ Right justify the text Modified: stable/9/sys/boot/forth/version.4th.8 ============================================================================== --- stable/9/sys/boot/forth/version.4th.8 Tue Aug 27 06:09:28 2013 (r254952) +++ stable/9/sys/boot/forth/version.4th.8 Tue Aug 27 06:31:50 2013 (r254953) @@ -91,7 +91,7 @@ causes the version to be printed without .Pq default is ANSI Cyan . .El .Sh FILES -.Bl -tag -width /boot/loader.4th -compact +.Bl -tag -width /boot/version.4th -compact .It Pa /boot/loader The .Xr loader 8 . From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 18:16:50 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B365DE17; Tue, 27 Aug 2013 18:16:50 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 868E12971; Tue, 27 Aug 2013 18:16:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7RIGowY060153; Tue, 27 Aug 2013 18:16:50 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7RIGooN060152; Tue, 27 Aug 2013 18:16:50 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308271816.r7RIGooN060152@svn.freebsd.org> From: Devin Teske Date: Tue, 27 Aug 2013 18:16:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254966 - stable/9/usr.sbin X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 18:16:50 -0000 Author: dteske Date: Tue Aug 27 18:16:50 2013 New Revision: 254966 URL: http://svnweb.freebsd.org/changeset/base/254966 Log: Add missing mergeinfo from head for stabe/9 revisions: 252995 253168 253169 Modified: Directory Properties: stable/9/usr.sbin/ (props changed) stable/9/usr.sbin/Makefile (props changed) stable/9/usr.sbin/bsdconfig/ (props changed) From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 18:27:04 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0CED178; Tue, 27 Aug 2013 18:27:04 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D1A2A29E6; Tue, 27 Aug 2013 18:27:03 +0000 (UTC) Received: from glenbarber.us (unknown [IPv6:2001:470:8:1205:3119:eb32:14c4:b83a]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 3170521BE; Tue, 27 Aug 2013 18:27:02 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 3170521BE Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 27 Aug 2013 14:27:00 -0400 From: Glen Barber To: Devin Teske Subject: Re: svn commit: r254966 - stable/9/usr.sbin Message-ID: <20130827182700.GY49310@glenbarber.us> References: <201308271816.r7RIGooN060152@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5Y5y2FX8vnqwSxRu" Content-Disposition: inline In-Reply-To: <201308271816.r7RIGooN060152@svn.freebsd.org> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 18:27:04 -0000 --5Y5y2FX8vnqwSxRu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 27, 2013 at 06:16:50PM +0000, Devin Teske wrote: > Author: dteske > Date: Tue Aug 27 18:16:50 2013 > New Revision: 254966 > URL: http://svnweb.freebsd.org/changeset/base/254966 >=20 > Log: > Add missing mergeinfo from head for stabe/9 revisions: 252995 253168 25= 3169 >=20 > Modified: > Directory Properties: > stable/9/usr.sbin/ (props changed) > stable/9/usr.sbin/Makefile (props changed) > stable/9/usr.sbin/bsdconfig/ (props changed) This is wrong. usr.sbin should never be a merge target. The correct merge targets in this case are usr.sbin/bsdconfig/share and usr.sbin/bsdconfig. Glen --5Y5y2FX8vnqwSxRu Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iQEcBAEBCAAGBQJSHO90AAoJEFJPDDeguUaje+wIALTQ+JQROx3hzQ1mB51VUft3 Vm6PPWGzDtyBzYibOEjQEr8QerAnVyGrRznnbfz6BK11ppZBrZg3IH9D9S2ns+vh bWHMDBrcPzShqBQWi33jLYCWIsE/1M5v8PWAGHW+z4ZeM5yZjPaIm0oZfeZYPMdc pqWIU43Sr2c6uvJYHbGnquq9DHjewJwZ8Q7y/2MKxjFk5E3Ptx4/mL+iIPrm3u17 aXfBMV76redHbtAMwSNWjfwugcuPx0gzdnEI/E0W/OdtKnZNJr+KB6Bn4nY0DvMS UEn+Yxrt90SJozCe4MD6pPrKCvT5HHklrkVfjWuTI6wD+tOAC0WbZY5Rz7gjOGU= =N3i+ -----END PGP SIGNATURE----- --5Y5y2FX8vnqwSxRu-- From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 18:29:39 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C81EF1EA; Tue, 27 Aug 2013 18:29:39 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 915D329F9; Tue, 27 Aug 2013 18:29:39 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.17]) by ltcfislmsgpa01.fnfis.com (8.14.5/8.14.5) with ESMTP id r7RITcMT010789 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 27 Aug 2013 13:29:38 -0500 Received: from [10.0.0.100] (10.242.181.54) by smtp.fisglobal.com (10.132.206.17) with Microsoft SMTP Server (TLS) id 14.2.309.2; Tue, 27 Aug 2013 13:29:36 -0500 Subject: Re: svn commit: r254966 - stable/9/usr.sbin MIME-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset="us-ascii" From: Devin Teske In-Reply-To: <20130827182700.GY49310@glenbarber.us> Date: Tue, 27 Aug 2013 11:29:28 -0700 Content-Transfer-Encoding: quoted-printable Message-ID: References: <201308271816.r7RIGooN060152@svn.freebsd.org> <20130827182700.GY49310@glenbarber.us> To: Glen Barber X-Mailer: Apple Mail (2.1283) X-Originating-IP: [10.242.181.54] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-08-27_08:2013-08-27,2013-08-27,1970-01-01 signatures=0 Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, Devin Teske , src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 18:29:39 -0000 On Aug 27, 2013, at 11:27 AM, Glen Barber wrote: > On Tue, Aug 27, 2013 at 06:16:50PM +0000, Devin Teske wrote: >> Author: dteske >> Date: Tue Aug 27 18:16:50 2013 >> New Revision: 254966 >> URL: https://urldefense.proofpoint.com/v1/url?u=3Dhttp://svnweb.freebsd.= org/changeset/base/254966&k=3D%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=3DMrjs6= vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=3Dliaz95fhD2jvIKdlVPU7U5L5wSUmvhBIn55r4kCX= nMQ%3D%0A&s=3Dc379f1e4272fc0b90042e434234eaeb4a6ec9a169fefc38babe82b5556cdd= 358 >>=20 >> Log: >> Add missing mergeinfo from head for stabe/9 revisions: 252995 253168 25= 3169 >>=20 >> Modified: >> Directory Properties: >> stable/9/usr.sbin/ (props changed) >> stable/9/usr.sbin/Makefile (props changed) >> stable/9/usr.sbin/bsdconfig/ (props changed) >=20 > This is wrong. usr.sbin should never be a merge target. The correct > merge targets in this case are usr.sbin/bsdconfig/share and > usr.sbin/bsdconfig. >=20 But but... (first... apologies) For clarification... How exactly would someone merge the mergeinfo for the usr.sbin/Makefile? In a separate commit? That seems (not arguing... but...) seems counter-intu= itive to require so much churn for a touch-up. Despite the fact that the commit was done in usr.sbin... The *merges* were actually done at the right level. --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 18:33:23 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3B4704C6; Tue, 27 Aug 2013 18:33:23 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0DED72A71; Tue, 27 Aug 2013 18:33:23 +0000 (UTC) Received: from glenbarber.us (unknown [IPv6:2001:470:8:1205:3119:eb32:14c4:b83a]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id E06A1223A; Tue, 27 Aug 2013 18:33:21 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us E06A1223A Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 27 Aug 2013 14:33:20 -0400 From: Glen Barber To: Devin Teske Subject: Re: svn commit: r254966 - stable/9/usr.sbin Message-ID: <20130827183320.GZ49310@glenbarber.us> References: <201308271816.r7RIGooN060152@svn.freebsd.org> <20130827182700.GY49310@glenbarber.us> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="pqZtgxSH0iQu6R78" Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 18:33:23 -0000 --pqZtgxSH0iQu6R78 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 27, 2013 at 11:29:28AM -0700, Devin Teske wrote: >=20 > On Aug 27, 2013, at 11:27 AM, Glen Barber wrote: >=20 > > On Tue, Aug 27, 2013 at 06:16:50PM +0000, Devin Teske wrote: > >> Author: dteske > >> Date: Tue Aug 27 18:16:50 2013 > >> New Revision: 254966 > >> URL: https://urldefense.proofpoint.com/v1/url?u=3Dhttp://svnweb.freebs= d.org/changeset/base/254966&k=3D%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=3DMrj= s6vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=3Dliaz95fhD2jvIKdlVPU7U5L5wSUmvhBIn55r4k= CXnMQ%3D%0A&s=3Dc379f1e4272fc0b90042e434234eaeb4a6ec9a169fefc38babe82b5556c= dd358 > >>=20 > >> Log: > >> Add missing mergeinfo from head for stabe/9 revisions: 252995 253168 = 253169 > >>=20 > >> Modified: > >> Directory Properties: > >> stable/9/usr.sbin/ (props changed) > >> stable/9/usr.sbin/Makefile (props changed) > >> stable/9/usr.sbin/bsdconfig/ (props changed) > >=20 > > This is wrong. usr.sbin should never be a merge target. The correct > > merge targets in this case are usr.sbin/bsdconfig/share and > > usr.sbin/bsdconfig. > >=20 >=20 > But but... >=20 > (first... apologies) >=20 > For clarification... >=20 > How exactly would someone merge the mergeinfo for the usr.sbin/Makefile? >=20 > In a separate commit? That seems (not arguing... but...) seems counter-in= tuitive > to require so much churn for a touch-up. >=20 > Despite the fact that the commit was done in usr.sbin... >=20 > The *merges* were actually done at the right level. You are right. Sorry for the noise. I misread the commit list referenced in the log. Glen --pqZtgxSH0iQu6R78 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iQEcBAEBCAAGBQJSHPDwAAoJEFJPDDeguUaj+n4IAKbk5dnFsfDmt3fvy3pzODRc cmbM8wQ+67V+iajpUoLhI6m+GieY09AclVonGbZOVrTxytaNWeQKe3a5TtEUXEis SAmNlfbmdBYG9gQXYtIpa9/KY7WbErPCa9BL87o/sf2ptj47TP1HUaQ1s/dez7B/ ae4fSdOmBf3xal3SrhSKj24AuySbKMMnEB7iQyC3N2/EMtaXArBxZmIp/oIxp4DL QcyXC/0h6bYRxOrFss34hclaF/ooKtGjnibkuUvYTurBuCSsqmHAuPb0oSsEqtyi 5X6H7ss4QiGsuNFQU5X5C6v3imTLybK8F3AG1IAvmzGCw0NerCgmpY9Jy84QPUg= =Ziwv -----END PGP SIGNATURE----- --pqZtgxSH0iQu6R78-- From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 20:34:11 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EBB146B; Tue, 27 Aug 2013 20:34:11 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D8F4E20A7; Tue, 27 Aug 2013 20:34:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7RKYBS5041224; Tue, 27 Aug 2013 20:34:11 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7RKYBEI041223; Tue, 27 Aug 2013 20:34:11 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308272034.r7RKYBEI041223@svn.freebsd.org> From: "Kenneth D. Merry" Date: Tue, 27 Aug 2013 20:34:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254971 - stable/9/sys/dev/isp X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 20:34:12 -0000 Author: ken Date: Tue Aug 27 20:34:11 2013 New Revision: 254971 URL: http://svnweb.freebsd.org/changeset/base/254971 Log: MFC 254372: Export the maxio field in the CAM XPT_PATH_INQ CCB in the isp(4) driver. This tells consumers up the stack the maximum I/O size that the controller can handle. The I/O size is bounded by the number of scatter/gather segments the controller can handle and the page size. For an amd64 system, it works out to around 5MB. Reviewed by: mjacob Sponsored by: Spectra Logic Modified: stable/9/sys/dev/isp/isp_freebsd.c Modified: stable/9/sys/dev/isp/isp_freebsd.c ============================================================================== --- stable/9/sys/dev/isp/isp_freebsd.c Tue Aug 27 19:47:03 2013 (r254970) +++ stable/9/sys/dev/isp/isp_freebsd.c Tue Aug 27 20:34:11 2013 (r254971) @@ -5447,6 +5447,11 @@ isp_action(struct cam_sim *sim, union cc cpi->max_target = ISP_MAX_TARGETS(isp) - 1; cpi->max_lun = ISP_MAX_LUNS(isp) - 1; cpi->bus_id = cam_sim_bus(sim); + if (isp->isp_osinfo.sixtyfourbit) + cpi->maxio = (ISP_NSEG64_MAX - 1) * PAGE_SIZE; + else + cpi->maxio = (ISP_NSEG_MAX - 1) * PAGE_SIZE; + bus = cam_sim_bus(xpt_path_sim(cpi->ccb_h.path)); if (IS_FC(isp)) { fcparam *fcp = FCPARAM(isp, bus); From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 20:43:27 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A8FA42A2; Tue, 27 Aug 2013 20:43:27 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7BB97211C; Tue, 27 Aug 2013 20:43:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7RKhRjP046524; Tue, 27 Aug 2013 20:43:27 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7RKhRC0046523; Tue, 27 Aug 2013 20:43:27 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308272043.r7RKhRC0046523@svn.freebsd.org> From: "Kenneth D. Merry" Date: Tue, 27 Aug 2013 20:43:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254972 - in stable/9/sys: . dev dev/isp X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 20:43:27 -0000 Author: ken Date: Tue Aug 27 20:43:27 2013 New Revision: 254972 URL: http://svnweb.freebsd.org/changeset/base/254972 Log: Properly record mergeinfo for the merge of revision 254372 from head into stable/9. This should have been done in change 254971. Pointy hat to: ken Modified: Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/isp/ (props changed) From owner-svn-src-stable-9@FreeBSD.ORG Tue Aug 27 23:02:21 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C035C19C; Tue, 27 Aug 2013 23:02:21 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AC56129CC; Tue, 27 Aug 2013 23:02:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7RN2L1j026519; Tue, 27 Aug 2013 23:02:21 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7RN2KbT026513; Tue, 27 Aug 2013 23:02:20 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308272302.r7RN2KbT026513@svn.freebsd.org> From: "Kenneth D. Merry" Date: Tue, 27 Aug 2013 23:02:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254979 - in stable/9/sys: dev/nvme geom kern sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Aug 2013 23:02:21 -0000 Author: ken Date: Tue Aug 27 23:02:20 2013 New Revision: 254979 URL: http://svnweb.freebsd.org/changeset/base/254979 Log: MFC change 254389: There are some slight differences from the version in FreeBSD/head. __FreeBSD_version has been bumped to 902503 for the availability of the SI_UNMAPPED cdev flag, and the D_UNMAPPED_IO cdevsw flag remains in place. D_UNMAPPED_IO no longer does anything. Drivers that use that flag will just wind up having mapped I/O by default. The impact will only be on performance, not functionality. Change the way that unmapped I/O capability is advertised. The previous method was to set the D_UNMAPPED_IO flag in the cdevsw for the driver. The problem with this is that in many cases (e.g. sa(4)) there may be some instances of the driver that can handle unmapped I/O and some that can't. The isp(4) driver can handle unmapped I/O, but the esp(4) driver currently cannot. The cdevsw is shared among all driver instances. So instead of setting a flag on the cdevsw, set a flag on the cdev. This allows drivers to indicate support for unmapped I/O on a per-instance basis. sys/conf.h: Remove the D_UNMAPPED_IO cdevsw flag and replace it with an SI_UNMAPPED cdev flag. kern_physio.c: Look at the cdev SI_UNMAPPED flag to determine whether or not a particular driver can handle unmapped I/O. geom_dev.c: Set the SI_UNMAPPED flag for all GEOM cdevs. Since GEOM will create a temporary mapping when needed, setting SI_UNMAPPED unconditionally will work. Remove the D_UNMAPPED_IO flag. nvme_ns.c: Set the SI_UNMAPPED flag on cdevs created here if NVME_UNMAPPED_BIO_SUPPORT is enabled. vfs_aio.c: In aio_qphysio(), check the SI_UNMAPPED flag on a cdev instead of the D_UNMAPPED_IO flag on the cdevsw. sys/param.h: Bump __FreeBSD_version to 1000045 for the switch from setting the D_UNMAPPED_IO flag in the cdevsw to setting SI_UNMAPPED in the cdev. Reviewed by: kib, jimharris Sponsored by: Spectra Logic Modified: stable/9/sys/dev/nvme/nvme_ns.c stable/9/sys/geom/geom_dev.c stable/9/sys/kern/kern_physio.c stable/9/sys/kern/vfs_aio.c stable/9/sys/sys/conf.h stable/9/sys/sys/param.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/sys/dev/nvme/nvme_ns.c ============================================================================== --- stable/9/sys/dev/nvme/nvme_ns.c Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/dev/nvme/nvme_ns.c Tue Aug 27 23:02:20 2013 (r254979) @@ -133,11 +133,7 @@ nvme_ns_strategy(struct bio *bp) static struct cdevsw nvme_ns_cdevsw = { .d_version = D_VERSION, -#ifdef NVME_UNMAPPED_BIO_SUPPORT - .d_flags = D_DISK | D_UNMAPPED_IO, -#else .d_flags = D_DISK, -#endif .d_read = physread, .d_write = physwrite, .d_open = nvme_ns_open, @@ -348,6 +344,9 @@ nvme_ns_construct(struct nvme_namespace NULL, UID_ROOT, GID_WHEEL, 0600, "nvme%dns%d", device_get_unit(ctrlr->dev), ns->id); #endif +#ifdef NVME_UNMAPPED_BIO_SUPPORT + ns->cdev->si_flags |= SI_UNMAPPED; +#endif if (ns->cdev != NULL) ns->cdev->si_drv1 = ns; Modified: stable/9/sys/geom/geom_dev.c ============================================================================== --- stable/9/sys/geom/geom_dev.c Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/geom/geom_dev.c Tue Aug 27 23:02:20 2013 (r254979) @@ -79,7 +79,7 @@ static struct cdevsw g_dev_cdevsw = { .d_ioctl = g_dev_ioctl, .d_strategy = g_dev_strategy, .d_name = "g_dev", - .d_flags = D_DISK | D_TRACKCLOSE | D_UNMAPPED_IO, + .d_flags = D_DISK | D_TRACKCLOSE, }; static g_taste_t g_dev_taste; @@ -237,6 +237,7 @@ g_dev_taste(struct g_class *mp, struct g g_free(sc); return (NULL); } + dev->si_flags |= SI_UNMAPPED; sc->sc_dev = dev; /* Search for device alias name and create it if found. */ @@ -251,6 +252,7 @@ g_dev_taste(struct g_class *mp, struct g freeenv(val); make_dev_alias_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, &adev, dev, "%s", buf); + adev->si_flags |= SI_UNMAPPED; break; } } Modified: stable/9/sys/kern/kern_physio.c ============================================================================== --- stable/9/sys/kern/kern_physio.c Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/kern/kern_physio.c Tue Aug 27 23:02:20 2013 (r254979) @@ -93,8 +93,7 @@ physio(struct cdev *dev, struct uio *uio csw = dev->si_devsw; if (uio->uio_segflg == UIO_USERSPACE) { - if (csw != NULL && - (csw->d_flags & D_UNMAPPED_IO) != 0) + if (dev->si_flags & SI_UNMAPPED) mapped = 0; else mapped = 1; Modified: stable/9/sys/kern/vfs_aio.c ============================================================================== --- stable/9/sys/kern/vfs_aio.c Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/kern/vfs_aio.c Tue Aug 27 23:02:20 2013 (r254979) @@ -1333,7 +1333,7 @@ aio_qphysio(struct proc *p, struct aiocb /* * Bring buffer into kernel space. */ - if (vmapbuf(bp, 1) < 0) { + if (vmapbuf(bp, (dev->si_flags & SI_UNMAPPED) == 0) < 0) { error = EFAULT; goto doerror; } Modified: stable/9/sys/sys/conf.h ============================================================================== --- stable/9/sys/sys/conf.h Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/sys/conf.h Tue Aug 27 23:02:20 2013 (r254979) @@ -64,6 +64,7 @@ struct cdev { #define SI_DUMPDEV 0x0080 /* is kernel dumpdev */ #define SI_CANDELETE 0x0100 /* can do BIO_DELETE */ #define SI_CLONELIST 0x0200 /* on a clone list */ +#define SI_UNMAPPED 0x0400 /* can handle unmapped I/O */ struct timespec si_atime; struct timespec si_ctime; struct timespec si_mtime; Modified: stable/9/sys/sys/param.h ============================================================================== --- stable/9/sys/sys/param.h Tue Aug 27 22:37:29 2013 (r254978) +++ stable/9/sys/sys/param.h Tue Aug 27 23:02:20 2013 (r254979) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 902502 /* Master, propagated to newvers */ +#define __FreeBSD_version 902503 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable-9@FreeBSD.ORG Wed Aug 28 19:22:09 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9741FC05; Wed, 28 Aug 2013 19:22:09 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 839E72126; Wed, 28 Aug 2013 19:22:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7SJM9nY032328; Wed, 28 Aug 2013 19:22:09 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7SJM9tq032327; Wed, 28 Aug 2013 19:22:09 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308281922.r7SJM9tq032327@svn.freebsd.org> From: "Kenneth D. Merry" Date: Wed, 28 Aug 2013 19:22:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255000 - stable/9/sys/cam/scsi X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Aug 2013 19:22:09 -0000 Author: ken Date: Wed Aug 28 19:22:09 2013 New Revision: 255000 URL: http://svnweb.freebsd.org/changeset/base/255000 Log: MFC 254416: ------------------------------------------------------------------------ r254416 | ken | 2013-08-16 10:14:32 -0600 (Fri, 16 Aug 2013) | 24 lines Add unmapped I/O and larger I/O support to the sa(4) driver. We now pay attention to the maxio field in the XPT_PATH_INQ CCB, and if it is set, propagate it up to physio via the si_iosize_max field in the cdev structure. We also now pay attention to the PIM_UNMAPPED capability bit in the XPT_PATH_INQ CCB, and set the new SI_UNMAPPED cdev flag when the underlying SIM supports unmapped I/O. scsi_sa.c: Add unmapped I/O support and propagate the SIM's maximum I/O size up. Adjust scsi_tape_read_write() in the same way that scsi_read_write() was changed to support unmapped I/O. We overload the readop parameter with bits that tell us whether it's an unmapped I/O, and we need to set the CAM_DATA_BIO CCB flag. This change should be backwards compatible in source and binary forms. Sponsored by: Spectra Logic Modified: stable/9/sys/cam/scsi/scsi_sa.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/cam/scsi/scsi_sa.c ============================================================================== --- stable/9/sys/cam/scsi/scsi_sa.c Wed Aug 28 19:06:22 2013 (r254999) +++ stable/9/sys/cam/scsi/scsi_sa.c Wed Aug 28 19:22:09 2013 (r255000) @@ -212,6 +212,7 @@ struct sa_softc { sa_state state; sa_flags flags; sa_quirks quirks; + u_int si_flags; struct bio_queue_head bio_queue; int queue_count; struct devstat *device_stats; @@ -221,6 +222,7 @@ struct sa_softc { int blk_shift; u_int32_t max_blk; u_int32_t min_blk; + u_int32_t maxio; u_int32_t comp_algorithm; u_int32_t saved_comp_algorithm; u_int32_t media_blksize; @@ -447,7 +449,7 @@ static struct cdevsw sa_cdevsw = { .d_ioctl = saioctl, .d_strategy = sastrategy, .d_name = "sa", - .d_flags = D_TAPE | D_NEEDGIANT, + .d_flags = D_TAPE, }; static int @@ -1506,10 +1508,29 @@ saregister(struct cam_periph *periph, vo DEVSTAT_BS_UNAVAILABLE, SID_TYPE(&cgd->inq_data) | XPORT_DEVSTAT_TYPE(cpi.transport), DEVSTAT_PRIORITY_TAPE); + /* + * If maxio isn't set, we fall back to DFLTPHYS. If it is set, we + * take it whether or not it's larger than MAXPHYS. physio will + * break it down into pieces small enough to fit in a buffer. + */ + if (cpi.maxio == 0) + softc->maxio = DFLTPHYS; + else + softc->maxio = cpi.maxio; + + /* + * If the SIM supports unmapped I/O, let physio know that we can + * handle unmapped buffers. + */ + if (cpi.hba_misc & PIM_UNMAPPED) + softc->si_flags = SI_UNMAPPED; + softc->devs.ctl_dev = make_dev(&sa_cdevsw, SAMINOR(SA_CTLDEV, 0, SA_ATYPE_R), UID_ROOT, GID_OPERATOR, 0660, "%s%d.ctl", periph->periph_name, periph->unit_number); softc->devs.ctl_dev->si_drv1 = periph; + softc->devs.ctl_dev->si_iosize_max = softc->maxio; + softc->devs.ctl_dev->si_flags |= softc->si_flags; for (i = 0; i < SA_NUM_MODES; i++) { @@ -1518,18 +1539,24 @@ saregister(struct cam_periph *periph, vo UID_ROOT, GID_OPERATOR, 0660, "%s%d.%d", periph->periph_name, periph->unit_number, i); softc->devs.mode_devs[i].r_dev->si_drv1 = periph; + softc->devs.mode_devs[i].r_dev->si_iosize_max = softc->maxio; + softc->devs.mode_devs[i].r_dev->si_flags |= softc->si_flags; softc->devs.mode_devs[i].nr_dev = make_dev(&sa_cdevsw, SAMINOR(SA_NOT_CTLDEV, i, SA_ATYPE_NR), UID_ROOT, GID_OPERATOR, 0660, "n%s%d.%d", periph->periph_name, periph->unit_number, i); softc->devs.mode_devs[i].nr_dev->si_drv1 = periph; + softc->devs.mode_devs[i].nr_dev->si_iosize_max = softc->maxio; + softc->devs.mode_devs[i].nr_dev->si_flags |= softc->si_flags; softc->devs.mode_devs[i].er_dev = make_dev(&sa_cdevsw, SAMINOR(SA_NOT_CTLDEV, i, SA_ATYPE_ER), UID_ROOT, GID_OPERATOR, 0660, "e%s%d.%d", periph->periph_name, periph->unit_number, i); softc->devs.mode_devs[i].er_dev->si_drv1 = periph; + softc->devs.mode_devs[i].er_dev->si_iosize_max = softc->maxio; + softc->devs.mode_devs[i].er_dev->si_flags |= softc->si_flags; /* * Make the (well known) aliases for the first mode. @@ -1540,12 +1567,20 @@ saregister(struct cam_periph *periph, vo alias = make_dev_alias(softc->devs.mode_devs[i].r_dev, "%s%d", periph->periph_name, periph->unit_number); alias->si_drv1 = periph; + alias->si_iosize_max = softc->maxio; + alias->si_flags |= softc->si_flags; + alias = make_dev_alias(softc->devs.mode_devs[i].nr_dev, "n%s%d", periph->periph_name, periph->unit_number); alias->si_drv1 = periph; + alias->si_iosize_max = softc->maxio; + alias->si_flags |= softc->si_flags; + alias = make_dev_alias(softc->devs.mode_devs[i].er_dev, "e%s%d", periph->periph_name, periph->unit_number); alias->si_drv1 = periph; + alias->si_iosize_max = softc->maxio; + alias->si_flags |= softc->si_flags; } } cam_periph_lock(periph); @@ -1694,9 +1729,13 @@ again: softc->dsreg = (bp->bio_cmd == BIO_READ)? MTIO_DSREG_RD : MTIO_DSREG_WR; scsi_sa_read_write(&start_ccb->csio, 0, sadone, - MSG_SIMPLE_Q_TAG, (bp->bio_cmd == BIO_READ), - FALSE, (softc->flags & SA_FLAG_FIXED) != 0, - length, bp->bio_data, bp->bio_bcount, SSD_FULL_SIZE, + MSG_SIMPLE_Q_TAG, (bp->bio_cmd == BIO_READ ? + SCSI_RW_READ : SCSI_RW_WRITE) | + ((bp->bio_flags & BIO_UNMAPPED) != 0 ? + SCSI_RW_BIO : 0), FALSE, + (softc->flags & SA_FLAG_FIXED) != 0, length, + (bp->bio_flags & BIO_UNMAPPED) != 0 ? (void *)bp : + bp->bio_data, bp->bio_bcount, SSD_FULL_SIZE, IO_TIMEOUT); start_ccb->ccb_h.ccb_pflags &= ~SA_POSITION_UPDATED; Set_CCB_Type(start_ccb, SA_CCB_BUFFER_IO); @@ -3431,18 +3470,22 @@ scsi_sa_read_write(struct ccb_scsiio *cs u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout) { struct scsi_sa_rw *scsi_cmd; + int read; + + read = (readop & SCSI_RW_DIRMASK) == SCSI_RW_READ; scsi_cmd = (struct scsi_sa_rw *)&csio->cdb_io.cdb_bytes; - scsi_cmd->opcode = readop ? SA_READ : SA_WRITE; + scsi_cmd->opcode = read ? SA_READ : SA_WRITE; scsi_cmd->sli_fixed = 0; - if (sli && readop) + if (sli && read) scsi_cmd->sli_fixed |= SAR_SLI; if (fixed) scsi_cmd->sli_fixed |= SARW_FIXED; scsi_ulto3b(length, scsi_cmd->length); scsi_cmd->control = 0; - cam_fill_csio(csio, retries, cbfcnp, readop ? CAM_DIR_IN : CAM_DIR_OUT, + cam_fill_csio(csio, retries, cbfcnp, (read ? CAM_DIR_IN : CAM_DIR_OUT) | + ((readop & SCSI_RW_BIO) != 0 ? CAM_DATA_BIO : 0), tag_action, data_ptr, dxfer_len, sense_len, sizeof(*scsi_cmd), timeout); } From owner-svn-src-stable-9@FreeBSD.ORG Thu Aug 29 08:14:54 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 510634D9; Thu, 29 Aug 2013 08:14:54 +0000 (UTC) (envelope-from Andre.Albsmeier@siemens.com) Received: from goliath.siemens.de (goliath.siemens.de [192.35.17.28]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B4CC22E00; Thu, 29 Aug 2013 08:14:53 +0000 (UTC) Received: from mail3.siemens.de (localhost [127.0.0.1]) by goliath.siemens.de (8.13.6/8.13.6) with ESMTP id r7T7uWj2008923; Thu, 29 Aug 2013 09:56:32 +0200 Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130]) by mail3.siemens.de (8.13.6/8.13.6) with ESMTP id r7T7uVXD031666; Thu, 29 Aug 2013 09:56:31 +0200 Received: (from localhost) by curry.mchp.siemens.de (8.14.7/8.14.7) id r7T7uVus053470; Date: Thu, 29 Aug 2013 09:56:31 +0200 From: Andre Albsmeier To: Erwin Lansing Subject: Re: svn commit: r254897 - in stable/9: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec... Message-ID: <20130829075631.GA96113@bali> References: <201308260717.r7Q7HgMF073297@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <201308260717.r7Q7HgMF073297@svn.freebsd.org> X-Echelon: X-Advice: Drop that crappy M$-Outlook, I'm tired of your viruses! User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Aug 2013 08:14:54 -0000 On Mon, 26-Aug-2013 at 07:17:42 +0000, Erwin Lansing wrote: > Author: erwin > Date: Mon Aug 26 07:17:41 2013 > New Revision: 254897 > URL: http://svnweb.freebsd.org/changeset/base/254897 >=20 > Log: > MFC r254651: > =20 > Update Bind to 9.9.3-P2 Thanks! However, when enabling WITH_BIND_SIGCHASE in make.conf I get: cc -O2 -pipe -DVERSION=3D'"9.9.3-P2"' -DHAVE_CONFIG_H -D_REENTRANT -D_THREA= D_SAFE -DOPENSSL -DUSE_MD5 -DNS_LOCALSTATEDIR=3D'"/var"' -DNS_SYSCONFDIR=3D= '"/etc/namedb"' -DNAMED_CONFFILE=3D'"/etc/namedb/named.conf"' -DRNDC_CONFFI= LE=3D'"/etc/namedb/rndc.conf"' -DRNDC_KEYFILE=3D'"/etc/namedb/rndc.key"' -I= /src/src-9/usr.bin/dig/../../lib/bind -DDIG_SIGCHASE -I/src/src-9/usr.bin/d= ig/../../contrib/bind9/lib/bind9/include -I/src/src-9/usr.bin/dig/../../con= trib/bind9/lib/dns/include/dst -I/src/src-9/usr.bin/dig/../../contrib/bind= 9/lib/dns/include -I/src/src-9/usr.bin/dig/../../lib/bind/dns -I/src/src-9= /usr.bin/dig/../../contrib/bind9/lib/isccc/include -I/src/src-9/usr.bin/dig= /../../contrib/bind9/lib/isccfg/include -I/src/src-9/usr.bin/dig/../../cont= rib/bind9/lib/isc/unix/include -I/src/src-9/usr.bin/dig/../../contrib/bind= 9/lib/isc/pthreads/include -I/src/src-9/usr.bin/dig/../../contrib/bind9/li= b/isc/include -I/src/src-9/usr.bin/dig/../../lib/bind/isc -I/src/src-9/usr= =2Ebin/dig/../../contrib/bind9/lib/lwres/unix/include -I/src/src-9/usr.bin= /dig/../../contrib/bind9/lib/lwres/include -I/src/src-9/usr.bin/dig/../../= lib/bind/lwres -I/src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/include= -I/src/src-9/usr.bin/dig/../../contrib/bind9/lib/isc/x86_32/include -UENAB= LE_ALTQ -std=3Dgnu99 -fstack-protector -Wsystem-headers -Werror -Wno-pointe= r-sign -c /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c cc1: warnings being treated as errors /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c: In function '= nameFromString': /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c:4336: warning:= passing argument 2 of 'isc__buffer_init' discards qualifiers from pointer = target type *** [dighost.o] Error code 1 How should we deal with this? Changing the Makefiles of dig, host and nslookup to WARNS?=3D0 or patching dighost.c in contrib/bind9 directly? --- dighost.c.ORI 2013-08-27 08:31:49.000000000 +0200 +++ dighost.c 2013-08-29 09:54:43.000000000 +0200 @@ -4333,7 +4333,7 @@ REQUIRE(p_ret !=3D NULL); REQUIRE(str !=3D NULL); =20 - isc_buffer_init(&buffer, str, len); + isc_buffer_init(&buffer, (char*)str, len); isc_buffer_add(&buffer, len); =20 dns_fixedname_init(&fixedname); Thanks, -Andre From owner-svn-src-stable-9@FreeBSD.ORG Thu Aug 29 09:33:12 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2E3C3DEF; Thu, 29 Aug 2013 09:33:12 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1ABE52339; Thu, 29 Aug 2013 09:33:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7T9XBWL007573; Thu, 29 Aug 2013 09:33:11 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7T9XAc9007563; Thu, 29 Aug 2013 09:33:10 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201308290933.r7T9XAc9007563@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 29 Aug 2013 09:33:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255017 - in stable/9: sbin/geom/class/part sys/geom/part X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Aug 2013 09:33:12 -0000 Author: ae Date: Thu Aug 29 09:33:10 2013 New Revision: 255017 URL: http://svnweb.freebsd.org/changeset/base/255017 Log: MFC r251587 (by marcel): Remove stub implementation. MFC r251588 (by marcel): Change the set and unset ctlreqs by making the index argument optional. This allows setting attributes on tables. One simply does not provide an index in that case. Otherwise the entry corresponding the index has the attribute set or unset. Use this change to fix a relatively longstanding bug in our GPT scheme that's the result of rev 198097 (relatively harmless) followed by rev 237057 (damaging). The damaging part being that our GPT scheme always has the active flag set on the PMBR slice. This is in violation with EFI. Existing EFI implementions for both x86 and ia64 reject the GPT. As such, GPT disks created by us aren't usable under EFI because of that. After this change, GPT disks never have the active flag set on the PMBR slice. In order to make the GPT disk bootable under some x86 BIOSes, the reason of rev 198097, one must now set the active attribute on the gpt table. The kernel will apply this to the PMBR slice For (S)ATA: gpart set -a active ada0 To fix an existing GPT disk that has the active flag set in the PMBR, and that does not need the flag, use (again for (S)ATA): gpart unset -a active ada0 The EBR, MBR & PC98 schemes, which also impement at least 1 attribute, now check to make sure the entry passed is valid. They do not have attributes that apply to the table. Modified: stable/9/sbin/geom/class/part/geom_part.c stable/9/sys/geom/part/g_part.c stable/9/sys/geom/part/g_part_ebr.c stable/9/sys/geom/part/g_part_gpt.c stable/9/sys/geom/part/g_part_ldm.c stable/9/sys/geom/part/g_part_mbr.c stable/9/sys/geom/part/g_part_pc98.c Directory Properties: stable/9/sbin/geom/class/part/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sbin/geom/class/part/geom_part.c ============================================================================== --- stable/9/sbin/geom/class/part/geom_part.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sbin/geom/class/part/geom_part.c Thu Aug 29 09:33:10 2013 (r255017) @@ -147,10 +147,10 @@ struct g_command PUBSYM(class_commands)[ }, { "set", 0, gpart_issue, { { 'a', "attrib", NULL, G_TYPE_STRING }, - { 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER }, + { 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_NUMBER }, { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, G_OPT_SENTINEL }, - "-a attrib -i index [-f flags] geom" + "-a attrib [-i index] [-f flags] geom" }, { "show", 0, gpart_show, { { 'l', "show_label", NULL, G_TYPE_BOOL }, @@ -164,10 +164,10 @@ struct g_command PUBSYM(class_commands)[ }, { "unset", 0, gpart_issue, { { 'a', "attrib", NULL, G_TYPE_STRING }, - { 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER }, + { 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_NUMBER }, { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, G_OPT_SENTINEL }, - "-a attrib -i index [-f flags] geom" + "-a attrib [-i index] [-f flags] geom" }, { "resize", 0, gpart_issue, { { 'a', "alignment", GPART_AUTOFILL, G_TYPE_STRING }, Modified: stable/9/sys/geom/part/g_part.c ============================================================================== --- stable/9/sys/geom/part/g_part.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part.c Thu Aug 29 09:33:10 2013 (r255017) @@ -1348,16 +1348,20 @@ g_part_ctl_setunset(struct gctl_req *req table = gp->softc; - LIST_FOREACH(entry, &table->gpt_entry, gpe_entry) { - if (entry->gpe_deleted || entry->gpe_internal) - continue; - if (entry->gpe_index == gpp->gpp_index) - break; - } - if (entry == NULL) { - gctl_error(req, "%d index '%d'", ENOENT, gpp->gpp_index); - return (ENOENT); - } + if (gpp->gpp_parms & G_PART_PARM_INDEX) { + LIST_FOREACH(entry, &table->gpt_entry, gpe_entry) { + if (entry->gpe_deleted || entry->gpe_internal) + continue; + if (entry->gpe_index == gpp->gpp_index) + break; + } + if (entry == NULL) { + gctl_error(req, "%d index '%d'", ENOENT, + gpp->gpp_index); + return (ENOENT); + } + } else + entry = NULL; error = G_PART_SETUNSET(table, entry, gpp->gpp_attrib, set); if (error) { @@ -1370,8 +1374,11 @@ g_part_ctl_setunset(struct gctl_req *req sb = sbuf_new_auto(); sbuf_printf(sb, "%s %sset on ", gpp->gpp_attrib, (set) ? "" : "un"); - G_PART_FULLNAME(table, entry, sb, gp->name); - sbuf_printf(sb, "\n"); + if (entry) + G_PART_FULLNAME(table, entry, sb, gp->name); + else + sbuf_cat(sb, gp->name); + sbuf_cat(sb, "\n"); sbuf_finish(sb); gctl_set_param(req, "output", sbuf_data(sb), sbuf_len(sb) + 1); sbuf_delete(sb); @@ -1577,8 +1584,8 @@ g_part_ctlreq(struct gctl_req *req, stru case 's': if (!strcmp(verb, "set")) { ctlreq = G_PART_CTL_SET; - mparms |= G_PART_PARM_ATTRIB | G_PART_PARM_GEOM | - G_PART_PARM_INDEX; + mparms |= G_PART_PARM_ATTRIB | G_PART_PARM_GEOM; + oparms |= G_PART_PARM_INDEX; } break; case 'u': @@ -1588,8 +1595,8 @@ g_part_ctlreq(struct gctl_req *req, stru modifies = 0; } else if (!strcmp(verb, "unset")) { ctlreq = G_PART_CTL_UNSET; - mparms |= G_PART_PARM_ATTRIB | G_PART_PARM_GEOM | - G_PART_PARM_INDEX; + mparms |= G_PART_PARM_ATTRIB | G_PART_PARM_GEOM; + oparms |= G_PART_PARM_INDEX; } break; } Modified: stable/9/sys/geom/part/g_part_ebr.c ============================================================================== --- stable/9/sys/geom/part/g_part_ebr.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part_ebr.c Thu Aug 29 09:33:10 2013 (r255017) @@ -540,6 +540,8 @@ g_part_ebr_setunset(struct g_part_table struct g_part_ebr_entry *entry; int changed; + if (baseentry == NULL) + return (ENODEV); if (strcasecmp(attrib, "active") != 0) return (EINVAL); Modified: stable/9/sys/geom/part/g_part_gpt.c ============================================================================== --- stable/9/sys/geom/part/g_part_gpt.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part_gpt.c Thu Aug 29 09:33:10 2013 (r255017) @@ -260,6 +260,16 @@ gpt_map_type(struct uuid *t) return (0); } +static void +gpt_create_pmbr(struct g_part_gpt_table *table, struct g_provider *pp) +{ + + bzero(table->mbr + DOSPARTOFF, DOSPARTSIZE * NDOSPART); + gpt_write_mbr_entry(table->mbr, 0, 0xee, 1, + MIN(pp->mediasize / pp->sectorsize - 1, UINT32_MAX)); + le16enc(table->mbr + DOSMAGICOFFSET, DOSMAGIC); +} + /* * Under Boot Camp the PMBR partition (type 0xEE) doesn't cover the * whole disk anymore. Rather, it covers the GPT table and the EFI @@ -284,7 +294,7 @@ gpt_is_bootcamp(struct g_part_gpt_table } static void -gpt_update_bootcamp(struct g_part_table *basetable) +gpt_update_bootcamp(struct g_part_table *basetable, struct g_provider *pp) { struct g_part_entry *baseentry; struct g_part_gpt_entry *entry; @@ -341,6 +351,7 @@ gpt_update_bootcamp(struct g_part_table disable: table->bootcamp = 0; + gpt_create_pmbr(table, pp); } static struct gpt_hdr * @@ -609,6 +620,8 @@ g_part_gpt_create(struct g_part_table *b pp->sectorsize) return (ENOSPC); + gpt_create_pmbr(table, pp); + /* Allocate space for the header */ table->hdr = g_malloc(sizeof(struct gpt_hdr), M_WAITOK | M_ZERO); @@ -937,9 +950,13 @@ g_part_gpt_read(struct g_part_table *bas static int g_part_gpt_recover(struct g_part_table *basetable) { + struct g_part_gpt_table *table; + struct g_provider *pp; - g_gpt_set_defaults(basetable, - LIST_FIRST(&basetable->gpt_gp->consumer)->provider); + table = (struct g_part_gpt_table *)basetable; + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + gpt_create_pmbr(table, pp); + g_gpt_set_defaults(basetable, pp); basetable->gpt_corrupt = 0; return (0); } @@ -950,6 +967,7 @@ g_part_gpt_setunset(struct g_part_table { struct g_part_gpt_entry *entry; struct g_part_gpt_table *table; + uint8_t *p; uint64_t attr; int i; @@ -957,15 +975,32 @@ g_part_gpt_setunset(struct g_part_table entry = (struct g_part_gpt_entry *)baseentry; if (strcasecmp(attrib, "active") == 0) { - if (!table->bootcamp || baseentry->gpe_index > NDOSPART) - return (EINVAL); - for (i = 0; i < NDOSPART; i++) { - table->mbr[DOSPARTOFF + i * DOSPARTSIZE] = - (i == baseentry->gpe_index - 1) ? 0x80 : 0; + if (table->bootcamp) { + /* The active flag must be set on a valid entry. */ + if (entry == NULL) + return (ENXIO); + if (baseentry->gpe_index > NDOSPART) + return (EINVAL); + for (i = 0; i < NDOSPART; i++) { + p = &table->mbr[DOSPARTOFF + i * DOSPARTSIZE]; + p[0] = (i == baseentry->gpe_index - 1) + ? ((set) ? 0x80 : 0) : 0; + } + } else { + /* The PMBR is marked as active without an entry. */ + if (entry != NULL) + return (ENXIO); + for (i = 0; i < NDOSPART; i++) { + p = &table->mbr[DOSPARTOFF + i * DOSPARTSIZE]; + p[0] = (p[4] == 0xee) ? ((set) ? 0x80 : 0) : 0; + } } return (0); } + if (entry == NULL) + return (ENODEV); + attr = 0; if (strcasecmp(attrib, "bootme") == 0) { attr |= GPT_ENT_ATTR_BOOTME; @@ -1033,17 +1068,7 @@ g_part_gpt_write(struct g_part_table *ba /* Reconstruct the MBR from the GPT if under Boot Camp. */ if (table->bootcamp) - gpt_update_bootcamp(basetable); - - /* Update partition entries in the PMBR if Boot Camp disabled. */ - if (!table->bootcamp) { - bzero(table->mbr + DOSPARTOFF, DOSPARTSIZE * NDOSPART); - gpt_write_mbr_entry(table->mbr, 0, 0xee, 1, - MIN(pp->mediasize / pp->sectorsize - 1, UINT32_MAX)); - /* Mark the PMBR active since some BIOS require it. */ - table->mbr[DOSPARTOFF] = 0x80; - } - le16enc(table->mbr + DOSMAGICOFFSET, DOSMAGIC); + gpt_update_bootcamp(basetable, pp); /* Write the PMBR */ buf = g_malloc(pp->sectorsize, M_WAITOK | M_ZERO); Modified: stable/9/sys/geom/part/g_part_ldm.c ============================================================================== --- stable/9/sys/geom/part/g_part_ldm.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part_ldm.c Thu Aug 29 09:33:10 2013 (r255017) @@ -336,8 +336,6 @@ static const char *g_part_ldm_name(struc char *, size_t); static int g_part_ldm_probe(struct g_part_table *, struct g_consumer *); static int g_part_ldm_read(struct g_part_table *, struct g_consumer *); -static int g_part_ldm_setunset(struct g_part_table *, struct g_part_entry *, - const char *, unsigned int); static const char *g_part_ldm_type(struct g_part_table *, struct g_part_entry *, char *, size_t); static int g_part_ldm_write(struct g_part_table *, struct g_consumer *); @@ -356,7 +354,6 @@ static kobj_method_t g_part_ldm_methods[ KOBJMETHOD(g_part_name, g_part_ldm_name), KOBJMETHOD(g_part_probe, g_part_ldm_probe), KOBJMETHOD(g_part_read, g_part_ldm_read), - KOBJMETHOD(g_part_setunset, g_part_ldm_setunset), KOBJMETHOD(g_part_type, g_part_ldm_type), KOBJMETHOD(g_part_write, g_part_ldm_write), { 0, 0 } @@ -1476,14 +1473,6 @@ gpt_cleanup: return (error); } -static int -g_part_ldm_setunset(struct g_part_table *table, struct g_part_entry *baseentry, - const char *attrib, unsigned int set) -{ - - return (ENOSYS); -} - static const char * g_part_ldm_type(struct g_part_table *basetable, struct g_part_entry *baseentry, char *buf, size_t bufsz) Modified: stable/9/sys/geom/part/g_part_mbr.c ============================================================================== --- stable/9/sys/geom/part/g_part_mbr.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part_mbr.c Thu Aug 29 09:33:10 2013 (r255017) @@ -496,6 +496,8 @@ g_part_mbr_setunset(struct g_part_table struct g_part_mbr_entry *entry; int changed; + if (baseentry == NULL) + return (ENODEV); if (strcasecmp(attrib, "active") != 0) return (EINVAL); Modified: stable/9/sys/geom/part/g_part_pc98.c ============================================================================== --- stable/9/sys/geom/part/g_part_pc98.c Thu Aug 29 08:07:35 2013 (r255016) +++ stable/9/sys/geom/part/g_part_pc98.c Thu Aug 29 09:33:10 2013 (r255017) @@ -498,6 +498,9 @@ g_part_pc98_setunset(struct g_part_table struct g_part_pc98_entry *entry; int changed, mid, sid; + if (baseentry == NULL) + return (ENODEV); + mid = sid = 0; if (strcasecmp(attrib, "active") == 0) sid = 1; From owner-svn-src-stable-9@FreeBSD.ORG Fri Aug 30 05:36:30 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 906FA932; Fri, 30 Aug 2013 05:36:30 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7DE4A25AC; Fri, 30 Aug 2013 05:36:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7U5aULt081572; Fri, 30 Aug 2013 05:36:30 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7U5aUJ0081571; Fri, 30 Aug 2013 05:36:30 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201308300536.r7U5aUJ0081571@svn.freebsd.org> From: Marcel Moolenaar Date: Fri, 30 Aug 2013 05:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255054 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Aug 2013 05:36:30 -0000 Author: marcel Date: Fri Aug 30 05:36:29 2013 New Revision: 255054 URL: http://svnweb.freebsd.org/changeset/base/255054 Log: MFC r253910: Add a tunable for the default timeout. Requested by: rodrigc@, delphij@ Modified: stable/9/sys/kern/vfs_mountroot.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/kern/vfs_mountroot.c ============================================================================== --- stable/9/sys/kern/vfs_mountroot.c Fri Aug 30 03:48:16 2013 (r255053) +++ stable/9/sys/kern/vfs_mountroot.c Fri Aug 30 05:36:29 2013 (r255054) @@ -119,6 +119,7 @@ static int root_mount_complete; /* By default wait up to 3 seconds for devices to appear. */ static int root_mount_timeout = 3; +TUNABLE_INT("vfs.mountroot.timeout", &root_mount_timeout); struct root_hold_token * root_mount_hold(const char *identifier) From owner-svn-src-stable-9@FreeBSD.ORG Fri Aug 30 06:21:55 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 399C132A; Fri, 30 Aug 2013 06:21:55 +0000 (UTC) (envelope-from erwin@mail.droso.net) Received: from mail.droso.net (koala.droso.dk [IPv6:2a01:4f8:a0:7163::2]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F1044286B; Fri, 30 Aug 2013 06:21:54 +0000 (UTC) Received: by mail.droso.net (Postfix, from userid 1001) id 0164374A3; Fri, 30 Aug 2013 08:21:52 +0200 (CEST) Date: Fri, 30 Aug 2013 08:21:52 +0200 From: Erwin Lansing To: Andre Albsmeier Subject: Re: svn commit: r254897 - in stable/9: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec... Message-ID: <20130830062152.GL83309@droso.dk> References: <201308260717.r7Q7HgMF073297@svn.freebsd.org> <20130829075631.GA96113@bali> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20130829075631.GA96113@bali> X-Operating-System: FreeBSD/amd64 9.1-RELEASE User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-9@freebsd.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Aug 2013 06:21:55 -0000 Hi Andre, On Thu, Aug 29, 2013 at 09:56:31AM +0200, Andre Albsmeier wrote: > On Mon, 26-Aug-2013 at 07:17:42 +0000, Erwin Lansing wrote: > > Author: erwin > > Date: Mon Aug 26 07:17:41 2013 > > New Revision: 254897 > > URL: http://svnweb.freebsd.org/changeset/base/254897 > >=20 > > Log: > > MFC r254651: > > =20 > > Update Bind to 9.9.3-P2 >=20 > Thanks! >=20 > However, when enabling WITH_BIND_SIGCHASE in make.conf I get: >=20 > cc -O2 -pipe -DVERSION=3D'"9.9.3-P2"' -DHAVE_CONFIG_H -D_REENTRANT -D_THR= EAD_SAFE -DOPENSSL -DUSE_MD5 -DNS_LOCALSTATEDIR=3D'"/var"' -DNS_SYSCONFDIR= =3D'"/etc/namedb"' -DNAMED_CONFFILE=3D'"/etc/namedb/named.conf"' -DRNDC_CON= FFILE=3D'"/etc/namedb/rndc.conf"' -DRNDC_KEYFILE=3D'"/etc/namedb/rndc.key"'= -I/src/src-9/usr.bin/dig/../../lib/bind -DDIG_SIGCHASE -I/src/src-9/usr.bi= n/dig/../../contrib/bind9/lib/bind9/include -I/src/src-9/usr.bin/dig/../../= contrib/bind9/lib/dns/include/dst -I/src/src-9/usr.bin/dig/../../contrib/b= ind9/lib/dns/include -I/src/src-9/usr.bin/dig/../../lib/bind/dns -I/src/sr= c-9/usr.bin/dig/../../contrib/bind9/lib/isccc/include -I/src/src-9/usr.bin/= dig/../../contrib/bind9/lib/isccfg/include -I/src/src-9/usr.bin/dig/../../c= ontrib/bind9/lib/isc/unix/include -I/src/src-9/usr.bin/dig/../../contrib/b= ind9/lib/isc/pthreads/include -I/src/src-9/usr.bin/dig/../../contrib/bind9= /lib/isc/include -I/src/src-9/usr.bin/dig/../../lib/bind/isc -I/src/src-9/= usr.bin/dig/../../contrib/bind9/lib/lwres/unix/include -I/src/src-9/usr.bi= n/dig/../../contrib/bind9/lib/lwres/include -I/src/src-9/usr.bin/dig/../..= /lib/bind/lwres -I/src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/includ= e -I/src/src-9/usr.bin/dig/../../contrib/bind9/lib/isc/x86_32/include -UENA= BLE_ALTQ -std=3Dgnu99 -fstack-protector -Wsystem-headers -Werror -Wno-point= er-sign -c /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c > cc1: warnings being treated as errors > /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c: In function= 'nameFromString': > /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c:4336: warnin= g: passing argument 2 of 'isc__buffer_init' discards qualifiers from pointe= r target type > *** [dighost.o] Error code 1 >=20 > How should we deal with this? >=20 > Changing the Makefiles of dig, host and nslookup to WARNS?=3D0 > or patching dighost.c in contrib/bind9 directly? >=20 Thanks for the report. I have just reduced WARNS to 0 for those 3 in HEAD and will MFC early next week. Cheers, Erwin From owner-svn-src-stable-9@FreeBSD.ORG Fri Aug 30 08:54:40 2013 Return-Path: Delivered-To: svn-src-stable-9@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B23A762B; Fri, 30 Aug 2013 08:54:40 +0000 (UTC) (envelope-from Andre.Albsmeier@siemens.com) Received: from goliath.siemens.de (goliath.siemens.de [192.35.17.28]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 41018233A; Fri, 30 Aug 2013 08:54:39 +0000 (UTC) Received: from mail2.siemens.de (localhost [127.0.0.1]) by goliath.siemens.de (8.13.6/8.13.6) with ESMTP id r7U8sVsM010454; Fri, 30 Aug 2013 10:54:31 +0200 Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130]) by mail2.siemens.de (8.13.6/8.13.6) with ESMTP id r7U8sVNB012414; Fri, 30 Aug 2013 10:54:31 +0200 Received: (from localhost) by curry.mchp.siemens.de (8.14.7/8.14.7) id r7U8sV2S001603; Date: Fri, 30 Aug 2013 10:54:31 +0200 From: Andre Albsmeier To: Erwin Lansing Subject: Re: svn commit: r254897 - in stable/9: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec... Message-ID: <20130830085431.GA4707@bali> References: <201308260717.r7Q7HgMF073297@svn.freebsd.org> <20130829075631.GA96113@bali> <20130830062152.GL83309@droso.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20130830062152.GL83309@droso.dk> X-Echelon: X-Advice: Drop that crappy M$-Outlook, I'm tired of your viruses! User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, svn-src-stable-9@FreeBSD.org X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Aug 2013 08:54:40 -0000 On Fri, 30-Aug-2013 at 08:21:52 +0200, Erwin Lansing wrote: > Hi Andre, >=20 > On Thu, Aug 29, 2013 at 09:56:31AM +0200, Andre Albsmeier wrote: > > On Mon, 26-Aug-2013 at 07:17:42 +0000, Erwin Lansing wrote: > > > Author: erwin > > > Date: Mon Aug 26 07:17:41 2013 > > > New Revision: 254897 > > > URL: http://svnweb.freebsd.org/changeset/base/254897 > > >=20 > > > Log: > > > MFC r254651: > > > =20 > > > Update Bind to 9.9.3-P2 > >=20 > > Thanks! > >=20 > > However, when enabling WITH_BIND_SIGCHASE in make.conf I get: > >=20 > > cc -O2 -pipe -DVERSION=3D'"9.9.3-P2"' -DHAVE_CONFIG_H -D_REENTRANT -D_T= HREAD_SAFE -DOPENSSL -DUSE_MD5 -DNS_LOCALSTATEDIR=3D'"/var"' -DNS_SYSCONFDI= R=3D'"/etc/namedb"' -DNAMED_CONFFILE=3D'"/etc/namedb/named.conf"' -DRNDC_CO= NFFILE=3D'"/etc/namedb/rndc.conf"' -DRNDC_KEYFILE=3D'"/etc/namedb/rndc.key"= ' -I/src/src-9/usr.bin/dig/../../lib/bind -DDIG_SIGCHASE -I/src/src-9/usr.b= in/dig/../../contrib/bind9/lib/bind9/include -I/src/src-9/usr.bin/dig/../..= /contrib/bind9/lib/dns/include/dst -I/src/src-9/usr.bin/dig/../../contrib/= bind9/lib/dns/include -I/src/src-9/usr.bin/dig/../../lib/bind/dns -I/src/s= rc-9/usr.bin/dig/../../contrib/bind9/lib/isccc/include -I/src/src-9/usr.bin= /dig/../../contrib/bind9/lib/isccfg/include -I/src/src-9/usr.bin/dig/../../= contrib/bind9/lib/isc/unix/include -I/src/src-9/usr.bin/dig/../../contrib/= bind9/lib/isc/pthreads/include -I/src/src-9/usr.bin/dig/../../contrib/bind= 9/lib/isc/include -I/src/src-9/usr.bin/dig/../../lib/bind/isc -I/src/src-9= /usr.bin/dig/../../contrib/bind9/lib/lwres/unix/include -I/src/src-9/usr.b= in/dig/../../contrib/bind9/lib/lwres/include -I/src/src-9/usr.bin/dig/../.= =2E/lib/bind/lwres -I/src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/inc= lude -I/src/src-9/usr.bin/dig/../../contrib/bind9/lib/isc/x86_32/include -U= ENABLE_ALTQ -std=3Dgnu99 -fstack-protector -Wsystem-headers -Werror -Wno-po= inter-sign -c /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c > > cc1: warnings being treated as errors > > /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c: In functi= on 'nameFromString': > > /src/src-9/usr.bin/dig/../../contrib/bind9/bin/dig/dighost.c:4336: warn= ing: passing argument 2 of 'isc__buffer_init' discards qualifiers from poin= ter target type > > *** [dighost.o] Error code 1 > >=20 > > How should we deal with this? > >=20 > > Changing the Makefiles of dig, host and nslookup to WARNS?=3D0 > > or patching dighost.c in contrib/bind9 directly? > >=20 >=20 > Thanks for the report. I have just reduced WARNS to 0 for those 3 in > HEAD and will MFC early next week. Thanks. Maybe we want to ifdef the WARNS setting according to BIND_SIGCHASE? -Andre From owner-svn-src-stable-9@FreeBSD.ORG Fri Aug 30 10:07:11 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 56E7C8FE; Fri, 30 Aug 2013 10:07:11 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 29048278C; Fri, 30 Aug 2013 10:07:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7UA7B4w034170; Fri, 30 Aug 2013 10:07:11 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7UA7AQG034166; Fri, 30 Aug 2013 10:07:10 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308301007.r7UA7AQG034166@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 30 Aug 2013 10:07:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255065 - in stable/9: bin/sh tools/regression/bin/sh/parser X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Aug 2013 10:07:11 -0000 Author: jilles Date: Fri Aug 30 10:07:10 2013 New Revision: 255065 URL: http://svnweb.freebsd.org/changeset/base/255065 Log: MFC r254335: sh: Allow a lone redirection before '|', ';;' or ';&'. Example: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B863CB6F; Fri, 30 Aug 2013 10:10:22 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A50AC27DC; Fri, 30 Aug 2013 10:10:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7UAAMWL035650; Fri, 30 Aug 2013 10:10:22 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7UAAMMJ035649; Fri, 30 Aug 2013 10:10:22 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308301010.r7UAAMMJ035649@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 30 Aug 2013 10:10:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255066 - stable/9/tools/regression/lib/libc/gen X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Aug 2013 10:10:22 -0000 Author: jilles Date: Fri Aug 30 10:10:22 2013 New Revision: 255066 URL: http://svnweb.freebsd.org/changeset/base/255066 Log: MFC r254231: fnmatch(): Add test for r254353 (pattern with single backslash) This test cannot be converted to an sh(1) test because the syntax would be invalid. r254091 was merged to stable/9 as r254353. PR: 181129 Modified: stable/9/tools/regression/lib/libc/gen/test-fnmatch.c Directory Properties: stable/9/tools/regression/lib/libc/ (props changed) Modified: stable/9/tools/regression/lib/libc/gen/test-fnmatch.c ============================================================================== --- stable/9/tools/regression/lib/libc/gen/test-fnmatch.c Fri Aug 30 10:07:10 2013 (r255065) +++ stable/9/tools/regression/lib/libc/gen/test-fnmatch.c Fri Aug 30 10:10:22 2013 (r255066) @@ -135,6 +135,8 @@ struct testcase { "\\[", "\\[", 0, FNM_NOMATCH, "\\(", "\\(", 0, FNM_NOMATCH, "\\a", "\\a", 0, FNM_NOMATCH, + "\\", "\\", 0, FNM_NOMATCH, + "\\", "", 0, 0, "\\*", "\\*", FNM_NOESCAPE, 0, "\\?", "\\?", FNM_NOESCAPE, 0, "\\", "\\", FNM_NOESCAPE, 0, @@ -236,6 +238,8 @@ write_sh_tests(const char *progname, int if (strchr(t->pattern, '\'') != NULL || strchr(t->string, '\'') != NULL) continue; + if (t->flags == 0 && strcmp(t->pattern, "\\") == 0) + continue; if (num == 1 && t->flags == 0) printf("test%smatch '%s' '%s'\n", t->result == FNM_NOMATCH ? "no" : "", From owner-svn-src-stable-9@FreeBSD.ORG Sat Aug 31 17:33:26 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5D36392A; Sat, 31 Aug 2013 17:33:26 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 49F862C6E; Sat, 31 Aug 2013 17:33:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7VHXQsU019664; Sat, 31 Aug 2013 17:33:26 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7VHXQRS019663; Sat, 31 Aug 2013 17:33:26 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201308311733.r7VHXQRS019663@svn.freebsd.org> From: Kirk McKusick Date: Sat, 31 Aug 2013 17:33:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255103 - stable/9/sys/ufs/ffs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Aug 2013 17:33:26 -0000 Author: mckusick Date: Sat Aug 31 17:33:25 2013 New Revision: 255103 URL: http://svnweb.freebsd.org/changeset/base/255103 Log: MFC of 253973: To better understand performance problems with journalled soft updates, we need to collect the highest level of allocation for each of the different soft update dependency structures. This change collects these statistics and makes them available using `sysctl debug.softdep.highuse'. Reviewed by: kib Tested by: Peter Holm MFC of 253974: With the addition of journalled soft updates, the "newblk" structures persist much longer than previously. Historically we had at most 100 entries; now the count may reach a million. With the increased count we spent far too much time looking them up in the grossly undersized newblk hash table. Configure the newblk hash table to accurately reflect the number of entries that it must index. Reviewed by: kib Tested by: Peter Holm MFC after: 2 weeks Modified: stable/9/sys/ufs/ffs/ffs_softdep.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- stable/9/sys/ufs/ffs/ffs_softdep.c Sat Aug 31 17:22:43 2013 (r255102) +++ stable/9/sys/ufs/ffs/ffs_softdep.c Sat Aug 31 17:33:25 2013 (r255103) @@ -660,14 +660,16 @@ FEATURE(softupdates, "FFS soft-updates s #define D_LAST D_SENTINEL unsigned long dep_current[D_LAST + 1]; +unsigned long dep_highuse[D_LAST + 1]; unsigned long dep_total[D_LAST + 1]; unsigned long dep_write[D_LAST + 1]; - static SYSCTL_NODE(_debug, OID_AUTO, softdep, CTLFLAG_RW, 0, "soft updates stats"); static SYSCTL_NODE(_debug_softdep, OID_AUTO, total, CTLFLAG_RW, 0, "total dependencies allocated"); +static SYSCTL_NODE(_debug_softdep, OID_AUTO, highuse, CTLFLAG_RW, 0, + "high use dependencies allocated"); static SYSCTL_NODE(_debug_softdep, OID_AUTO, current, CTLFLAG_RW, 0, "current dependencies allocated"); static SYSCTL_NODE(_debug_softdep, OID_AUTO, write, CTLFLAG_RW, 0, @@ -679,6 +681,8 @@ static SYSCTL_NODE(_debug_softdep, OID_A &dep_total[D_ ## type], 0, ""); \ SYSCTL_ULONG(_debug_softdep_current, OID_AUTO, str, CTLFLAG_RD, \ &dep_current[D_ ## type], 0, ""); \ + SYSCTL_ULONG(_debug_softdep_highuse, OID_AUTO, str, CTLFLAG_RD, \ + &dep_highuse[D_ ## type], 0, ""); \ SYSCTL_ULONG(_debug_softdep_write, OID_AUTO, str, CTLFLAG_RD, \ &dep_write[D_ ## type], 0, ""); @@ -1203,8 +1207,12 @@ jwork_insert(dst, jsegdep) */ static void workitem_free(struct worklist *, int); static void workitem_alloc(struct worklist *, int, struct mount *); +static void workitem_reassign(struct worklist *, int); -#define WORKITEM_FREE(item, type) workitem_free((struct worklist *)(item), (type)) +#define WORKITEM_FREE(item, type) \ + workitem_free((struct worklist *)(item), (type)) +#define WORKITEM_REASSIGN(item, type) \ + workitem_reassign((struct worklist *)(item), (type)) static void workitem_free(item, type) @@ -1218,16 +1226,22 @@ workitem_free(item, type) if (item->wk_state & ONWORKLIST) panic("workitem_free: %s(0x%X) still on list", TYPENAME(item->wk_type), item->wk_state); - if (item->wk_type != type) + if (item->wk_type != type && type != D_NEWBLK) panic("workitem_free: type mismatch %s != %s", TYPENAME(item->wk_type), TYPENAME(type)); #endif if (item->wk_state & IOWAITING) wakeup(item); ump = VFSTOUFS(item->wk_mp); + KASSERT(ump->softdep_deps > 0, + ("workitem_free: %s: softdep_deps going negative", + ump->um_fs->fs_fsmnt)); if (--ump->softdep_deps == 0 && ump->softdep_req) wakeup(&ump->softdep_deps); - dep_current[type]--; + KASSERT(dep_current[item->wk_type] > 0, + ("workitem_free: %s: dep_current[%s] going negative", + ump->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); + dep_current[item->wk_type]--; free(item, DtoM(type)); } @@ -1246,12 +1260,31 @@ workitem_alloc(item, type, mp) ump = VFSTOUFS(mp); ACQUIRE_LOCK(&lk); dep_current[type]++; + if (dep_current[type] > dep_highuse[type]) + dep_highuse[type] = dep_current[type]; dep_total[type]++; ump->softdep_deps++; ump->softdep_accdeps++; FREE_LOCK(&lk); } +static void +workitem_reassign(item, newtype) + struct worklist *item; + int newtype; +{ + + KASSERT(dep_current[item->wk_type] > 0, + ("workitem_reassign: %s: dep_current[%s] going negative", + VFSTOUFS(item->wk_mp)->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); + dep_current[item->wk_type]--; + dep_current[newtype]++; + if (dep_current[newtype] > dep_highuse[newtype]) + dep_highuse[newtype] = dep_current[newtype]; + dep_total[newtype]++; + item->wk_type = newtype; +} + /* * Workitem queue management */ @@ -2365,7 +2398,7 @@ softdep_initialize() max_softdeps = desiredvnodes * 4; pagedep_hashtbl = hashinit(desiredvnodes / 5, M_PAGEDEP, &pagedep_hash); inodedep_hashtbl = hashinit(desiredvnodes, M_INODEDEP, &inodedep_hash); - newblk_hashtbl = hashinit(desiredvnodes / 5, M_NEWBLK, &newblk_hash); + newblk_hashtbl = hashinit(max_softdeps / 2, M_NEWBLK, &newblk_hash); bmsafemap_hashtbl = hashinit(1024, M_BMSAFEMAP, &bmsafemap_hash); i = 1 << (ffs(desiredvnodes / 10) - 1); indir_hashtbl = malloc(i * sizeof(indir_hashtbl[0]), M_FREEWORK, @@ -5129,7 +5162,7 @@ softdep_setup_allocdirect(ip, off, newbl /* * Convert the newblk to an allocdirect. */ - newblk->nb_list.wk_type = D_ALLOCDIRECT; + WORKITEM_REASSIGN(newblk, D_ALLOCDIRECT); adp = (struct allocdirect *)newblk; newblk->nb_freefrag = freefrag; adp->ad_offset = off; @@ -5485,7 +5518,7 @@ softdep_setup_allocext(ip, off, newblkno /* * Convert the newblk to an allocdirect. */ - newblk->nb_list.wk_type = D_ALLOCDIRECT; + WORKITEM_REASSIGN(newblk, D_ALLOCDIRECT); adp = (struct allocdirect *)newblk; newblk->nb_freefrag = freefrag; adp->ad_offset = off; @@ -5594,7 +5627,7 @@ newallocindir(ip, ptrno, newblkno, oldbl panic("new_allocindir: lost block"); KASSERT(newblk->nb_list.wk_type == D_NEWBLK, ("newallocindir: newblk already initialized")); - newblk->nb_list.wk_type = D_ALLOCINDIR; + WORKITEM_REASSIGN(newblk, D_ALLOCINDIR); newblk->nb_freefrag = freefrag; aip = (struct allocindir *)newblk; aip->ai_offset = ptrno; @@ -7227,7 +7260,9 @@ free_newblk(newblk) struct worklist *wk; KASSERT(newblk->nb_jnewblk == NULL, - ("free_newblk; jnewblk %p still attached", newblk->nb_jnewblk)); + ("free_newblk: jnewblk %p still attached", newblk->nb_jnewblk)); + KASSERT(newblk->nb_list.wk_type != D_NEWBLK, + ("free_newblk: unclaimed newblk")); mtx_assert(&lk, MA_OWNED); newblk_freefrag(newblk); if (newblk->nb_state & ONDEPLIST) @@ -7242,7 +7277,6 @@ free_newblk(newblk) while ((indirdep = LIST_FIRST(&newblk->nb_indirdeps)) != NULL) indirdep_complete(indirdep); handle_jwork(&newblk->nb_jwork); - newblk->nb_list.wk_type = D_NEWBLK; WORKITEM_FREE(newblk, D_NEWBLK); } From owner-svn-src-stable-9@FreeBSD.ORG Sat Aug 31 17:38:49 2013 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9BB9ABD1; Sat, 31 Aug 2013 17:38:49 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 88A462C9B; Sat, 31 Aug 2013 17:38:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7VHcnEG021633; Sat, 31 Aug 2013 17:38:49 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7VHcnRR021632; Sat, 31 Aug 2013 17:38:49 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201308311738.r7VHcnRR021632@svn.freebsd.org> From: Kirk McKusick Date: Sat, 31 Aug 2013 17:38:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255104 - stable/9/sys/ufs/ufs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Aug 2013 17:38:49 -0000 Author: mckusick Date: Sat Aug 31 17:38:49 2013 New Revision: 255104 URL: http://svnweb.freebsd.org/changeset/base/255104 Log: MFC of 253998: This bug fix is in a code path in rename taken when there is a collision between a rename and an open system call for the same target file. Here, rename releases its vnode references, waits for the open to finish, and then restarts by reacquiring its needed vnode locks. In this case, rename was unlocking but failing to release its reference to one of its held vnodes. The effect was that even after all the actual references to the vnode had gone, the vnode still showed active references. For files that had been removed, their space was not reclaimed until the filesystem was forcibly unmounted. This bug manifested itself in the Postgres server which would leak/lose hundreds of files per day amounting to many gigabytes of disk space. This bug required shutting down Postgres, forcibly unmounting its filesystem, remounting its filesystem and restarting Postgres every few days to recover the lost space. Reported by: Dan Thomas and Palle Girgensohn Bug-fix by: kib Tested by: Dan Thomas and Palle Girgensohn Modified: stable/9/sys/ufs/ufs/ufs_vnops.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- stable/9/sys/ufs/ufs/ufs_vnops.c Sat Aug 31 17:33:25 2013 (r255103) +++ stable/9/sys/ufs/ufs/ufs_vnops.c Sat Aug 31 17:38:49 2013 (r255104) @@ -1271,7 +1271,7 @@ relock: error = VFS_VGET(mp, ino, LK_EXCLUSIVE, &nvp); if (error != 0) goto releout; - VOP_UNLOCK(nvp, 0); + vput(nvp); atomic_add_int(&rename_restarts, 1); goto relock; }