Re: gdb support for SME-without-SVE ?

Peter Maydell via Gdb
2026-01-30T12:30:20Z

On Fri, 30 Jan 2026 at 04:28, Thiago Jung Bauermann
<thiago.bauermann@linaro.org> wrote:
> Unfortunately I hit a kernel oops reliably when trying to run a GDB testcase:
>
> [ 156.387143] Internal error: Oops - Undefined instruction: 0000000002000000 [#1] SMP
> [ 156.389966] Modules linked in: sm3_ce tpm_tis tpm_tis_core sha256 cfg80211 rfkill fuse drm backlight dm_mod ipv6 btrfs blake2b libblake2b xor xor_neon raid6_pq zstd_compress
> [ 156.391005] CPU: 0 UID: 1000 PID: 677 Comm: aarch64-sme-san Not tainted 6.19.0-rc5 #4 PREEMPT
> [ 156.391244] Hardware name: QEMU QEMU Virtual Machine, BIOS edk2-stable202408-prebuilt.qemu.org 08/13/2024
> [ 156.391475] pstate: 214020c5 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
> [ 156.391657] pc : sve_get_vl+0x4/0xc
> [ 156.392149] lr : fpsimd_save_user_state+0x100/0x1b8

So I know what this bug is, but I'm having difficulty with
reproducing it. I got it to reproduce just once, after I did a
full build of gdb and then ran the test case with your command:

> And you can run the testcase with:
>
> $ cd /path/to/gdb/build/dir; make check-gdb TESTS=gdb.arch/aarch64-sme-sanity.exp

But now after restarting the VM and running this command again,
it does nothing:

root@debian:~/gdb-build# make check-gdb TESTS=gdb.arch/aarch64-sme-sanity.exp
make[1]: Entering directory '/root/gdb-build/gdb'
make[2]: Entering directory '/root/gdb-build/gdb/testsuite'
make check-single
make[3]: Entering directory '/root/gdb-build/gdb/testsuite'
rm -f *core* gdb.sum gdb.log
rootme=`pwd`; export rootme;
srcdir=../../../binutils-gdb/gdb/testsuite ; export srcdir ;
EXPECT=`if [ "${READ1}" != "" ] ; then echo ${rootme}/expect-read1;
elif [ "${READMORE}" != "" ] ; then echo ${rootme}/expect-readmore;
elif [ -f ${rootme}/../../expect/expect ] ; then echo
${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT
; EXEEXT= ; export EXEEXT ;
LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH;
export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then
TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ;
runtest --status gdb.arch/aarch64-sme-sanity.exp ; \
result=$?; \
if test -e gdb.sum; then \
/bin/bash ../../../binutils-gdb/gdb/testsuite/lib/dg-add-core-file-count.sh; \
sed -n '/=== gdb Summary ===/,$ p' gdb.sum; \
fi; \
exit $result
WARNING: No tool specified
Test run by root on Fri Jan 30 12:25:14 2026
Native configuration is aarch64-unknown-linux-gnu

=== tests ===

Schedule of variations:
unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file
for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
WARNING: Couldn't find tool config file for unix, using default.

=== Summary ===

make[3]: Leaving directory '/root/gdb-build/gdb/testsuite'
make[2]: Leaving directory '/root/gdb-build/gdb/testsuite'
make[1]: Leaving directory '/root/gdb-build/gdb'
root@debian:~/gdb-build#

As far as I can see the test harness is running no tests any more
(and so the kernel oops doesn't show up).

Is there some way I can get it to tell me why it isn't running anything?

thanks
-- PMM