On 12/12/25 4:11 AM, Sebastian Ott wrote:
On Thu, 11 Dec 2025, Jiaqi Yan wrote:
CONFIGs seem alright to me. Do you boot kernel with cmdline options like "default_hugepagesz=1G hugepagesz=1G hugepages=64", or dynamically set up huge pages via "echo 64 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages"?
Neither of these. When I do the test is skipped: # echo 64 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
The backing memory is tied to 1GB hugetlb pages which are available on 4KB and 16KB host, but not on 64KB host. So I guess 512MB hugetlb pages shall be used on 64KB host?
# ./arm64/sea_to_user Random seed: 0x6b8b4567 # Mapped 0x40000 pages: gva=0x80000000 to gpa=0xff80000000 # Before EINJect: data=0xbaadcafe # EINJ_GVA=0x81234bad, einj_gpa=0xff81234bad, einj_hva=0xffff41234bad, einj_hpa=0x80241234bad ok 1 # SKIP EINJ module probably not loaded?sh: line 1: /sys/kernel/debug/apei/einj/error_type: No such file or directory Bail out! Failed to write EINJ entry: No such file or directory (2) # 1 skipped test(s) detected. Consider enabling relevant config options to improve coverage. # Planned tests != run tests (0 != 1) # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:1 error:0
On one of my machines where RAS feature used to work, the test case passed on 4KB host.
host$ cat /proc/1/smaps | grep KernelPageSize | head -n 1 KernelPageSize: 4 kB host$ modprobe einj host$ echo 4 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
host$ ./sea_to_user Random seed: 0x6b8b4567 # Mapped 0x40000 pages: gva=0x80000000 to gpa=0xff80000000 # Before EINJect: data=0xbaadcafe # EINJ_GVA=0x81234bad, einj_gpa=0xff81234bad, einj_hva=0xffff41234bad, einj_hpa=0x400081234bad # echo 0x10 > /sys/kernel/debug/apei/einj/error_type - done # echo 0x2 > /sys/kernel/debug/apei/einj/flags - done # echo 0x400081234bad > /sys/kernel/debug/apei/einj/param1 - done # echo 0xffffffffffffffff > /sys/kernel/debug/apei/einj/param2 - done # echo 0x1 > /sys/kernel/debug/apei/einj/notrigger - done # echo 0x1 > /sys/kernel/debug/apei/einj/error_inject - done # Memory UER EINJected # SIGBUS (7) received, dumping siginfo... # si_signo=7, si_errno=0, si_code=4, si_addr=0xffff41234000 ok 1 # SKIP SEA is claimed by host APEI
Thanks, Gavin