From owner-freebsd-fs@FreeBSD.ORG Tue Oct 9 19:40:55 2007 Return-Path: Delivered-To: freebsd-fs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19C9D16A418; Tue, 9 Oct 2007 19:40:55 +0000 (UTC) (envelope-from darrenr@freebsd.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id DF96513C48D; Tue, 9 Oct 2007 19:40:54 +0000 (UTC) (envelope-from darrenr@freebsd.org) Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id 80B5B321E4; Tue, 9 Oct 2007 15:40:54 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute1.internal (MEProxy); Tue, 09 Oct 2007 15:40:54 -0400 X-Sasl-enc: vkEOe1rImmQifY0I5ICdQWIvM18CYX1cZtL+e23qBSPq 1191958854 Received: from [192.168.1.235] (64-142-85-108.dsl.dynamic.sonic.net [64.142.85.108]) by mail.messagingengine.com (Postfix) with ESMTP id 99A495639; Tue, 9 Oct 2007 15:40:53 -0400 (EDT) Message-ID: <470BD961.4000407@freebsd.org> Date: Tue, 09 Oct 2007 12:41:21 -0700 From: Darren Reed User-Agent: Thunderbird 2.0.0.0 (Windows/20070326) MIME-Version: 1.0 To: Pawel Jakub Dawidek References: <20071005000046.GC92272@garage.freebsd.pl> <20071008121523.GM2327@garage.freebsd.pl> In-Reply-To: <20071008121523.GM2327@garage.freebsd.pl> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-fs@FreeBSD.org, freebsd-current@FreeBSD.org Subject: Re: ZFS kmem_map too small. X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Oct 2007 19:40:55 -0000 Pawel Jakub Dawidek wrote: > Here are some updates: > > I was able to reproduce the panic by rsyncing big files and trying > bonnie++ test suggested in this thread. > > Can you guys retry with this patch: > > http://people.freebsd.org/~pjd/patches/vm_kern.c.2.patch > So, I have a question... What happens if the "for (i = 0..)" is changed to "while(1)" and the "panic" is subsequently removed? It appears like the code changes the meaning of "WAIT" to "wait for 4 seconds" then panic if it won't work. Previously, "WAIT" was not waiting at all...whch could be described as a bug! If I recall correctly, ZFS caches writes and doe them in spurts and that those spurts are spaced out more than 4 seconds. (For the curious, do "zpool status" and observe the gap in time between write activity.) If you start a large amount of I/O, it is possible that all the KVA will be used up and ZFS will not get a chance to flush its buffers before the 4s timer here expires. Does that sound plausible? Would doubling the 8 to (say) 16 be beneficial here, to at least make the waiting span one ZFS flush out to disk? Darren