From owner-freebsd-arm@FreeBSD.ORG Fri Jul 10 14:54:08 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 8A02F106566B; Fri, 10 Jul 2009 14:54:08 +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 476678FC0C; Fri, 10 Jul 2009 14:54:08 +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 n6AEs7v6087495; Fri, 10 Jul 2009 09:54:07 -0500 (CDT) (envelope-from tinguely@casselton.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=casselton.net; s=ccnMail; t=1247237647; bh=IKFxBuXtrwC/tmtdThv1T+QAvi2noRt5xGSWIPAiZ44=; h=Date:From:Message-Id:To:Subject:Cc:In-Reply-To; b=lXCRrrubGEtzQWNfBMVOtUh8LkAz2Ro54vNBqggEpGSns9luyQ3RkZ3LmemawKANG B6nOAV/CmssxUqRh7Xsqy0/z2ZG0q1Gula7+PXTr2Z2X4dii+EJtJfQPSeqp8dfG5z zmWpkdD/eTS1PkpFwWlENZmOMUH3QXcyINqT+mPI= Received: (from tinguely@localhost) by casselton.net (8.14.3/8.14.2/Submit) id n6AEs7nJ087492; Fri, 10 Jul 2009 09:54:07 -0500 (CDT) (envelope-from tinguely) Date: Fri, 10 Jul 2009 09:54:07 -0500 (CDT) From: Mark Tinguely Message-Id: <200907101454.n6AEs7nJ087492@casselton.net> To: mih@semihalf.com, tinguely@casselton.net In-Reply-To: <200907101307.n6AD7lZT081110@casselton.net> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.2 (casselton.net [127.0.0.1]); Fri, 10 Jul 2009 09:54:07 -0500 (CDT) Cc: freebsd-arm@freebsd.org Subject: Re: pmap problem in FreeBSD current - PS 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: Fri, 10 Jul 2009 14:54:08 -0000 PS. sorry to even question your cpu_(l2)idcache_wbinv_range() implemetation. the cpu_idcache_wbinv_range() in bus_dmamem_alloc() is wrong. arm_remap_nocache() should wb/inv the entire page especially if the buffer that uses the page is less than a page size or non-page aligned. The cache lines NOT in the buffer is the data that can be lost if used while the nocache shadow mapping is in effect. As an open question to the group: should we add an explict page cpu_(l2)idcache_wbinv_range() in the arm_remap_nocache() routine, so we know that it happens rather than a side effect of the new managing of kernel pages? For freebsd-9, I will rewrite arm_remap_nocache() to get rid of the shadow map. Did your lock problems go away? Good work. --Mark Tinguely