From owner-freebsd-arm@FreeBSD.ORG Tue Jul 7 15:54:51 2009 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB907106567D; Tue, 7 Jul 2009 15:54:51 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (casselton.net [63.165.140.2]) by mx1.freebsd.org (Postfix) with ESMTP id 644DC8FC23; Tue, 7 Jul 2009 15:54:51 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (localhost [127.0.0.1]) by casselton.net (8.14.3/8.14.3) with ESMTP id n67Fsorh016805; Tue, 7 Jul 2009 10:54:50 -0500 (CDT) (envelope-from tinguely@casselton.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=casselton.net; s=ccnMail; t=1246982090; bh=uMDDLzSkBaxfiNs0zl3Xckyvafd6ko4EOhhzxYGZiNA=; h=Date:From:Message-Id:To:Subject:Cc:In-Reply-To; b=rTgUxoh3t3UOz++kzuhVqeFJwYLQpoLZGELo14FOQ00qpz43W5POxL95Qqofa66KA 6zLNoaEPhvQUd3Op/rXYfMf0RHlM+epNrnputMnRww1ikii5L07dP12j7lI/iEFn2D HYnptEI0YDQLg5XrTaSkZnO1rwvESyP57Csi9cq4= Received: (from tinguely@localhost) by casselton.net (8.14.3/8.14.2/Submit) id n67Fsouv016804; Tue, 7 Jul 2009 10:54:50 -0500 (CDT) (envelope-from tinguely) Date: Tue, 7 Jul 2009 10:54:50 -0500 (CDT) From: Mark Tinguely Message-Id: <200907071554.n67Fsouv016804@casselton.net> To: mih@semihalf.com, stas@FreeBSD.org, tinguely@casselton.net In-Reply-To: <200907071437.n67EbVnX012439@casselton.net> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.2 (casselton.net [127.0.0.1]); Tue, 07 Jul 2009 10:54:50 -0500 (CDT) Cc: freebsd-arm@FreeBSD.org Subject: Re: pmap problem in FreeBSD current X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jul 2009 15:54:52 -0000 Apologies for the noise. I am not familiar with the sf_buf_alloc/sf_buf_free code and sent a bad code sequence. If we remove the mapping, it has to come off the active list also: /* * Detatch mapped page and release resources back to the system. */ void sf_buf_free(struct sf_buf *sf) { #ifndef ARM_USE_SMALL_ALLOC mtx_lock(&sf_buf_lock); sf->ref_count--; if (sf->ref_count == 0) { TAILQ_INSERT_TAIL(&sf_buf_freelist, sf, free_entry); nsfbufsused--; + pmap_kremove(sf->kva); + sf->m = NULL; + LIST_REMOVE(sf, list_entry); if (sf_buf_alloc_want > 0) wakeup_one(&sf_buf_freelist); } mtx_unlock(&sf_buf_lock); #endif --Mark Tinguely.