From: Richard Henderson <rth@twiddle.net>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: Peter Maydell <peter.maydell@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [RFC] alpha qemu arithmetic exceptions
Date: Thu, 03 Jul 2014 21:30:05 -0700 [thread overview]
Message-ID: <53B62DCD.6030201@twiddle.net> (raw)
In-Reply-To: <20140704005024.GT18016@ZenIV.linux.org.uk>
On 07/03/2014 05:50 PM, Al Viro wrote:
> OK, looks sane. Next (trivial) bug: in translate_one()
> case 0xF800:
> /* WH64 */
> /* No-op */
> break;
> should be followed by
> case 0xFC00:
> /* WH64EN */
> /* No-op */
> break;
Huh. I don't have any documentation for EV7. Added.
> Another one is probably not worth bothering - PERR, CTPOP, CTLZ, UNPKBx and PKxB
> don't accept literal argument. For one thing, as(1) won't let you generate
> those, so it would have to be explicit
> .long 0x70001620
> instead of
> perr $0,0,$0
> On DS10 it gives SIGILL; under qemu it succeeds. Trivial to fix, anyway,
> if we care about that (if (islit) goto invalid_opc; in 1C.030..1C.037).
Is it just 030..037, or everything under opcode 1C?
Sadly, V4 of the handbook doesn't mention *anything* about not actually
allowing literals for any of these insns.
For now, I've updated insns in the range you describe, because it's easy.
> CPU1: LDL_L reads 0
> CPU2: store 1
> ...
> CPU2: store 0
> CPU1: STL_C
> would have STL_C fail. qemu implementation of those suckers will succeed.
> I'm not sure if anything in the kernel is sensitive to that, but analysis
> won't be fun...
I'm aware that lock/cond can be used in ways that we don't support, including
STL_C to a different address on the same cacheline as the LDL_L.
I'm also aware that if we actually did implement SMP, we would be vulnerable to
the ABA error you describe above.
That said, it's all moot until the PALcode grows actual SMP support for booting
and signalling secondary cpus. Given that qemu implements SMP by multiplexing
the guest cpus on a single host thread, and so we can't actually speed up the
guest by implementing SMP, it's not seemed like a priority.
The next thing I'd work on given oodles of time is to add block device support
to the PALcode, so that the console could boot from disk like a real machine.
In theory, most of this code can be stolen from SeaBIOS.
r~
next prev parent reply other threads:[~2014-07-04 4:30 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-24 4:34 [Qemu-devel] [RFC] alpha qemu arithmetic exceptions Al Viro
2014-06-24 16:52 ` Al Viro
2014-06-24 18:33 ` Richard Henderson
2014-06-24 20:32 ` Al Viro
2014-06-24 20:57 ` Richard Henderson
2014-06-24 21:24 ` Al Viro
2014-06-24 21:32 ` Richard Henderson
2014-06-25 7:01 ` Al Viro
2014-06-25 9:27 ` Peter Maydell
2014-06-25 14:26 ` Al Viro
2014-06-25 17:41 ` Peter Maydell
2014-06-26 5:55 ` Al Viro
2014-06-30 18:39 ` Richard Henderson
2014-06-30 20:56 ` Al Viro
2014-07-01 4:34 ` Al Viro
2014-07-01 5:00 ` Al Viro
2014-07-01 14:31 ` Richard Henderson
2014-07-01 17:03 ` Richard Henderson
2014-07-01 17:50 ` Al Viro
2014-07-01 18:23 ` Peter Maydell
2014-07-01 18:30 ` Richard Henderson
2014-07-01 19:08 ` Peter Maydell
2014-07-02 4:05 ` Al Viro
2014-07-02 5:50 ` Al Viro
2014-07-02 6:17 ` Al Viro
2014-07-02 15:26 ` Richard Henderson
2014-07-02 15:49 ` Al Viro
2014-07-02 14:59 ` Richard Henderson
2014-07-02 15:20 ` Al Viro
2014-07-03 6:51 ` Al Viro
2014-07-03 18:25 ` Al Viro
2014-07-03 20:19 ` Richard Henderson
2014-07-03 22:47 ` Al Viro
2014-07-03 23:05 ` Peter Maydell
2014-07-03 23:22 ` Al Viro
2014-07-04 0:50 ` Al Viro
2014-07-04 4:30 ` Richard Henderson [this message]
2014-07-04 7:29 ` Al Viro
2014-07-05 1:40 ` Al Viro
2014-07-05 5:26 ` Al Viro
2014-07-05 21:09 ` Al Viro
2014-07-05 22:55 ` Al Viro
2014-07-07 14:11 ` Richard Henderson
2014-07-07 15:06 ` Al Viro
2014-07-07 16:20 ` Richard Henderson
2014-07-08 4:20 ` Al Viro
2014-07-08 6:03 ` Richard Henderson
2014-07-08 6:54 ` Al Viro
2014-07-08 7:13 ` Al Viro
2014-07-08 8:05 ` Peter Maydell
2014-07-08 14:53 ` Richard Henderson
2014-07-08 16:13 ` Al Viro
2014-07-08 16:33 ` Peter Maydell
2014-07-08 17:20 ` Al Viro
2014-07-08 19:32 ` Peter Maydell
2014-07-08 20:12 ` Al Viro
2014-07-09 9:19 ` Alex Bennée
2014-07-09 9:04 ` Alex Bennée
2014-07-08 18:12 ` Richard Henderson
2014-07-08 19:02 ` Al Viro
2014-07-08 19:04 ` Richard Henderson
2014-07-08 20:20 ` Al Viro
2014-07-09 4:59 ` Richard Henderson
2014-07-09 5:47 ` Al Viro
2014-07-09 15:14 ` Richard Henderson
2014-07-09 16:41 ` Al Viro
2014-06-24 18:23 ` Richard Henderson
2014-06-24 20:47 ` Al Viro
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=53B62DCD.6030201@twiddle.net \
--to=rth@twiddle.net \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=viro@ZenIV.linux.org.uk \
/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).