Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Cc: ralf@linux-mips.org, linux-mips@linux-mips.org
Subject: Re: [PATCH 1/3] fixed mtc0_tlbw_hazard
Date: Thu, 21 Sep 2006 21:01:14 +0400	[thread overview]
Message-ID: <4512C55A.6070206@ru.mvista.com> (raw)
In-Reply-To: <20060922014142.2a1985c1.yoichi_yuasa@tripeaks.co.jp>

Hello.

Yoichi Yuasa wrote:

>>>Some mtc0_tlbw_hazard() were broken by "[MIPS] Cleanup hazard handling" patch.
>>>Please apply this patch.

>>>tlb-r4k.o disassemble:

>>>8009018c <local_flush_tlb_all>:
>>>8009018c:       40066000        mfc0    a2,$12
>>>80090190:       34c1001f        ori     at,a2,0x1f
>>>80090194:       3821001f        xori    at,at,0x1f
>>>80090198:       40816000        mtc0    at,$12
>>>8009019c:       00000040        ssnop
>>>800901a0:       00000040        ssnop
>>>800901a4:       00000040        ssnop

>>    Hm, why there are ssnop's here...

> ssnop is a part of dvpe().

    Yep, this is irq_disable_hazard, looking sane.

>>>800901a8:       40075000        mfc0    a3,$10
>>>800901ac:       40801000        mtc0    zero,$2
>>>800901b0:       40801800        mtc0    zero,$3
>>>800901b4:       40043000        mfc0    a0,$6
>>>800901b8:       3c028035        lui     v0,0x8035
>>>800901bc:       8c457ac0        lw      a1,31424(v0)
>>>800901c0:       0085182a        slt     v1,a0,a1
>>>800901c4:       1060000b        beqz    v1,800901f4 <local_flush_tlb_all+0x68>
>>>800901c8:       00044340        sll     t0,a0,0xd
>>>800901cc:       3c098000        lui     t1,0x8000
>>>800901d0:       01091821        addu    v1,t0,t1
>>>800901d4:       40835000        mtc0    v1,$10
>>>800901d8:       10000002        b       800901e4 <local_flush_tlb_all+0x58> <-- mtc0_tlbw_hazard()
>>>800901dc:       40840000        mtc0    a0,$0
>>>800901e0:       42000002        tlbwi

>>>Yoichi

>>>Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
>>>
>>>diff -pruN -X mips/Documentation/dontdiff mips-orig/include/asm-mips/hazards.h mips/include/asm-mips/hazards.h
>>>--- mips-orig/include/asm-mips/hazards.h	2006-09-21 18:21:11.793973750 +0900
>>>+++ mips/include/asm-mips/hazards.h	2006-09-21 18:55:07.569201750 +0900
>>>@@ -138,7 +138,7 @@ ASMMACRO(back_to_back_c0_hazard,

    This is under #elif defined(CONFIG_CPU_SB1), right?

>>>  * Mostly like R4000 for historic reasons
>>>  */
>>> ASMMACRO(mtc0_tlbw_hazard,
>>>-	 b	. + 8
>>>+	 nop; nop; nop; nop; nop; nop

>>    ... and nop's there? This looks inconsistent.

> previous mtc0_tlbw_hazard() for C used nop.
> "b . + 8" is trick for R4000/R4400, see comment in old hazard.h .

    I fail to see what was changed WRT SB1 CPUs by the suspected patch. Though 
wait... the previous version was inconsistent, using the different barrier 
definitions for C and assembly (nops in the former, and branch in the latter). 
But since the assembly version was not really used, it couldn't break 
anything... :-/

    Anyway, shouldn't ssnop's be used for SB1 instead? CPU has quad-issue 
pipeline, hasn't it?

> Yoichi

WBR, Sergei

  reply	other threads:[~2006-09-21 16:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-21 16:07 [PATCH 1/3] fixed mtc0_tlbw_hazard Yoichi Yuasa
2006-09-21 16:10 ` [PATCH 2/3] fixed typo in hazard.h Yoichi Yuasa
2006-09-21 16:13   ` [PATCH 3/3] remove some redefinitions " Yoichi Yuasa
2006-09-25 15:14     ` Ralf Baechle
2006-09-25 14:49   ` [PATCH 2/3] fixed typo " Ralf Baechle
2006-09-21 16:22 ` [PATCH 1/3] fixed mtc0_tlbw_hazard Sergei Shtylyov
2006-09-21 16:41   ` Yoichi Yuasa
2006-09-21 17:01     ` Sergei Shtylyov [this message]
2006-09-22  3:17       ` Yoichi Yuasa
2006-09-25 14:28       ` Ralf Baechle
2006-09-25 14:26     ` Ralf Baechle
2006-09-22  5:16 ` Atsushi Nemoto
2006-09-22  5:47   ` Yoichi Yuasa
2006-09-25 14:24 ` Ralf Baechle

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=4512C55A.6070206@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=yoichi_yuasa@tripeaks.co.jp \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox