On Fri, Aug 02, 2024 at 10:57:54PM GMT, Mark Brown wrote:
Currently the get-reg-list test uses directly specified numeric values to define system registers to validate. Since we already have a macro which allows us to use the generated system register definitions from the main kernel easily let's update all the registers where we have specified the name in a comment to just use that macro. This reduces the number of places where we need to validate the name to number mapping.
This conversion was done with the sed command:
sed -i -E 's-ARM64_SYS_REG.*/* (.*) */-KVM_ARM64_SYS_REG(SYS_\1),-' tools/testing/selftests/kvm/aarch64/get-reg-list.c
We still have a number of numerically specified registers, some of these are reserved registers without defined names (eg, unallocated ID registers) and others don't have kernel macro definitions yet.
FWIW, the "ARM64_SYS_REG(...encoding...), /* NAME */" format was intentional. The idea was that when get-reg-list outputs new or missing registers it discovers, or the user lists registers with --list, the best it can do is output "ARM64_SYS_REG(...encoding...)". Putting that format directly into the test enabled copy+paste of the list output into a test case. However, the lack of names did lead to scripting the generation of the name comments, which means it wasn't a direct copy+paste anyway. The other benefit of the format was being able to directly grep the test for the 'missing' registers. Anyway, maybe always going through asm/sysreg.h with greps of '...encoding...' is the better approach.
Thanks, drew