[Mono-dev] [PATCH]: Improve sparc I-cache flushing under Linux.

David Miller 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
> did.
> 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 mailing list