All of lore.kernel.org
 help / color / mirror / Atom feed
* possible Malta 4Kc cache problem ...
@ 2002-12-04  6:45 Jun Sun
  2002-12-04  9:38   ` Kevin D. Kissell
  2002-12-04 22:53 ` Jun Sun
  0 siblings, 2 replies; 29+ messages in thread
From: Jun Sun @ 2002-12-04  6:45 UTC (permalink / raw)
  To: linux-mips; +Cc: jsun

[-- 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 --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2002-12-09 10:53 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-04  6:45 possible Malta 4Kc cache problem Jun Sun
2002-12-04  9:38 ` 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

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.