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

Zoltan Varga vargaz at gmail.com
Wed Nov 7 10:18:43 EST 2007


Hi,

Sorry I forgot about those. They look ok, I will check them in after we branch
for 1.2.6.

          Zoltan

On 11/7/07, David Miller <davem at davemloft.net> wrote:
> 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.
>
> Ping?
>



More information about the Mono-devel-list mailing list