All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jun Sun <jsun@mvista.com>
To: linux-mips@linux-mips.org
Cc: jsun@mvista.com
Subject: possible Malta 4Kc cache problem ...
Date: Tue, 3 Dec 2002 22:45:04 -0800	[thread overview]
Message-ID: <20021203224504.B13437@mvista.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1340 bytes --]


I attached the test case.  Untar it.  Type 'make' and run 'a.out'.

If the test fails you will see a print-out.  Otherwise you see nothing.

It does not always fail.  But if it fails, it is usually pretty consistent.
Try a few times.  Moving source tree to a different directory may cause
the symptom appear or disappear.

I spent quite some time to trace this problem, and came to suspect
there might be a hardware problem.

The problem involves emulating a "lw" instruction in cp1 branch delay
slot, which needs to  set up trampoline in user stack.  The net effect
looks as if the icache line or dcache line is not flushed properly.

Using gdb/kgdb, printf or printk in any useful places would hide the bug.

I did find a smaller part of the problem.  flush_cache_sigtramp for
MIPS32 (4Kc) calls protected_writeback_dcache_line in mips32_cache.h.
It uses Hit_Writeback_D, and the 4Kc mannual says it is not implemented
and executed as no-op (*ick*).

Even after fixing this, I still see the problem happening.

If you replace flush_cache_sigtramp() with flush_cache_all(), symptom
would disppear.

Several of my tests seem to suggest it is the icache that did not
get flushed (or updated) properly.

Not re-producible on other MIPS boards.  At least so far.

Does anybody with more knowledge about 4Kc have any clues here?

Thanks.

Jun

[-- Attachment #2: fp_java.tar.gz --]
[-- Type: application/x-tar-gz, Size: 11388 bytes --]

             reply	other threads:[~2002-12-04  6:45 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-04  6:45 Jun Sun [this message]
2002-12-04  9:38 ` possible Malta 4Kc cache problem Kevin D. Kissell
2002-12-04  9:38   ` Kevin D. Kissell
2002-12-04  9:46   ` Kevin D. Kissell
2002-12-04  9:46     ` Kevin D. Kissell
2002-12-04 10:08   ` Carsten Langgaard
2002-12-04 11:21     ` Carsten Langgaard
2002-12-04 13:06       ` Kevin D. Kissell
2002-12-04 13:06         ` Kevin D. Kissell
2002-12-04 13:14         ` Carsten Langgaard
2002-12-04 13:28           ` Carsten Langgaard
2002-12-04 17:08           ` Kevin D. Kissell
2002-12-04 17:08             ` Kevin D. Kissell
2002-12-04 17:32             ` Daniel Jacobowitz
2002-12-04 20:28               ` Carsten Langgaard
2002-12-04 22:58                 ` Jun Sun
2002-12-05  9:38                   ` Carsten Langgaard
2002-12-06 16:42                     ` Maciej W. Rozycki
2002-12-06 22:24                       ` Hartvig Ekner
2002-12-06 22:24                         ` Hartvig Ekner
2002-12-09 10:51                         ` Dominic Sweetman
2002-12-09 10:51                           ` Dominic Sweetman
2002-12-04 22:19     ` Jun Sun
2002-12-05  9:27       ` Kevin D. Kissell
2002-12-05  9:27         ` Kevin D. Kissell
2002-12-04 21:59   ` Jun Sun
2002-12-04 23:14     ` Kevin D. Kissell
2002-12-04 23:14       ` Kevin D. Kissell
2002-12-04 22:53 ` Jun Sun

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=20021203224504.B13437@mvista.com \
    --to=jsun@mvista.com \
    --cc=linux-mips@linux-mips.org \
    /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.