[PATCH 00/13] MIPS: c-r4k: SMP cache management fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These patches collect together various SMP cache management fixes &
refactorings, particularly to fix the missing SMP calls for indexed
cache ops on MIPS Coherence Manager (CM) based SMP systems since commit
cccf34e9411c ("MIPS: c-r4k: Fix cache flushing for MT cores").

Patches 1-6 fix various issues in the SMP code and cache management code
(all in relation to cache management).

Patches 7-12 then prepare r4k_on_each_cpu() and its various
callers/callees to distinguish hit/index cache ops so SMP calls can be
avoided.

Finally patch 13 makes the change for CM so that indexed cache ops are
performed on each core via SMP calls.

Patch 9 should also work around the SMP 34Kc regression Felix saw
recently, but __flush_anon_page() and r4k_flush_data_cache_page()
definitely still need looking at too.

All feedback & testing gratefully received.

James Hogan (13):
  MIPS: SMP: Clear ASID without confusing has_valid_asid()
  MIPS: SMP: Update cpu_foreign_map on CPU disable
  MIPS: SMP: Drop stop_this_cpu() cpu_foreign_map hack
  MIPS: c-r4k: Fix protected_writeback_scache_line for EVA
  MIPS: c-r4k: Fix sigtramp SMP call to use kmap
  MIPS: c-r4k: Avoid dcache flush for sigtramps

  MIPS: c-r4k: Add r4k_on_each_cpu cache op type arg
  MIPS: c-r4k: Fix valid ASID optimisation
  MIPS: c-r4k: Exclude sibling CPUs in SMP calls
  MIPS: c-r4k: Split r4k_flush_kernel_vmap_range()
  MIPS: c-r4k: Local flush_icache_range cache op override
  MIPS: c-r4k: Avoid small flush_icache_range SMP calls

  MIPS: c-r4k: Use SMP calls for CM indexed cache ops

 arch/mips/cavium-octeon/smp.c         |   1 +
 arch/mips/include/asm/r4kcache.h      |   4 +
 arch/mips/include/asm/smp.h           |   4 +-
 arch/mips/kernel/smp-bmips.c          |   1 +
 arch/mips/kernel/smp-cps.c            |   1 +
 arch/mips/kernel/smp.c                |  34 +++--
 arch/mips/loongson64/loongson-3/smp.c |   1 +
 arch/mips/mm/c-r4k.c                  | 274 ++++++++++++++++++++++++++++------
 8 files changed, 257 insertions(+), 63 deletions(-)

Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Leonid Yegoshin <leonid.yegoshin@xxxxxxxxxx>
Cc: Felix Fietkau <nbd@xxxxxxxx>
Cc: David Daney <david.daney@xxxxxxxxxx>
Cc: Florian Fainelli <f.fainelli@xxxxxxxxx>
Cc: Hongliang Tao <taohl@xxxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Hua Yan <yanh@xxxxxxxxxx>
Cc: Jayachandran C. <jchandra@xxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
-- 
2.4.10





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux