From: Yunqiang Su <ysu@wavecomp.com>
To: Paul Burton <pburton@wavecomp.com>
Cc: YunQiang Su <syq@debian.org>,
"linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>,
"chehc@lemote.com" <chehc@lemote.com>,
"zhangfx@lemote.com" <zhangfx@lemote.com>,
"wuzhangjin@gmail.com" <wuzhangjin@gmail.com>,
"linux-mips@linux-mips.org" <linux-mips@linux-mips.org>,
"paul.hua.gm@gmail.com" <paul.hua.gm@gmail.com>
Subject: Re: [PATCH 1/2] MIPS: Loongson, add sync before target of branch between llsc
Date: Thu, 10 Jan 2019 01:59:07 +0000 [thread overview]
Message-ID: <723B8029-77BE-4DF8-A9FB-74E59F8AA6F8@wavecomp.com> (raw)
In-Reply-To: <20190109220844.qk5ufkzjmfwxe5aq@pburton-laptop>
> 在 2019年1月10日,上午6:08,Paul Burton <pburton@wavecomp.com> 写道:
>
> Hi YunQiang,
>
> On Sat, Jan 05, 2019 at 11:00:36PM +0800, YunQiang Su wrote:
>> Loongson 2G/2H/3A/3B is quite weak sync'ed. If there is a branch,
>> and the target is not in the scope of ll/sc or lld/scd, a sync is
>> needed at the postion of target.
>
> OK, so is this the same issue that the second patch in the series is
> working around or a different one?
>
> I'm pretty confused at this point about what the actual bugs are in
> these various Loongson CPUs. Could someone provide an actual errata
> writeup describing the bugs in detail?
>
> What does "in the scope of ll/sc" mean?
>
Loongson 3 series has some version, called, 1000, 2000, and 3000.
There are 2 bugs all about LL/SC. Let’s call them bug-1 and bug-2.
BUG-1: a `sync’ is needed before LL or LLD instruction.
This bug appears on 1000 only, and I am sure that it has been fixed in 3000.
BUG-2: if there is an branch instruction inside LL/SC, and the branch target is outside
of the scope of LL/SC, a `sync’ is needed at the branch target.
Aka, the first insn of the target branch should be `sync’.
Loongson said that, we don’t plan fix this problem in short time before they
Designe a totally new core.
> What happens if a branch target is not "in the scope of ll/sc”?
At least they said that there won’t be a problem
> How does the sync help?
>
> Are jumps affected, or just branches?
I am not sure, so CC a Loongson people.
@Paul Hua
>
> Does this affect userland as well as the kernel?
>
There is few place can trigger these 2 bugs in kernel.
In user land we have to workaround in binutils:
https://www.sourceware.org/ml/binutils/2019-01/msg00025.html
In fact the kernel is the easiest since we can have a flavor build for Loongson.
> ...and probably more questions depending upon the answers to these ones.
>
>> Loongson doesn't plan to fix this problem in future, so we add the
>> sync here for any condition.
>
> So are you saying that future Loongson CPUs will all be buggy too, and
> someone there has said that they consider this to be OK..? I really
> really hope that is not true.
>
Bug is bug. It is not OK.
I blame these Loongson guys here.
Some Loongson guys is not so normal people.
Anyway they are a little more normal now, and anyway again, still abnormal.
> If hardware people say they're not going to fix their bugs then working
> around them is definitely not going to be a priority. It's one thing if
> a CPU designer says "oops, my bad, work around this & I'll fix it next
> time". It's quite another for them to say they're not interested in
> fixing their bugs at all.
They have interests, while I guess the true reason is that they have no enough
people and money to desgin a core, while this bug is quilt hard to fix.
>
> Thanks,
> Paul
next prev parent reply other threads:[~2019-01-10 1:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-05 15:00 [PATCH 1/2] MIPS: Loongson, add sync before target of branch between llsc YunQiang Su
2019-01-05 15:00 ` [PATCH 2/2] MIPS: Loongson, workaround ll/sc weak ordering YunQiang Su
2019-01-09 22:08 ` [PATCH 1/2] MIPS: Loongson, add sync before target of branch between llsc Paul Burton
2019-01-10 1:59 ` Yunqiang Su [this message]
2019-01-10 17:35 ` Paul Burton
2019-01-10 18:42 ` YunQiang Su
2019-01-11 12:40 徐成华
2019-01-11 19:00 ` Paul Burton
2019-01-12 8:02 ` 徐成华
2019-01-12 8:19 ` huangpei
2019-01-12 3:25 ` huangpei
2019-01-12 3:41 ` Yunqiang Su
2019-01-12 6:21 ` huangpei
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=723B8029-77BE-4DF8-A9FB-74E59F8AA6F8@wavecomp.com \
--to=ysu@wavecomp.com \
--cc=chehc@lemote.com \
--cc=linux-mips@linux-mips.org \
--cc=linux-mips@vger.kernel.org \
--cc=paul.hua.gm@gmail.com \
--cc=pburton@wavecomp.com \
--cc=syq@debian.org \
--cc=wuzhangjin@gmail.com \
--cc=zhangfx@lemote.com \
/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;
as well as URLs for NNTP newsgroup(s).