[FFmpeg-devel] [PATCH] fate.sh: Allow overriding what targets to make for running the tests
Rémi Denis-Courmont
remi at remlab.net
Thu Nov 30 17:52:35 EET 2023
Le tiistaina 28. marraskuuta 2023, 16.21.55 EET Michael Niedermayer a écrit :
> On Tue, Nov 28, 2023 at 09:27:08AM +0200, Rémi Denis-Courmont wrote:
> > Le 28 novembre 2023 01:22:14 GMT+02:00, Michael Niedermayer
<michael at niedermayer.cc> a écrit :
> > >On Mon, Nov 27, 2023 at 05:46:40PM +0200, Rémi Denis-Courmont wrote:
> > >[...]
> > >
> > >> Also FWIW, RV broke due to misaligned accesses and illegal vector types
> > >> that QEMU tolerated. That is rather an argument against QEMU than
> > >> against this MR but still.
> > >
> > >has someone reported this to qemu ?
> > >(seems like a bug)
> >
> > It's not a bug. The specification leaves those cases *undefined*. QEMU
> > supports them because they can, and adding sanity checks would just slow
> > stuff down.
> >
> > Also generally QEMU TCG policy seems to be maximize perf and
> > compatibility, not formal correctness.
> I think i read somewhere that recent qemu supposedly checks alignment on arm
> more completely. But i couldnt quickly find a official statement about that
As of 8.2.0-rc2, it most definitely does not:
----8<----
static inline void gen_check_sp_alignment(DisasContext *s)
{
/* The AArch64 architecture mandates that (if enabled via PSTATE
* or SCTLR bits) there is a check that SP is 16-aligned on every
* SP-relative load or store (with an exception generated if it is not).
* In line with general QEMU practice regarding misaligned accesses,
* we omit these checks for the sake of guest program performance.
* This function is provided as a hook so we can more easily add these
* checks in future (possibly as a "favour catching guest program bugs
* over speed" user selectable option).
*/
}
---->8----
And this is an actual violation of the specification. In the RISC-V case, QEMU
is not even violating the specification, just making a different choice than the
only one currently commercially available hardware implementation.
> But either way, qemu could emit such code optionally when it is used for
> testing. Which is one of the things people use qemu for.
That would be very true for system mode "soft-MMU" QEMU, but much more
questionable for user mode. In any case, I don't make their policies.
> So IMHO it would make sense for qemu to detect cases that are undefined
> even if for no other reason than to emulate the hw more exactly.
I would agree that optional flags would be sensible. But TBH, we don't even yet
know how the IPs from other vendors than Alibaba/T-Head will behave.
> If this is not done, qemu can be detected and code could refuse or
> fail to run
--
レミ・デニ-クールモン
http://www.remlab.net/
More information about the ffmpeg-devel
mailing list