Re: [PATCH v8 33/38] kselftest/arm64: Add a GCS test program built with the system libc

Thiago Jung Bauermann
2024-02-23T02:25:03Z

Mark Brown <broonie@kernel.org> writes:

> On Mon, Feb 19, 2024 at 11:15:57PM -0300, Thiago Jung Bauermann wrote:
>
>> The only issue as can be seen above is that the can_call_function test
>> is failing. The child is getting a GCS Segmentation fault when returning
>> from fork().
>
>> I tried debugging it with GDB, but I don't see what's wrong since the
>> address in LR matches the first entry in GCSPR. Here is the
>> debug session:
>
> I believe based on prior discussions that you're running this using
> shrinkwrap - can you confirm exactly how please, including things like
> which firmware configuration you're using? I'm using current git with
>
> shrinkwrap run \
> --rtvar KERNEL=arch/arm64/boot/Image \
> --rtvar ROOTFS=${ROOTFS} \
> --rtvar CMDLINE="${CMDLINE}" \
> --overlay=arch/v9.4.yaml ns-edk2.yaml
>
> and a locally built yocto and everything seems perfectly happy.

Yes, this is how I'm running it:

CMDLINE="Image dtb=fdt.dtb console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda2 ip=dhcp maxcpus=1"

shrinkwrap run \
--rtvar=KERNEL=Image-gcs-v8-v6.7-rc4-14743-ga551a7d7af93 \
--rtvar=ROOTFS=$HOME/VMs/ubuntu-aarch64.img \
--rtvar=CMDLINE="$CMDLINE" \
ns-edk2.yaml

I ran the following to set up the FVP VM:

$ shrinkwrap build --overlay=arch/v9.4.yaml ns-edk2.yaml

My rootfs is Ubuntu 22.04.3. In case it's useful, my kernel config is
here:

https://people.linaro.org/~thiago.bauermann/gcs/config-v6.8.0-rc2

I tried removing "maxcpus=1" from the kernel command line, but it made
no difference.

I also tried resetting my Shrinkwrap setup and starting from scratch,
but it also made no difference: I just pulled from the current main
branch and removed Shrinkwrap's build and package directories, and also
removed all Docker images and the one container I had.

Here are some firmware versions from early boot:

NOTICE: Booting Trusted Firmware
NOTICE: BL1: v2.10.0 (release):v2.10.0
NOTICE: BL1: Built : 00:07:29, Feb 23 2024
⋮
NOTICE: BL2: v2.10.0 (release):v2.10.0
NOTICE: BL2: Built : 00:07:29, Feb 23 2024
⋮
NOTICE: BL31: v2.10.0 (release):v2.10.0
NOTICE: BL31: Built : 00:07:29, Feb 23 2024
⋮
[ edk2 ] UEFI firmware (version built at 00:06:55 on Feb 23 2024)
Press ESCAPE for boot options ...........UEFI Interactive Shell v2.2
EDK II
UEFI v2.70 (EDK II, 0x00010000)

It looks like our main differences are the kernel config and the distro.

--
Thiago