Thread (20 messages) 20 messages, 3 authors, 2013-06-25

Re: [PATCH V9 03/13] MIPS: Loongson: Introduce and use cpu_has_coherent_cache feature

From: Huacai Chen <hidden>
Date: 2013-06-23 02:10:41
Also in: lkml

Hi, Steven

Is the 3rd patch of V10 is OK to be accepted now? If so, could the
patchset of V10 be merged into 3.11?

Huacai

On Fri, Apr 12, 2013 at 11:07 AM, Huacai Chen [off-list ref] wrote:
Hi, Steven,

Maybe you are misunderstand Loongson-3's "hardware-maintained cache".
Loongson-3's hardware maintain the cache coherency between multi-cores (also
maintain coherency between CPU-core and DMA), but Loongson-3 can *still* has
cache alias (Cache alias in Loongson is sovled by 16K PageSize).

Meanwhile, I know why you misunderstand, because my code is like this:


static inline void local_r4k___flush_cache_all(void * args)
        if (cpu_has_coherent_cache)
                return;

This implies that Loongson-3 has no cache alias, but in fact this is wrong
if Loongson has configured PageSize < 16K.

I think I should make my code in all flush functions like this:

static inline void local_r4k___flush_cache_all(void * args)
        if (cpu_has_coherent_cache && !cpu_has_dc_aliases)
                return;

Am I right?


On Fri, Apr 12, 2013 at 1:05 AM, Steven J. Hill [off-list ref]
wrote:
quoted
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/30/2013 12:24 AM, Huacai Chen wrote:
quoted
Loongson-3 maintains cache coherency by hardware. So we introduce a cpu
feature named cpu_has_coherent_cache and use it to modify MIPS's cache
flushing functions.

Signed-off-by: Huacai Chen <redacted> Signed-off-by: Hongliang
Tao
[off-list ref] Signed-off-by: Hua Yan [off-list ref] ---
arch/mips/include/asm/cacheflush.h                 |    6 +++++
arch/mips/include/asm/cpu-features.h               |    3 ++
.../asm/mach-loongson/cpu-feature-overrides.h      |    6 +++++
arch/mips/mm/c-r4k.c                               |   21
++++++++++++++++++- 4 files changed, 34 insertions(+), 2 deletions(-)
Hello.

This patch masks the problem that you are not properly probing your L1
caches
to start with. For some reason in 'probe_pcache()' you reach the default
case
where the primary data cache is marked as having aliases. If your CPU
truly is
HW coherent with no aliases, then MIPS_CACHE_ALIASES should never get set.
Fixing this would eliminate the 'arch/mips/include/asm/cacheflush.h' and
'arch/mips/mm/c-r4k.c' changes completely. There is no need to add more
CPU
feature bits for this single platform, thus changes to 'cpu-features.h'
and
'cpu-features-overrides.h' will not be accepted.

Also, please do not copy the [off-list ref] mailing list
unless your patch touches files outside of 'arch/mips' in order to cut
down
traffic on an already busy list. Thanks.

Steve
- -----
[off-list ref]
[off-list ref]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlFm7WAACgkQgyK5H2Ic36eHuwCeKZjp1+arkoheEpeuzjJkQskN
/7MAnig14A03hWxRvfqDOMbMFKXpZBO8
=HRPU
-----END PGP SIGNATURE-----
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help