intel / intel/confidential-computing.sgx
Memory Fault/Segmentation Fault occurs inside Gramine because of Intel SGX
- Dominant language
- C++
- Stars
- 1.5k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
Unexpected memory fault has occurred because of Intel SGX when the test is run with Ubuntu 21.10 and 5.18.0-051800-generic
Test:-
1. https://github.com/gramineproject/examples/tree/master/r
gramine-sgx ./R --slave --vanilla -f scripts/R-benchmark-25.R
2. https://github.com/gramineproject/gramine/blob/master/LibOS/test/regression/test_libos.py#L225
I initially got this error
> sudo dmesg | grep sgx
> [80353.686042] sgx_encl_get_backing+0x49/0x120
> [80353.686046] sgx_reclaim_pages+0x16c/0x4d0
> [80353.686072] ? __sgx_encl_add_page+0x7b/0x250
> [80353.686075] ? __sgx_alloc_epc_page_from_node+0x7c/0x80
> [80353.686078] sgx_alloc_epc_page+0x9c/0xd0
> [80353.686080] sgx_encl_add_page+0x96/0x480
> [80353.686083] sgx_ioc_enclave_add_pages+0x17a/0x210
> [80353.686089] sgx_ioctl+0x148/0x250
> [80589.981740] WARNING: CPU: 7 PID: 247386 at arch/x86/kernel/cpu/sgx/encl.c:81 __sgx_encl_eldu+0x340/0x3d0
> [80589.981850] RIP: 0010:__sgx_encl_eldu+0x340/0x3d0
> [80589.981870] sgx_encl_eldu+0x3f/0xd0
> [80589.981872] sgx_encl_load_page+0x7e/0xc0
> [80589.981873] sgx_vma_fault+0x44/0x100
> [80728.120928] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [80728.120936] CPU: 6 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [80728.120992] sgx_encl_get_backing+0x76/0x120
> [80728.120995] sgx_reclaim_pages+0x16c/0x4d0
> [80728.121002] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [80728.121004] ksgxd+0x102/0x1d0
> [82643.111745] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [82643.111752] CPU: 1 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [82643.111791] sgx_encl_get_backing+0x49/0x120
> [82643.111794] sgx_reclaim_pages+0x16c/0x4d0
> [82643.111798] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [82643.111799] ksgxd+0x102/0x1d0
> [82668.203156] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [82668.203162] CPU: 4 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [82668.203204] sgx_encl_get_backing+0x49/0x120
> [82668.203206] sgx_reclaim_pages+0x16c/0x4d0
> [82668.203210] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [82668.203211] ksgxd+0x102/0x1d0
> [335168.501542] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [335168.501549] CPU: 2 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [335168.501591] sgx_encl_get_backing+0x49/0x120
> [335168.501594] sgx_reclaim_pages+0x16c/0x4d0
> [335168.501598] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [335168.501599] ksgxd+0x102/0x1d0
> [335193.949470] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [335193.949477] CPU: 2 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [335193.949520] sgx_encl_get_backing+0x49/0x120
> [335193.949523] sgx_reclaim_pages+0x16c/0x4d0
> [335193.949527] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [335193.949528] ksgxd+0x102/0x1d0
> [479334.847997] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479334.848004] CPU: 3 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479334.848049] sgx_encl_get_backing+0x76/0x120
> [479334.848052] sgx_reclaim_pages+0x16c/0x4d0
> [479334.848056] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479334.848057] ksgxd+0x102/0x1d0
> [479335.530641] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479335.530649] CPU: 5 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479335.530701] sgx_encl_get_backing+0x49/0x120
> [479335.530704] sgx_reclaim_pages+0x16c/0x4d0
> [479335.530716] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479335.530719] ksgxd+0x102/0x1d0
> [479346.756039] ? sgx_encl_add_page+0x41/0x480
> [479346.756042] ? sgx_encl_add_page+0x41/0x480
> [479346.756047] ? sgx_encl_add_page+0x41/0x480
> [479346.756052] sgx_encl_add_page+0x41/0x480
> [479346.756054] sgx_ioc_enclave_add_pages+0x17a/0x210
> [479346.756062] sgx_ioctl+0x148/0x250
> [479360.114807] ksgxd invoked oom-killer: gfp_mask=0x100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
> [479360.114814] CPU: 4 PID: 89 Comm: ksgxd Tainted: G W 5.18.0-051800-generic #202205222030
> [479360.114856] sgx_encl_get_backing+0x49/0x120
> [479360.114858] sgx_reclaim_pages+0x16c/0x4d0
> [479360.114862] ? __sgx_sanitize_pages.constprop.0+0x200/0x200
> [479360.114863] ksgxd+0x102/0x1d0
But then i rebooted and clear page caches and memory and the test still fails
> sudo dmesg | grep sgx
> [ 1.026989] sgx: EPC section 0x30180000-0x3bd7ffff
> [ 225.418584] WARNING: CPU: 0 PID: 3039 at arch/x86/kernel/cpu/sgx/encl.c:81 __sgx_encl_eldu+0x340/0x3d0
> [ 225.418689] RIP: 0010:__sgx_encl_eldu+0x340/0x3d0
> [ 225.418706] ? __sgx_alloc_epc_page_from_node+0x5e/0x80
> [ 225.418709] sgx_encl_eldu+0x3f/0xd0
> [ 225.418710] sgx_encl_load_page+0x7e/0xc0
> [ 225.418712] sgx_vma_fault+0x44/0x100
>
Attached dmesg.log
[dmesg.log](https://github.com/intel/linux-sgx/files/8955095/dmesg.log)
Contributor guide
Assessment
This issue has not been assessed yet.