From owner-freebsd-current Sat Apr 15 10:39:14 2000 Delivered-To: freebsd-current@freebsd.org Received: from localhost (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id 91CCE37B91B; Sat, 15 Apr 2000 10:39:08 -0700 (PDT) (envelope-from green@FreeBSD.org) Date: Sat, 15 Apr 2000 13:39:07 -0400 (EDT) From: Brian Fundakowski Feldman X-Sender: green@green.dyndns.org To: Alfred Perlstein Cc: Michael Reifenberger , dillon@freebsd.org, current@FreeBSD.ORG, alc@FreeBSD.ORG Subject: Re: panic: vm_object_shadow: source object has OBJ_ONEMAPPING set. In-Reply-To: <20000415092639.Q4381@fw.wintelcom.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sat, 15 Apr 2000, Alfred Perlstein wrote: > Yes, find all places where source->ref_count is incremented and check > for OBJ_ONEMAPPING as well as where OBJ_ONEMAPPING is set. > > Then add some printfs to find the snippet that's incrementing it > to complain when the OBJ_ONEMAPPING bit is set, and complain if > setting OBJ_ONEMAPPING when the refcount is too high. Further elaboration: there is an assumption that it is wrong for OBJ_ONEMAPPING to be set but not when ref_count > 1. This assumption is defeated in the multiple test cases we can find. It seems that in the test cases, the common problem is with (I think mmap()d) memory across multiple processes that _share_ _a_VM_space_! It seems like what's happening is that the ref_count is increased to reflect that each process has a hold of this object, which may or may not be correct, and when that object is faulted on, the code panics because it assumes that OBJ_ONEMAPPING means that there's only one mapping of the object, but there are multiple references and so it panics. The question is not just "why" a OBJ_ONEMAPPING object has a ref_count > 1, it's whether or not that is correct WRT multiple, shared-VM processes. -- Brian Fundakowski Feldman \ FreeBSD: The Power to Serve! / green@FreeBSD.org `------------------------------' To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message