[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2
From: |
Philippe Mathieu-Daudé |
Subject: |
[Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198 |
Date: |
Wed, 02 Dec 2020 17:05:42 -0000 |
Hi Alex,
This commit mentions:
The Linux kernel chooses the default of 64 bytes for SVE registers on
the basis that it is the largest size on known hardware that won't
grow the signal frame. We still honour the sve-max-vq property and
userspace can expand the number of lanes by calling PR_SVE_SET_VL.
Expand the number of lanes by calling PR_SVE_SET_VL works for me:
.global _start
_start:
mov x0, 50 // PR_SVE_SET_VL
mov x1, 256 // 16 lanes
mov x8, #167 // prctl
svc #0
rdvl x0, #1
asr x0, x0, #4
mov x8, #93 // exit
svc #0
$ for vl in 1 2 4 8 16; do qemu-aarch64 -strace -cpu max,sve-max-vq=$vl a.out;
echo $?; done
1383321 prctl(50,256,0,0,0,0) = 16
1383321 exit(1)
1
1383323 prctl(50,256,0,0,0,0) = 32
1383323 exit(2)
2
1383325 prctl(50,256,0,0,0,0) = 64
1383325 exit(4)
4
1383327 prctl(50,256,0,0,0,0) = 128
1383327 exit(8)
8
1383329 prctl(50,256,0,0,0,0) = 256
1383329 exit(16)
16
** Changed in: qemu
Status: New => Invalid
** Tags added: arm linux-user
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1906536
Title:
Unable to set SVE VL to 1024 bits or above since 7b6a2198
Status in QEMU:
Invalid
Bug description:
Prior to 7b6a2198e71794c851f39ac7a92d39692c786820, the QEMU option
sve-max-vq could be used to set the vector length of the
implementation. This is useful (among other reasons) for testing
software compiled with a fixed SVE vector length. Since this commit,
the vector length is capped at 512 bits.
To reproduce the issue:
$ cat rdvl.s
.global _start
_start:
rdvl x0, #1
asr x0, x0, #4
mov x8, #93 // exit
svc #0
$ aarch64-linux-gnu-as -march=armv8.2-a+sve rdvl.s -o rdvl.o
$ aarch64-linux-gnu-ld rdvl.o
$ for vl in 1 2 4 8 16; do ../build-qemu/aarch64-linux-user/qemu-aarch64 -cpu
max,sve-max-vq=$vl a.out; echo $?; done
1
2
4
4
4
For a QEMU built prior to the above revision, we get the output:
1
2
4
8
16
as expected. It seems that either the old behavior should be restored,
or there should be an option to force a higher vector length?
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1906536/+subscriptions
- [Bug 1906536] [NEW] Unable to set SVE VL to 1024 bits or above since 7b6a2198, Alex Coplan, 2020/12/02
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198,
Philippe Mathieu-Daudé <=
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198, Alex Coplan, 2020/12/02
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198, Peter Maydell, 2020/12/02
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198, Peter Maydell, 2020/12/02
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198, Alex Bennée, 2020/12/03
- [Bug 1906536] Re: Unable to set SVE VL to 1024 bits or above since 7b6a2198, Peter Maydell, 2020/12/03