From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751699AbdASA1z (ORCPT ); Wed, 18 Jan 2017 19:27:55 -0500 Received: from mail-pg0-f51.google.com ([74.125.83.51]:36116 "EHLO mail-pg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751652AbdASA1y (ORCPT ); Wed, 18 Jan 2017 19:27:54 -0500 Subject: Re: [PATCH 2/7] ARM: Add Broadcom Brahma-B15 readahead cache support To: Russell King - ARM Linux , Florian Fainelli References: <20170118202927.28740-1-f.fainelli@gmail.com> <20170118202927.28740-3-f.fainelli@gmail.com> <20170118225630.GS27312@n2100.armlinux.org.uk> Cc: linux-arm-kernel@lists.infradead.org, Alamy Liu , "maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE" , Jonathan Austin , Vladimir Murzin , Thomas Gleixner , Zhaoxiu Zeng , Mark Rutland , Nicolas Pitre , Sebastian Andrzej Siewior , Anna-Maria Gleixner , open list , will.deacon@arm.com From: Florian Fainelli Message-ID: <47d36b8c-4786-7077-c623-d2bbc29b8863@broadcom.com> Date: Wed, 18 Jan 2017 16:18:33 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20170118225630.GS27312@n2100.armlinux.org.uk> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/18/2017 02:56 PM, Russell King - ARM Linux wrote: > On Wed, Jan 18, 2017 at 12:29:21PM -0800, Florian Fainelli wrote: >> The readahead cache only intercepts reads, not writes, as such, some >> data can remain stale in any of its buffers, such that we need to flush >> it, which is an operation that needs to happen in a particular order: >> >> - disable the readahead cache >> - flush it >> - call the appropriate cache-v7.S function >> - re-enable > > I really do hope that the above explanation is wrong, because if that's > really how it's implemented, it's going to cause coherency problems. > > It's got to at least monitor writes, otherwise how do you guarantee > that the CPU doesn't see stale data? IOW: Yes, it does monitor writes, the explanation given here was wrong. Thanks! > > Consider this at the L2 memory-side interface (iow, downstream of the > point-of-coherency): > > CPU1 CPU2 Read-ahead buffer > read cache line C > reads cache line C and C+1 > writes cache line C+1 > read cache line C+1 > > What ensures that CPU2 sees the written out cache line from CPU1? -- Florian