How many colours does the ARC cache have?

Vineet Gupta vgupta at kernel.org
Wed Feb 15 20:59:18 PST 2023


On 2/10/23 09:06, Matthew Wilcox wrote:
> I see a discrepancy here ...
>
> arch/arc/include/asm/shmparam.h:
> /* Handle upto 2 cache bins */
> #define SHMLBA  (2 * PAGE_SIZE)
>
> arch/arc/include/asm/cacheflush.h:
> #define CACHE_COLORS_NUM        4

The initial aliasing dcache support assumed 2 colors but was later 
bumped to 4, w/o making the adjustment in shmparam.h

> (there are some other problems with the arc cache flushing code;

The VIPT aliasing config (which is pretty much dead and unused) or 
regular parts ?


> I'm working on patches to address them, but those are things I understand a
> little better.  I know nothing about the ARC architecture itself)

Legacy ARC700 cpus had VIPT D$. The cache size was configurable by Soc 
builder and the specific geometry could yield an aliasing configuration 
(e.g. standard page size 8K, 4 way set associative D$: so D$ > 32K were 
aliasing and needed CONFIG_ARC_CACHE_VIPT_ALIASING). Although there was 
ever only 1 customer who taped out an aliasing cache config.

The newer ARC HS cores have PIPT D$ and thus don't need the aliasing 
support.

FWIW we could rip out all the VIPT aliasing code as I don't think it is 
needed anymore. @Alexey can you confirm ?

-Vineet



More information about the linux-snps-arc mailing list