[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RISU v2 14/17] Add magic and size to the trace header
From: |
Richard Henderson |
Subject: |
Re: [RISU v2 14/17] Add magic and size to the trace header |
Date: |
Tue, 19 May 2020 14:16:51 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 5/18/20 7:53 PM, Richard Henderson wrote:
> + if (master_header.magic != RISU_MAGIC ||
> + master_header.risu_op != op ||
> + master_header.size != extra_size) {
> + res = RES_MISMATCH_HEAD;
> + goto fail_header;
> }
Hmm. This isn't ideal.
Consider e.g. an insn being tested that should pass, so master steps past the
insn to the UDF and sends OP_COMPARE. But there's a bug in the emulator being
tested so the apprentice gets SIGILL on the insn and so op == OP_SIGILL.
So risu_op != op, but we only report the header difference.
Perhaps that's good enough to understand the this particular problem, without
the clutter of printing the rest of the reginfo frame -- at least if
report_mismatch_header is improved to print risu_op names instead of numbers.
Consider if master and apprentice are run with different --test-sve=<vq>
values. That will produce a mismatch in size.
Which could be a serious problem, if master_header.size > sizeof(master_ri) --
we can't even receive the data. In that case, what I'm doing here printing the
size mismatch is all that's possible.
But suppose master_header.size <= sizeof(master_ri), so we can receive the
data. So long as master_header.size == reginfo_size(&master_ri), then at least
the data is self-consistent, and we *can* print out the difference in
report_mismatch_reg(). Which in this case is going to be the difference in the
two ri->sve_vl values. That difference is likely to be easiest to understand
for the end user.
I should probably split out this receive logic from
recv_and_compare_register_info so that it can be reused by dump.
r~
- Re: [RISU v2 09/17] Unify i/o functions and use RisuResult, (continued)
- [RISU v2 11/17] Always write for --master, Richard Henderson, 2020/05/18
- [RISU v2 10/17] Pass non-OK result back through siglongjmp, Richard Henderson, 2020/05/18
- [RISU v2 12/17] Simplify syncing with master, Richard Henderson, 2020/05/18
- [RISU v2 13/17] Split RES_MISMATCH for registers and memory, Richard Henderson, 2020/05/18
- [RISU v2 14/17] Add magic and size to the trace header, Richard Henderson, 2020/05/18
- Re: [RISU v2 14/17] Add magic and size to the trace header,
Richard Henderson <=
- [RISU v2 15/17] Compute reginfo_size based on the reginfo, Richard Henderson, 2020/05/18
- [RISU v2 16/17] aarch64: Reorg sve reginfo to save space, Richard Henderson, 2020/05/18
- [RISU v2 17/17] Add --dump option to inspect trace files, Richard Henderson, 2020/05/18