[Mono-dev] [PATCH]: Improve sparc I-cache flushing under Linux.
davem at davemloft.net
Wed Nov 7 02:25:16 EST 2007
From: David Miller <davem at davemloft.net>
Date: Sat, 03 Nov 2007 16:21:16 -0700 (PDT)
> On every UltraSPARC chip, it is sufficient to only flush
> every 32-byte cache line.
> As a future enhancement, if Niagara cpus are detected we can only
> perform one flush instruction. On Niagara the flush address is
> completely ignored and the flush is only needed to synchronize the cpu
> pipeline with previous stores.
> I left the Solaris code as it is, calling sync_instruction_memory().
> However, disassembling a test program shows that Solaris does not
> optimize it properly and flushes every 8 bytes like the old code here
> I think it would be safe to have the Solaris case use the same code as
> Linux so that both sides would get the performance improvement.
> 2007-11-03 David S. Miller <davem at huronp11.davemloft.net>
> * mini-sparc.c (mono_arch_flush_icache): Make more efficient
> under Linux. We only need to flush every 32-byte cache line.
More information about the Mono-devel-list