From: Ralf Baechle <ralf@linux-mips.org>
To: Sergey Rogozhkin <rogozhkin@niisi.msk.ru>
Cc: kumba@gentoo.org, linux-mips@linux-mips.org
Subject: Re: O2 RM7000 Issues
Date: Mon, 16 Jul 2007 13:33:44 +0100 [thread overview]
Message-ID: <20070716123343.GA13439@linux-mips.org> (raw)
In-Reply-To: <469B5C2E.5080905@niisi.msk.ru>
On Mon, Jul 16, 2007 at 03:53:18PM +0400, Sergey Rogozhkin wrote:
> >Big loud bell began ringing. The RM7000 fetches and decodes multiple
> >instructions in one go. And just like the E9000 cores it does
> >throw an exception if it doesn't like one of the opcodes even if that
> >doesn't actually get executed. The kernel has a workaround for this
> >PMC-Sierra peculiarity (I call it a bug) but it's only being activated
> >for E9000 platforms.
>
> We have had a similar problems with shell on RM7000 based system. It
> seems, the reason listed above is only half of the problem, another is:
> linux works incorrectly with RM7000 caches hierarchy. One visible effect
> is errors in userspace on signal delivery trampolines.
> Lets imagine we deliver a signal to application: we write signal
> trampoline instructions to stack, writeback (and invalidate)
> corresponding dcache line, invalidate corresponding icache line. Thats
> all, and we think that we can safely execute the trampoline, but this is
> wrong on RM7000! Our trampoline is now in scache, and everything seems
> to be ok, but after some number of load/stores corresponding scache line
> can be moved to dcache, replaced in scache by another data and not
> written to memory (this is a feature of RM7000 caches, its dcache is not
> a subset of scache, you can find a possible scenario of similar (but not
> the same) cache line transference in RM7000 manual (7.1.5 Orphaned Cache
> Lines)). After that it is possible that on signal trampoline execution
> icache fetch old memory content instead of instruction written. If we
> want to execute instruction written by cpu, we must not only writeback
> corresponding dcache lines, but also writeback corresponding scache
> lines after it. The error is very sensitively to kernel/user code and
> data arrangement, it can be visible with one kernel configuration and
> irreproducible with another.
> The problem affects not only signal trampoline flush to memory, but most
> cases of icache invalidation in kernel.
Hmm... Makes sense. I guess I can cook up a patch based on that analysis.
Thanks!
Ralf
next prev parent reply other threads:[~2007-07-16 12:33 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-01 16:57 O2 RM7000 Issues Kumba
2007-07-01 22:07 ` freshy98
2007-07-02 13:08 ` sknauert
2007-07-02 13:08 ` sknauert
2007-07-04 15:27 ` Ralf Baechle
2007-07-04 19:22 ` Ralf Baechle
2007-07-16 11:53 ` Sergey Rogozhkin
2007-07-16 12:33 ` Ralf Baechle [this message]
2007-07-16 17:38 ` Andrew Sharp
2007-07-17 14:01 ` Kumba
2007-07-19 18:58 ` Andrew Sharp
2007-07-19 22:26 ` Shane McDonald
2007-07-17 7:54 ` Gleb O. Raiko
2007-07-17 9:04 ` Sergey Rogozhkin
2007-07-17 10:14 ` Ralf Baechle
2007-07-17 12:27 ` Ralf Baechle
2007-09-17 23:04 ` Steve Graham
2007-09-18 8:52 ` Ralf Baechle
2007-09-17 23:20 ` David Daney
2007-09-18 8:47 ` Ralf Baechle
2007-07-02 14:34 ` Maciej W. Rozycki
2007-09-21 6:27 ` Sagar Borikar
2007-09-21 13:47 ` Ralf Baechle
2007-09-22 3:20 ` Steve Graham
2007-09-24 11:58 ` Ralf Baechle
2007-09-26 17:06 ` Steve Graham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070716123343.GA13439@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=kumba@gentoo.org \
--cc=linux-mips@linux-mips.org \
--cc=rogozhkin@niisi.msk.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.