From owner-freebsd-hackers@FreeBSD.ORG Tue Mar 17 22:06:50 2015 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 64C50691 for ; Tue, 17 Mar 2015 22:06:50 +0000 (UTC) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0704227A for ; Tue, 17 Mar 2015 22:06:49 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.9/8.14.9) with ESMTP id t2HM6iTU003747 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 18 Mar 2015 00:06:44 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t2HM6iTU003747 Received: (from kostik@localhost) by tom.home (8.14.9/8.14.9/Submit) id t2HM6iDn003746; Wed, 18 Mar 2015 00:06:44 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 18 Mar 2015 00:06:44 +0200 From: Konstantin Belousov To: Michael Fuckner Subject: Re: Server with 3TB Crashing at boot Message-ID: <20150317220644.GQ2379@kib.kiev.ua> References: <20150316091758.GY2379@kib.kiev.ua> <5506ADA4.8020207@fuckner.net> <20150316103140.GA2379@kib.kiev.ua> <5506B23F.20400@fuckner.net> <20150316105301.GB2379@kib.kiev.ua> <5506E8D6.30703@fuckner.net> <20150316154022.GD2379@kib.kiev.ua> <55072195.40609@fuckner.net> <20150316185602.GJ2379@kib.kiev.ua> <5507E525.4000209@fuckner.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5507E525.4000209@fuckner.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on tom.home Cc: "freebsd-hackers@freebsd.org" , Ryan Stone , Steven Hartland X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2015 22:06:50 -0000 On Tue, Mar 17, 2015 at 09:26:13AM +0100, Michael Fuckner wrote: > >> > >> At least I figured out how to remove the empty Lines (Ctrl-a, shift-A). > >> Don't run minicom inside a screen ;-) > > I do not quite understand why such programs as minicom are needed at all. > > Isn't tip (AKA cu) good enough ? > OK, I'll test cu+tee for logging. Basicially I like cu, but logging with > minicom is quite easy > > > > Please add the following patch to the kernel. > > > > diff --git a/sys/x86/iommu/intel_gas.c b/sys/x86/iommu/intel_gas.c > > it looks like this with the gas patch. > > > http://dedi3.fuckner.net/~molli123/temp/head-ixgbe-gas.txt So machine booted, right ? Do network and non-nvme HBAs function correctly ? > > but when I do nvmecontrol devlist, I get a panic again > http://dedi3.fuckner.net/~molli123/temp/nvme.log I committed the hardening of some assert that supposedly could catch the situation earlier. Also I committed the boundary fix. Please update the head to at least r280196. Since there were conflicting changes to ixgbe, below is the re-merged patch to fix NULL dereference. diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c index b16301d..79a5f92 100644 --- a/sys/dev/ixgbe/ix_txrx.c +++ b/sys/dev/ixgbe/ix_txrx.c @@ -1040,7 +1040,6 @@ ixgbe_txeof(struct tx_ring *txr) buf->map); m_freem(buf->m_head); buf->m_head = NULL; - buf->map = NULL; } buf->eop = NULL; ++txr->tx_avail; @@ -1066,7 +1065,6 @@ ixgbe_txeof(struct tx_ring *txr) buf->map); m_freem(buf->m_head); buf->m_head = NULL; - buf->map = NULL; } ++txr->tx_avail; buf->eop = NULL; @@ -1386,8 +1384,7 @@ ixgbe_allocate_receive_buffers(struct rx_ring *rxr) for (i = 0; i < rxr->num_desc; i++, rxbuf++) { rxbuf = &rxr->rx_buffers[i]; - error = bus_dmamap_create(rxr->ptag, - BUS_DMA_NOWAIT, &rxbuf->pmap); + error = bus_dmamap_create(rxr->ptag, 0, &rxbuf->pmap); if (error) { device_printf(dev, "Unable to create RX dma map\n"); goto fail;