All of lore.kernel.org
 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 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.