From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id 2DDA2DDE1B for ; Tue, 17 Jul 2007 08:14:04 +1000 (EST) Subject: Re: [patch 5/6] ps3: BD/DVD/CD-ROM Storage Driver From: Benjamin Herrenschmidt To: James Bottomley In-Reply-To: <1184623415.3447.48.camel@localhost.localdomain> References: <20070704132212.726923000@pademelon.sonytel.be> <1184335333.3402.20.camel@localhost.localdomain> <200707131619.54898.arnd@arndb.de> <1184340528.3402.32.camel@localhost.localdomain> <20070716121649.GI5195@kernel.dk> <1184593643.3447.9.camel@localhost.localdomain> <1184622555.25235.91.camel@localhost.localdomain> <1184623415.3447.48.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 17 Jul 2007 08:12:39 +1000 Message-Id: <1184623959.25235.100.camel@localhost.localdomain> Mime-Version: 1.0 Cc: Arnd Bergmann , linux-scsi@vger.kernel.org, Linux Kernel Development , Alessandro Rubini , Linux/PPC Development , Paul Mackerras , Jens Axboe , Geert Uytterhoeven List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Mon, 2007-07-16 at 17:03 -0500, James Bottomley wrote: > On Tue, 2007-07-17 at 07:49 +1000, Benjamin Herrenschmidt wrote: > > > No ... that was the point of flush_kernel_dcache_page(). The page in > > > question is page cache backed and contains user mappings. However, the > > > block layer has already done a flush_dcache_page() in get_user_pages() > > > and the user shouldn't be touching memory under I/O (unless they want > > > self induced aliasing problems) so we're free to assume all the user > > > cachelines are purged, hence all we have to do is flush the kernel alias > > > to bring the page up to date and make the users see it correctly. > > > > The block layer will have done that even in the swap-out path ? (Just > > asking... I'm not very familiar with the block layer) > > Er ... not really, this is the I/O path for user initiated I/O. The > page out path, by definition, can't have any extant user mappings. For > page out, the relevant page is flushed before its mapping is detached, > and then it can be paged to the backing store (or for anonymous pages to > the swap device) when no mappings remain. Ok, thanks. Ben.