From owner-freebsd-stable@FreeBSD.ORG Tue Mar 8 21:24:16 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8D4EA1065703; Tue, 8 Mar 2011 21:24:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 621758FC1B; Tue, 8 Mar 2011 21:24:16 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 168D346B91; Tue, 8 Mar 2011 16:24:16 -0500 (EST) Received: from jhbbsd.localnet (unknown [209.249.190.10]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A0BD58A01B; Tue, 8 Mar 2011 16:24:15 -0500 (EST) From: John Baldwin To: freebsd-stable@freebsd.org Date: Tue, 8 Mar 2011 09:15:29 -0500 User-Agent: KMail/1.13.5 (FreeBSD/7.4-CBSD-20110107; KDE/4.4.5; amd64; ; ) References: <4D760AEC.7050604@digiware.nl> In-Reply-To: <4D760AEC.7050604@digiware.nl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103080915.29284.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Tue, 08 Mar 2011 16:24:15 -0500 (EST) Cc: Alan Cox , Willem Jan Withagen Subject: Re: panic on vm_page_cache_transfer: object 0xfffffff0035508000's type is not compatible with cache pages X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2011 21:24:16 -0000 On Tuesday, March 08, 2011 5:54:36 am Willem Jan Withagen wrote: > System: > > FreeBSD zfs.digiware.nl 8.2-STABLE FreeBSD 8.2-STABLE #1: Sat Feb 26 > 06:28:43 CET 2011 > root@zfs.digiware.nl:/usr/obj/usr/src/src8/src/sys/ZFS amd64 > > Don't have a serial console, so I wrote down the traceback. > But my guess is that that is not enough, however I needed the system so > I rebooted. > > tb: > vm_object_split at .... +0x125 > vm_space_fork at .... +0x3f7 > fork1 at .... +0x6a9 > fork at .... +0xee > syscall_entr at .... +1c > syscall at .... +4c > > rip = 0x8006bc39c > rsp = 0x7fffffffe9d8 > rbp = 0x800a04470 > > It looks a lot like what I find on > http://people.freebsd.org/~pho/stress/log/kostik079.html > > But my system is amd64, with 8Gb RAM and is fully ZFS based > with swap on 2 gpt freebsd-swap partitions. > > System crashed last night around 1:30, which is when a few large rsync > backups are coming in. > > Would I be able to call doadump to obtain something usefull afterward > (provided I have savecore set?) Hmm, judging from the info at the URL above, I'm not sure what to make of this assertion. In vm_object_split(), the 'new_object' is always OBJT_DEFAULT, so it will always fail that half of the assertion. In fact, this is the only place that vm_page_cache_transfer() is called, so 'new_object->type == OBJT_SWAP' is pretty much guaranteed to almost never be true. I guess it is assuming that swap_pager_copy() would have always converted 'new_object' to OBJT_SWAP if it had any cache pages? Perhaps that is a bogus assumption if 'orig_object' only has cache pages and no currently-swapped out pages (or if the swapped out pages are not in the range of the new object)? I've cc'd Alan to see if he has any ideas. -- John Baldwin