From owner-freebsd-current Sat Apr 15 22: 0:10 2000 Delivered-To: freebsd-current@freebsd.org Received: from cs.rice.edu (cs.rice.edu [128.42.1.30]) by hub.freebsd.org (Postfix) with ESMTP id 2588B37B92F; Sat, 15 Apr 2000 22:00:07 -0700 (PDT) (envelope-from alc@cs.rice.edu) Received: (from alc@localhost) by cs.rice.edu (8.9.0/8.9.0) id AAA01154; Sun, 16 Apr 2000 00:00:03 -0500 (CDT) Date: Sun, 16 Apr 2000 00:00:02 -0500 From: Alan Cox To: Matthew Dillon Cc: Alfred Perlstein , Brian Fundakowski Feldman , Michael Reifenberger , FreeBSD-Current , alc@freebsd.org Subject: Re: panic: vm_object_shadow: source object has OBJ_ONEMAPPING set. Message-ID: <20000416000002.I3462@cs.rice.edu> References: <200004151803.LAA79656@apollo.backplane.com> <20000415123212.S4381@fw.wintelcom.net> <200004160318.UAA82192@apollo.backplane.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.5us In-Reply-To: <200004160318.UAA82192@apollo.backplane.com>; from Matthew Dillon on Sat, Apr 15, 2000 at 08:18:01PM -0700 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sat, Apr 15, 2000 at 08:18:01PM -0700, Matthew Dillon wrote: > :Is there a good reason for not having the vm_object_clear_flag() in > :vm_object_reference()? > > Well, yes... vm_object's are referenced for all sorts of things > temporarily. Everything from a process looking one up temporarily > to the swap code issuing I/O. None of these references have anything > to do with OBJ_ONEMAPPING. > I agree. Easy examples to appreciate are vm_map_clip_start and vm_map_clip_end. vm_map_clip_start takes a vm_map_entry and an address X as parameters. If X falls in the middle of the vm_map_entry, it splits the entry into two entries: one mapping everything up to X and one mapping everything after X. This can't possibly create two mappings to the same physical page, so clearing OBJ_ONEMAPPING isn't necessary but incrementing the underlying object's ref count is. Alan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message