From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King - ARM Linux Subject: Re: Highmem issues with MMC filesystem Date: Fri, 19 Mar 2010 14:46:47 +0000 Message-ID: <20100319144647.GG21280@n2100.arm.linux.org.uk> References: <037201cac5d7$6c5b8c60$LocalHost@wipblrx0099946> <043e01cac5df$c3ec1b90$LocalHost@wipblrx0099946> <20100318092352.GD8267@n2100.arm.linux.org.uk> <20100318112453.GA19544@n2100.arm.linux.org.uk> <1269009677.31227.10.camel@e102109-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from caramon.arm.linux.org.uk ([78.32.30.218]:35336 "EHLO caramon.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750968Ab0CSOq7 (ORCPT ); Fri, 19 Mar 2010 10:46:59 -0400 Content-Disposition: inline In-Reply-To: <1269009677.31227.10.camel@e102109-lin.cambridge.arm.com> Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: Catalin Marinas Cc: Nicolas Pitre , linux-mmc@vger.kernel.org, Hemanth V , saeed bishara , pierre@ossman.eu, linux-arm-kernel@lists.infradead.org On Fri, Mar 19, 2010 at 02:41:17PM +0000, Catalin Marinas wrote: > On Thu, 2010-03-18 at 13:20 +0000, Nicolas Pitre wrote: > > The only way a highmem page can be unmapped is through kunmap_atomic() > > where an explicit __cpuc_flush_dcache_area() is performed, or through > > flush_all_zero_pkmaps() where flush_cache_kmaps() translates into > > flush_cache_all(). > > The thing that I couldn't fully understand with the kunmap_atomic() > function is that there is a path (when kvaddr < FIXADDR_START) where no > cache flushing occurs. Can this not happen? kunmap interfaces are not for cache flushing; the cache flushing is only there to ensure consistency when unmapping a mapping on VIVT CPUs. If VIVT CPUs could do writebacks without a valid mapping in place, then the cache flush for highmem pages would not be required.